AlexRE Admin trop trizo Lv 65
Nombre de messages : 29934
| Sujet: Re: [Résolu] Comparer des Variables Jeu 09 Oct 2008, 15:02 | |
| C'est pas moi qui choisis ce que Falco veut faire. Pour les soustractions, j'ai déjà programmé des events qui nécessitaient de faire de nombreux calculs, et ça prenait toujours moins d'une seconde (et ne ramait pas chez les autres). En tout cas c'est sûr que ce serait débile de faire 10 waits de 0.1 secondes, il vaut largement mieux en faire une série de 0.2 ou 0.5... Après tout dépend de ce que tu veux programmer. | |
|
Falco Maker qui quitte vraiment E-m Lv 60
Nombre de messages : 13628 Age : 33
| Sujet: Re: [Résolu] Comparer des Variables Jeu 09 Oct 2008, 16:24 | |
| Ouep, m'enfin c'est bon, j'ai la technique. C'était vraiment super facile, regardez : - Joke a écrit:
il y a d'autre méthodes mais la seule que j'ai utilisé jusqu'à maintenant c'est celle de la boucle radar
Le principe c'est de lancer une variable dans une boucle qui rétrécie de 1 à chaque tour de boucle, et à chaque tour de boucle on compare si elle devient égale à une des variables à comparer.
Tu as tes variables à contrôler, qui contiennent la valeur de la vitesse :
"vit h1" "vit h2" "vit h3" "vit h4"
Tu as le bloc de variables où seront stockés les rangs :
"1er" "2eme" "3eme" "4eme"
Attention, elles doivent se suivre : par exemple, les variables 201, 202, 203, 204.
Et deux variables qui orchestreront les comparaisons : "valeur de contrôle", qui sera la variable lancée dans la boucle grandissant de tour en tour pour à chaque tour vérifier si elle devient égale à la valeur d'une des variables contrôlées
"variable à définir", qui stockera le numéro de la variable de rang, pour savoir si on doit définir le 1er rang, le 2eme, ou autre
- Code:
-
modifier variable "valeur de contrôle" = 0
modifier variable "variable à définir" = numéro de la variable du classement le plus bas (par exemple, si la variable la plus faible est stockée dans la variable "4eme" et que la variable "4eme" est la variable n°104, on met 104.
modifier variables, de 101 à 104, = 0 (101 à 104 c'est toujours un nombre au pif, par exemple si la variable 1er est la 101eme, 2eme la 102eme, 4eme la 104eme variable)
BOUCLE :
condition : si variable "valeur de contrôle" = variable "vit h1" modifier variable : d'après la variable "variable à définir", rendre égal à 1 modifier variable : "variable à définir" - 1 fin de condition
condition : si variable "valeur de contrôle" = variable "vit h2" modifier variable : d'après la variable "variable à définir", rendre égal à 2 modifier variable : "variable à définir" - 1 fin de condition
condition : si variable "valeur de contrôle" = variable "vit h3" modifier variable : d'après la variable "variable à définir", rendre égal à 3 modifier variable : "variable à définir" - 1 fin de condition
modifier variable : "valeur de contrôle" + 1
condition : si variable "valeur de contrôle" = variable "vit h4" modifier variable : d'après la variable "variable à définir", rendre égal à 4 modifier variable : "variable à définir" - 1 fin de condition
condition : si variable "variable à définir" inférieur strict au numéro de la variable du rang n°1 (on regarde c'est quoi son numéro, si la variable "1er" est la 101, on met 101) sortir de la boucle fin de condition
condition : si variable "valeur de contrôle" supérieur strict à 100 (la valeur maxi de vitesse) sortir de la boucle fin de condition
FIN DE BOUCLE
C'est trop chaud à expliquer !!! O_o
par exemple, pour :
vit h1 = 25 vit h2 = 15 vit h3 = 30 vit h4 = 80
la boucle aura classé dans les variables définie par "variable à définir" :
1er = 4 2eme = 3 3eme = 1 4eme = 2
la seule fois qu'on définit la variable "variable à définir", on met le numéro du dernier rang, celui qui captera la plus petite variable, si la variable "4eme" est la numéro 58, on met 58
à chaque fois qu'une condition est remplie, on stock "1, 2, 3 ou 4" dans la variable définie par la variable "variable à définir" x) donc si c'est toujours 58 à l'intérieur de la variable "variable à définir", et que c'est la deuxième condition qui marche, on va faire "modifier variable pointée par "variable à définir" rendre égal à 2", ce qui fera que la variable n°58, donc la variable "4eme", prendra la valeur de 2. juste après on fait "modifier "variable à définir" soustraire 1", ça veut dire qu'à la prochaine condition remplie, ce sera plus la variable 58 qu'on changera mais la 57, c'est à dire "3eme"
d'où l'importance que les variables qui classent les variables soient en un groupe
et cette boucle elle n'a aucun "attendre", il faut surtout pas en mettre, ça fait pas lagger car la boucle à une fin proche, elle aura fait ses 100 tours en une fraction de seconde sans un moindre lag. et les conditions pour sortir de la boucle c'est : "si toute les variables de rangs ont été définie, donc si la variable "variable à définir" est inférieur au numéro de la variable "1er", et si la variable "valeur de contrôle" a atteint le maximum, si aucune variable ne risque d'excéder 99 par exemple car 99 c'est la limite de la caractéristique "vitesse", on fera la condition "si variable "valeur de contrôle" supérieur strict à 99"
c'est bien compliqué à expliqué mais c'est pourtant la méthode la plus simple à comprendre il en existe d'autre, plus longue ou plus compliquée, celle ci est sympa
____________ "Listen now, you don't understand That's not the point of Christmas land"
| |
|
AlexRE Admin trop trizo Lv 65
Nombre de messages : 29934 Age : 37
| Sujet: Re: [Résolu] Comparer des Variables Jeu 09 Oct 2008, 17:57 | |
| Super, une explication en bonne et due forme. Je pense que ça sera utile à plus d'un membre. Merci Falco (et Joke ) (je laisse ce topic ouvert encore un moment pour differents commentaires) ____________ - Relm a écrit:
- Merci pour la confirmation Gary et fuck my life.
| |
|
Contenu sponsorisé
| Sujet: Re: [Résolu] Comparer des Variables | |
| |
|