Accueil du SiteAccueil du Site  AccueilAccueil  Dernières imagesDernières images  RechercherRechercher  ConnexionConnexion  S'enregistrerS'enregistrer  




Partagez
 

 Valeur d'une variable? entier ou réel? [Résolu]

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Atwars
Modérateur en chef
Modérateur en chef
Atwars

Masculin
Messages postés : 1569
Date d'inscription : 11/04/2012
Jauge LPC :
Valeur d'une variable? entier ou réel? [Résolu] 8915271400100 / 100100 / 100Valeur d'une variable? entier ou réel? [Résolu] 8915271400

Valeur d'une variable? entier ou réel? [Résolu] Membre10
Valeur d'une variable? entier ou réel? [Résolu] Membre15
Valeur d'une variable? entier ou réel? [Résolu] Altrui10
Valeur d'une variable? entier ou réel? [Résolu] Projet16


Valeur d'une variable? entier ou réel? [Résolu] Empty
MessageSujet: Valeur d'une variable? entier ou réel? [Résolu]   Valeur d'une variable? entier ou réel? [Résolu] EmptyJeu 4 Sep 2014 - 19:46

Coucou,

Je suis actuellement en train de faire un système de combat en event, et voila que j'arrive au niveau des variables de dégâts, etc... avec plusieurs facteurs comme les coups critiques, faiblesses, forces, etc...

J'ai donc une variable de dégâts qui est égale à 1. Si l'attaque utilisée est le point fort de mon ennemi, je la divise par 2. Mais nous sommes en informatique et là, Patatra tout s'écroule mdr

Bien sûr, dans notre tête, la variable dégâts ne vaut plus que 0.5 !
Lorsque je l'affiche, elle vaut 0.
Mais si je retire la variable dégâts à la variable point de vie d'un adversaire qui est égale à 1.

La variable point de vie sera-t'elle toujours égale à 1 ou à 0.5?

Car imaginez la tête du joueur s'il lui reste 1 point de vie et que deux attaques adverses successives de son ennemi affichant 0, le tue...

Sinon, avez-vous une idée pour que je la rende entier, en event... Sans que je passe par un système de condition qui me demande si la variable dégâts est pair auquel cas je lui rajoute 1 pour que lorsque je la divise par 2, ça reste un entier, enfin bref ^^

Merci d'avance pour vos réponses! Smile

Edit: bon finalement je suis con, je pouvais fair le test moi-même à priori, c'est absolument entier, mais si vous pouvez me le certifier, ça m'évitera de mauvaise surprise à l'avenir mdr


Dernière édition par Atwars le Sam 6 Sep 2014 - 18:07, édité 1 fois
Revenir en haut Aller en bas
Hellper
Chevalier Dragon (niveau 5)
Chevalier Dragon (niveau 5)
Hellper

Masculin
Messages postés : 1190
Date d'inscription : 04/03/2013
Jauge LPC :
Valeur d'une variable? entier ou réel? [Résolu] 891527140086 / 10086 / 100Valeur d'une variable? entier ou réel? [Résolu] 8915271400


Valeur d'une variable? entier ou réel? [Résolu] Membre15
Valeur d'une variable? entier ou réel? [Résolu] Membre10
Valeur d'une variable? entier ou réel? [Résolu] Altrui10
Valeur d'une variable? entier ou réel? [Résolu] Event-10
Valeur d'une variable? entier ou réel? [Résolu] Script10
Valeur d'une variable? entier ou réel? [Résolu] Projet16
Valeur d'une variable? entier ou réel? [Résolu] Riche_10
Valeur d'une variable? entier ou réel? [Résolu] King_o10
Valeur d'une variable? entier ou réel? [Résolu] Collec10


Valeur d'une variable? entier ou réel? [Résolu] Empty
MessageSujet: Re: Valeur d'une variable? entier ou réel? [Résolu]   Valeur d'une variable? entier ou réel? [Résolu] EmptyJeu 4 Sep 2014 - 19:49

Sur quel RM ?
Revenir en haut Aller en bas
http://kustomskromatiks.byethost17.com/
Atwars
Modérateur en chef
Modérateur en chef
Atwars

Masculin
Messages postés : 1569
Date d'inscription : 11/04/2012
Jauge LPC :
Valeur d'une variable? entier ou réel? [Résolu] 8915271400100 / 100100 / 100Valeur d'une variable? entier ou réel? [Résolu] 8915271400

Valeur d'une variable? entier ou réel? [Résolu] Membre10
Valeur d'une variable? entier ou réel? [Résolu] Membre15
Valeur d'une variable? entier ou réel? [Résolu] Altrui10
Valeur d'une variable? entier ou réel? [Résolu] Projet16


Valeur d'une variable? entier ou réel? [Résolu] Empty
MessageSujet: Re: Valeur d'une variable? entier ou réel? [Résolu]   Valeur d'une variable? entier ou réel? [Résolu] EmptyJeu 4 Sep 2014 - 19:54

Oui effectivement, c'est mieux de préciser ^^

RMXP
Revenir en haut Aller en bas
Zexion
Administrateur
Administrateur
Zexion

Masculin
Messages postés : 6228
Date d'inscription : 04/01/2012
Jauge LPC :
Valeur d'une variable? entier ou réel? [Résolu] 891527140097 / 10097 / 100Valeur d'une variable? entier ou réel? [Résolu] 8915271400

Valeur d'une variable? entier ou réel? [Résolu] Membre15
Valeur d'une variable? entier ou réel? [Résolu] Event-10
Valeur d'une variable? entier ou réel? [Résolu] Altrui10
Valeur d'une variable? entier ou réel? [Résolu] Action10
Valeur d'une variable? entier ou réel? [Résolu] Travai10
Valeur d'une variable? entier ou réel? [Résolu] Collec10
Valeur d'une variable? entier ou réel? [Résolu] Collec11
Valeur d'une variable? entier ou réel? [Résolu] Collec12
Valeur d'une variable? entier ou réel? [Résolu] Staffe11
Valeur d'une variable? entier ou réel? [Résolu] Dessin10


Valeur d'une variable? entier ou réel? [Résolu] Empty
MessageSujet: Re: Valeur d'une variable? entier ou réel? [Résolu]   Valeur d'une variable? entier ou réel? [Résolu] EmptyJeu 4 Sep 2014 - 20:55

RM toutes versions confondues ne gère que les divisions entières, sauf par appel de script.
Revenir en haut Aller en bas
Invité
Invité
Anonymous


Valeur d'une variable? entier ou réel? [Résolu] Empty
MessageSujet: Re: Valeur d'une variable? entier ou réel? [Résolu]   Valeur d'une variable? entier ou réel? [Résolu] EmptyJeu 4 Sep 2014 - 21:20

Tu peux multiplier les valeurs par 100, genre si t'as besoin d'un multiplicateur de 2 tu mets 200, pour 0.5 tu mets 50, et à la fin tu redivises les dégâts par 100.
Revenir en haut Aller en bas
Atwars
Modérateur en chef
Modérateur en chef
Atwars

Masculin
Messages postés : 1569
Date d'inscription : 11/04/2012
Jauge LPC :
Valeur d'une variable? entier ou réel? [Résolu] 8915271400100 / 100100 / 100Valeur d'une variable? entier ou réel? [Résolu] 8915271400

Valeur d'une variable? entier ou réel? [Résolu] Membre10
Valeur d'une variable? entier ou réel? [Résolu] Membre15
Valeur d'une variable? entier ou réel? [Résolu] Altrui10
Valeur d'une variable? entier ou réel? [Résolu] Projet16


Valeur d'une variable? entier ou réel? [Résolu] Empty
MessageSujet: Re: Valeur d'une variable? entier ou réel? [Résolu]   Valeur d'une variable? entier ou réel? [Résolu] EmptyVen 5 Sep 2014 - 12:49

Yep, effectivement c'est une solution Smile

Merci à tous de vos réponses!

Je vous fais également profiter de la réponse de Kioresse qui pourrait peut-être en intéresser certains ^^

kioresse a écrit:
J'ai réussi... tata ta... je suis la meilleur... tatata... ta...

Niveau ruby je suis nulle... très proche du zéro absolut. Du coup, j'ai cherché un script qui gère les décimal et... devienne quoi... je n'en ai pas trouvé !
cheers


Par contre, je suis tombée sur un tuto de Ruby:
http://zenithrpg.free.fr/index2.php?page=rgss&id=1

Dans le passage intéressant il est dit, en résumé, que le programme est très con. Il fonctionne en nombre entier... mais si on lui présente des décimale, il continu en décimale.

Voici ce que je te propose de faire. Tu ouvre une map, créer un event et utilise la commande script:

$game_variables[1] = 11.0
(ici c'est la boite de dialogue) \v[1]  (cela te donnera la valeur de la variable 1... normalement, il répondra 11.0. Il s'agit d'un point et non d'une virgule)
$game_variables[1] /= 2
\v[1]

La valeur de la variable sera 5.5... donc, de cette manière il s'est possible d'utiliser des variable décimales. Tu ne passe plus par le gestionnaire de variable, mais manuellement par les commande script.. en n'oubliant jamais de rajouter la décimale, même s'il s'agit de valeurs entières. Sinon, le programme oubliera la virgule et ce qui se trouvait derrière.
Plus tu ajoute de zéro derrière le point et plus la décimale sera précise. Cela ne se limite pas a un seul chiffre derrière la virgule. Le programme ce contente de suivre l'indication donnée.

Pour les calcules:

Addition: +=
Soustraction: -=
etc...

Pour rendre une variable égale a une autre:
$game_variables[1] = $game_variables[2]

Pour les calcule, il suffit d'ajouter un signe devant le =
En espérant que cette solution réponde a tes besoin.

LS.
.
Revenir en haut Aller en bas
Hellper
Chevalier Dragon (niveau 5)
Chevalier Dragon (niveau 5)
Hellper

Masculin
Messages postés : 1190
Date d'inscription : 04/03/2013
Jauge LPC :
Valeur d'une variable? entier ou réel? [Résolu] 891527140086 / 10086 / 100Valeur d'une variable? entier ou réel? [Résolu] 8915271400


Valeur d'une variable? entier ou réel? [Résolu] Membre15
Valeur d'une variable? entier ou réel? [Résolu] Membre10
Valeur d'une variable? entier ou réel? [Résolu] Altrui10
Valeur d'une variable? entier ou réel? [Résolu] Event-10
Valeur d'une variable? entier ou réel? [Résolu] Script10
Valeur d'une variable? entier ou réel? [Résolu] Projet16
Valeur d'une variable? entier ou réel? [Résolu] Riche_10
Valeur d'une variable? entier ou réel? [Résolu] King_o10
Valeur d'une variable? entier ou réel? [Résolu] Collec10


Valeur d'une variable? entier ou réel? [Résolu] Empty
MessageSujet: Re: Valeur d'une variable? entier ou réel? [Résolu]   Valeur d'une variable? entier ou réel? [Résolu] EmptyVen 5 Sep 2014 - 16:25

Oui Kioresse répond bien par contre ce n'est pas parce que le programme est très con qu'il faut utiliser des décimales pour avoir un résultat en décimales et je vais l'expliquer.

En fait il faut savoir que quand nous faisons des calculs nous utilisons le système décimal car c'est celui que nous avons appris. Mais c'est quelque chose qu'un ordinateur ne sait pas faire car il ne sait manipuler que des 1 et des 0 et il est donc obligé de convertir ces données en binaire pour pouvoir les traiter.
Mais du coup comment ça marche le binaire ?

Je ne suis pas sûr que le binaire soit quelque chose de très répandu alors je vais faire depuis le début. un nombre binaire est un nombre n'ayant pour chiffres que 0 et 1 raison pour laquelle 1 + 1 = 10 (dès qu'on rajoute 1 au chiffre de plus grande valeur on remet cette colonne à 0 et on rajoute 1 à la colone à gauche.
Du coup 10 + 10 = 100, 100 + 100 = 1000 et 11 + 1 = 100.

Pour convertir une valeur binaire en décimal il y a une astuce assez simple : on associe 1 au chiffre le plus à droite et à chaque autre chiffre on associe la valeur associée au chiffre à droite multipliée par 2. Ensuite on prend les valeurs associées à des 1 et on en fait la somme. Par exemple pour convertir 1001 on fait :


valeurs associées8421
Nombre binaire1001
Du coup on ne garde que 8 et 1 et leur somme fait 9. Donc 1001 en binaire vaut 9 en décimal. On constatera que si on peut multiplier par 2 dans un sens on peut aussi diviser par deux dans l'autre et qu'en prenant 110,1 :

valeurs associées4210,5
Nombre binaire1101
On garde 4, 2 et 0,5 ce qui donne 6,5.

Sauf que quand l'ordinateur traite des données qu'on lui donne ce n'est pas du binaire vers décimal qu'il fait mais du décimal vers du binaire. Du coup comment il fait ?

On fait dans le sens inverse. On crée notre tableau dont on arrange la taille pour qu'une valeur associée soit plus grande que le nombre qu'on veut convertir, mais qu'une seule. Puis on parcours le tableau de gauche à droite et à chaque fois qu'on trouve une valeur on la retire du nombre à convertir et on place un 1 là ou la valeur est associée. on s'arrête quand il reste 0. Par exemple pour 37 :

valeurs associées6432168421
Nombre binaire0100101
On ne prend pas 64 car trop grand mais on prend 32 et il nous reste 37 - 32 = 5.
On ne prend ni 16 ni 8 car trop grands mais on prend 4 et il nous reste 5 - 4 = 1.
Puis on ne prend pas 2 mais on prend 1 et il nous reste 1 - 1 = 0. On a trouvé ce qu'il fallait et 37 en décimal vaut 100101 en binaire.

Mais qu'en est-il de 1,3 ? voyons donc :

valeurs associées210,50,250,1250,06250,03125
Nombre binaire0101001
On ne prend pas 2 car trop grand mais on prend 1 et il nous reste 1,3 - 1 = 0,3.
On ne prend pas 0,5 car trop grand mais on prend 0,25 et il nous reste 0,3 - 0,25 = 0,05.
On ne prend ni 0,125 ni 0,625 car trop grands mais on prend 0,03125 et il nous reste 0,05 - 0,03125 = 0,001875.

Si vous avez bien suivi mon texte, vous vous demandez surement pourquoi je me suis arrêté avant d'avoir un reste de 0 comme dans mon exemple. La réponse est simple : l'équivalent binaire du décimal 1,3 est une série infinie de chiffres après la virgule et il est donc impossible d'en effectuer la conversion.
En fait à par des cas comme mon 5,5 plus haut la très très grande majorité des nombres décimaux ne passe pas la conversion en binaire.

Pourtant vous pouvez utiliser 0,3 sur votre ordinateur. Alors qu'est-ce qui se passe ?
En fait, il se trouve que pour contourner le problème tout en optimisant ses performances, on a séparé les nombres sous deux types auxquels correspondent deux conversions différentes l'int (integer) pour les entiers et le float pour les nombres décimaux (c'est à dire à virgule flottante).
Les int sont une simple conversion décimal binaire (avec une transformation pour faire des valeurs négatives mais c'est pas important que vous la connaissiez) et les décimales sont converties dans une structure plus complexe. Par exemple 1,3 sera écrit comme + 10**(-1)*13 (où le + sert à dire si c'est 1,3 ou -1,3 et le 10**(-1)*13 pour écrire 1,3 sous la forme de 13/10)
Bien sûr on pourrait n'utiliser que des float mais leur construction rend leur utilisation beaucoup plus lente.

Et c'est pour cette même question de performance qu'en informatique, un calcul n'impliquant que des int renvois un int et un calcul n'impliquant que des float renvois un float. Ne pensez surtout pas à faire un calcul impliquant un int et un float, il faudra que vous demandiez à votre machine de le convertir avant.
Cependant, ce n'est pas le cas de tous les langages. Ça l'est pour le C (et c'est pour ça que sur 2003, qui est en C, on ne manipule que des entiers) mais pas pour Ruby qui saura détecter qu'une formule comporte à la fois des int et des float et convertira automatiquement les int en float sans qu'on ai rien à lui dire.
Du coup en fait en remplaçant le 11 par un 11.0 vous dite implicitement que votre calcul comporte un float et que c'est un float que vous voulez Smile

Au passage il y a mieux que de mettre la valeur de la variable en float, dans la mesure où ça ne sera pas très beau si vous l'affichez comme ça. En fait vous pouvez aussi faire un  $game_variables[1] /= 2.0 pour la division et si vous afficher aussi ce 2 vous pouvez faire un ($game_variables[1]*1.0)/2

Du coup j'ai pas mal parlé mais je dois dire que je suis plutôt passionné par ce genre de choses ^^

Aussi :
Kioresse a écrit:
Pour les calcules:

Addition: +=
Soustraction: -=
etc...

Pour rendre une variable égale a une autre:
$game_variables[1] = $game_variables[2]

Pour les calcule, il suffit d'ajouter un signe devant le =
En espérant que cette solution réponde a tes besoin.

En fait la forme $game_variables[1] = quelque chose écrase le contenu de ce qui est à gauche pour le donner la valeur de ce qui est à droite. $game_variables[1] += quelquechose est une version simplifiée pour $game_variables[1] = $game_variables[1] + quelque chose ou on remplace la valeur de la variable par sa valeur + quelque chose.


Dernière édition par Hellper le Sam 6 Sep 2014 - 18:10, édité 1 fois
Revenir en haut Aller en bas
http://kustomskromatiks.byethost17.com/
Atwars
Modérateur en chef
Modérateur en chef
Atwars

Masculin
Messages postés : 1569
Date d'inscription : 11/04/2012
Jauge LPC :
Valeur d'une variable? entier ou réel? [Résolu] 8915271400100 / 100100 / 100Valeur d'une variable? entier ou réel? [Résolu] 8915271400

Valeur d'une variable? entier ou réel? [Résolu] Membre10
Valeur d'une variable? entier ou réel? [Résolu] Membre15
Valeur d'une variable? entier ou réel? [Résolu] Altrui10
Valeur d'une variable? entier ou réel? [Résolu] Projet16


Valeur d'une variable? entier ou réel? [Résolu] Empty
MessageSujet: Re: Valeur d'une variable? entier ou réel? [Résolu]   Valeur d'une variable? entier ou réel? [Résolu] EmptySam 6 Sep 2014 - 18:06

Merci pour cette explication détaillée Hellper Smile

Pour ma part le problème est résolu! ^^
Revenir en haut Aller en bas
City Hunter
Administrateur
Administrateur
City Hunter

Masculin
Messages postés : 6524
Date d'inscription : 25/05/2011
Jauge LPC :
Valeur d'une variable? entier ou réel? [Résolu] 891527140040 / 10040 / 100Valeur d'une variable? entier ou réel? [Résolu] 8915271400

Valeur d'une variable? entier ou réel? [Résolu] Staffe10
Valeur d'une variable? entier ou réel? [Résolu] Mappeu10
Valeur d'une variable? entier ou réel? [Résolu] Membre15
Valeur d'une variable? entier ou réel? [Résolu] Testeu10
Valeur d'une variable? entier ou réel? [Résolu] Promot10
Valeur d'une variable? entier ou réel? [Résolu] Projet10
Valeur d'une variable? entier ou réel? [Résolu] Projet16
Valeur d'une variable? entier ou réel? [Résolu] Riche_10
Valeur d'une variable? entier ou réel? [Résolu] Travai10
Valeur d'une variable? entier ou réel? [Résolu] Collec10
Valeur d'une variable? entier ou réel? [Résolu] Collec11
Valeur d'une variable? entier ou réel? [Résolu] Collec12
Valeur d'une variable? entier ou réel? [Résolu] Collec13
Valeur d'une variable? entier ou réel? [Résolu] Pandac10
Valeur d'une variable? entier ou réel? [Résolu] 10000011


Valeur d'une variable? entier ou réel? [Résolu] Empty
MessageSujet: Re: Valeur d'une variable? entier ou réel? [Résolu]   Valeur d'une variable? entier ou réel? [Résolu] EmptySam 6 Sep 2014 - 18:39

Ok.
Merci à tous je classe et points.
Revenir en haut Aller en bas
Contenu sponsorisé




Valeur d'une variable? entier ou réel? [Résolu] Empty
MessageSujet: Re: Valeur d'une variable? entier ou réel? [Résolu]   Valeur d'une variable? entier ou réel? [Résolu] Empty

Revenir en haut Aller en bas
 
Valeur d'une variable? entier ou réel? [Résolu]
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [RESOLU]demande plutôt étrange [/RESOLU]
» Agir sur une variable dans un script
» heure et date modif variable
» problème variable ruby RMXP
» [RMVxA] Affiché variable sur écran

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Le Palais Créatif :: ~ APPRENTISSAGE ~ :: Entraide :: Problèmes non résolus-
Sauter vers: