Forum Liberty Basic France

Général » Les variables dans les boucles Besoin d'aide XD
Le 12/07/2019 à 11h16

Modérateur

Groupe: Modérateur

Inscrit le: 30/03/2011
Messages: 341
Bonjour,

Ma question est la suivante :

J'ai plusieurs variables du genre A1 , A11, A12, A13 etc jusqu'à A199. Chacune de ces variables décrit une suite d'instruction qui sont les mêmes (seul la variable change).

J'aimerais donc faire une boucle pour éviter d'avoir 100 lignes décrivant la même action pour ces 100 variables. Le problème c'est que je n'est pas la syntaxe pour pour cela. Quelqu'un saurait comment faire ?

Merci :)
____________________
Yo !

MSN Web    
Le 12/07/2019 à 17h00

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2081
Tu mets la suite d'instructions dans une sub et la variable en paramètre (en global si tu veux la récupérer)
Tu peux aussi faire avec un gosub, il suffit de mettre avant l'appel la variable dans une var locale qui sera utilisée dans le sous programme.
Avec un bout de code ça serait plus facile.
Citation:
Chacune de ces variables décrit une suite d'instruction

Je ne comprends pas le "décrit". Une variable ne décrit pas, elle est soumise à la torture des instructions, et en ressort embellie ou amochée; ou sert à torturer d'autres variables.
Les questions sont mieux dans "Débutant".
____________________
Roro

   
Le 12/07/2019 à 20h53

Modérateur

Groupe: Modérateur

Inscrit le: 30/03/2011
Messages: 341
voici le code en question . 200 lignes pour 100 variables proches que j'aimerais mettre dans une boucle de 100 pour diminuer drastiquement le nombre de ligne.

Code VB :
if MoveE1 > 0 then #main.map,"spritexy E1 ";E1x;" ";E1y : #main.map,"SpriteVisible E1 on" : #main.map, "cyclesprite E1 1" : #main.map,"SpriteVisible ED1 off" : #main.map "spritetofront E1"
    if MoveE1 = 0 then #main.map,"spritexy ED1 ";E1x;" ";E1y+10 : #main.map,"SpriteVisible ED1 on" : #main.map,"SpriteVisible E1 off"
    if MoveE2 > 0 then #main.map,"spritexy E11 ";E11x;" ";E11y : #main.map,"SpriteVisible E11 on" : #main.map, "cyclesprite E11 1" : #main.map,"SpriteVisible ED11 off" : #main.map "spritetofront E11"
    if MoveE2 = 0 then #main.map,"spritexy ED11 ";E11x;" ";E11y+10 : #main.map,"SpriteVisible ED11 on" : #main.map,"SpriteVisible E11 off"
    if MoveE3 > 0 then #main.map,"spritexy E12 ";E12x;" ";E12y : #main.map,"SpriteVisible E12 on" : #main.map, "cyclesprite E12 1" : #main.map,"SpriteVisible ED12 off" : #main.map "spritetofront E12"
    if MoveE3 = 0 then #main.map,"spritexy ED12 ";E12x;" ";E12y+10 : #main.map,"SpriteVisible ED12 on" : #main.map,"SpriteVisible E12 off"
    if MoveE4 > 0 then #main.map,"spritexy E13 ";E13x;" ";E13y : #main.map,"SpriteVisible E13 on" : #main.map, "cyclesprite E13 1" : #main.map,"SpriteVisible ED13 off" : #main.map "spritetofront E13"
    if MoveE4 = 0 then #main.map,"spritexy ED13 ";E13x;" ";E13y+10 : #main.map,"SpriteVisible ED13 on" : #main.map,"SpriteVisible E13 off"
    if MoveE5 > 0 then #main.map,"spritexy E14 ";E14x;" ";E14y : #main.map,"SpriteVisible E14 on" : #main.map, "cyclesprite E14 1" : #main.map,"SpriteVisible ED14 off" : #main.map "spritetofront E14"
    if MoveE5 = 0 then #main.map,"spritexy ED14 ";E14x;" ";E14y+10 : #main.map,"SpriteVisible ED14 on" : #main.map,"SpriteVisible E14 off"
    if MoveE6 > 0 then #main.map,"spritexy E15 ";E15x;" ";E15y : #main.map,"SpriteVisible E15 on" :  #main.map, "cyclesprite E15 1" : #main.map,"SpriteVisible ED15 off" : #main.map "spritetofront E15"
    if MoveE6 = 0 then #main.map,"spritexy ED15 ";E15x;" ";E15y+10 : #main.map,"SpriteVisible ED15 on" : #main.map,"SpriteVisible E15 off"
    if MoveE7 > 0 then #main.map,"spritexy E16 ";E16x;" ";E16y : #main.map,"SpriteVisible E16 on" : #main.map, "cyclesprite E16 1" : #main.map,"SpriteVisible ED16 off" : #main.map "spritetofront E16"
    if MoveE7 = 0 then #main.map,"spritexy ED16 ";E16x;" ";E16y+10 : #main.map,"SpriteVisible ED16 on" : #main.map,"SpriteVisible E16 off"
    if MoveE8 > 0 then #main.map,"spritexy E17 ";E17x;" ";E17y : #main.map,"SpriteVisible E17 on" : #main.map, "cyclesprite E17 1" : #main.map,"SpriteVisible ED17 off" : #main.map "spritetofront E17"
    if MoveE8 = 0 then #main.map,"spritexy ED17 ";E17x;" ";E17y+10 : #main.map,"SpriteVisible ED17 on" : #main.map,"SpriteVisible E17 off"
    if MoveE9 > 0 then #main.map,"spritexy E18 ";E18x;" ";E18y : #main.map,"SpriteVisible E18 on" : #main.map, "cyclesprite E18 1" : #main.map,"SpriteVisible ED18 off" : #main.map "spritetofront E18"
    if MoveE9 = 0 then #main.map,"spritexy ED18 ";E18x;" ";E18y+10 : #main.map,"SpriteVisible ED18 on" : #main.map,"SpriteVisible E18 off"
    if MoveE10 > 0 then #main.map,"spritexy E19 ";E19x;" ";E19y : #main.map,"SpriteVisible E19 on" : #main.map, "cyclesprite E19 1" : #main.map,"SpriteVisible ED19 off" : #main.map "spritetofront E19"
    if MoveE10 = 0 then #main.map,"spritexy ED19 ";E19x;" ";E19y+10 : #main.map,"SpriteVisible ED19 on" : #main.map,"SpriteVisible E19 off"
    if MoveE11 > 0 then #main.map,"spritexy E110 ";E110x;" ";E110y : #main.map,"SpriteVisible E110 on" : #main.map, "cyclesprite E110 1" : #main.map,"SpriteVisible ED110 off" : #main.map "spritetofront E110"
    if MoveE11 = 0 then #main.map,"spritexy ED110 ";E110x;" ";E110y+10 : #main.map,"SpriteVisible ED110 on" : #main.map,"SpriteVisible E110 off"
    if MoveE12 > 0 then #main.map,"spritexy E111 ";E111x;" ";E111y : #main.map,"SpriteVisible E111 on" : #main.map, "cyclesprite E111 1" : #main.map,"SpriteVisible ED111 off" : #main.map "spritetofront E111"
    if MoveE12 = 0 then #main.map,"spritexy ED111 ";E111x;" ";E111y+10 : #main.map,"SpriteVisible ED111 on" : #main.map,"SpriteVisible E111 off"
    if MoveE13 > 0 then #main.map,"spritexy E112 ";E112x;" ";E112y : #main.map,"SpriteVisible E112 on" : #main.map, "cyclesprite E112 1" : #main.map,"SpriteVisible ED112 off" : #main.map "spritetofront E112"
    if MoveE13 = 0 then #main.map,"spritexy ED112 ";E112x;" ";E112y+10 : #main.map,"SpriteVisible ED112 on" : #main.map,"SpriteVisible E112 off"
    if MoveE14 > 0 then #main.map,"spritexy E113 ";E113x;" ";E113y : #main.map,"SpriteVisible E113 on" : #main.map, "cyclesprite E113 1" : #main.map,"SpriteVisible ED113 off" : #main.map "spritetofront E113"
    if MoveE14 = 0 then #main.map,"spritexy ED113 ";E113x;" ";E113y+10 : #main.map,"SpriteVisible ED113 on" : #main.map,"SpriteVisible E113 off"
    if MoveE15 > 0 then #main.map,"spritexy E114 ";E114x;" ";E114y : #main.map,"SpriteVisible E114 on" : #main.map, "cyclesprite E114 1" : #main.map,"SpriteVisible ED114 off" : #main.map "spritetofront E114"
    if MoveE15 = 0 then #main.map,"spritexy ED114 ";E114x;" ";E114y+10 : #main.map,"SpriteVisible ED114 on" : #main.map,"SpriteVisible E114 off"
    if MoveE16 > 0 then #main.map,"spritexy E115 ";E115x;" ";E115y : #main.map,"SpriteVisible E115 on" : #main.map, "cyclesprite E115 1" : #main.map,"SpriteVisible ED115 off" : #main.map "spritetofront E115"
    if MoveE16 = 0 then #main.map,"spritexy ED115 ";E115x;" ";E115y+10 : #main.map,"SpriteVisible ED115 on" : #main.map,"SpriteVisible E115 off"
    if MoveE17 > 0 then #main.map,"spritexy E116 ";E116x;" ";E116y : #main.map,"SpriteVisible E116 on" : #main.map, "cyclesprite E116 1" : #main.map,"SpriteVisible ED116 off" : #main.map "spritetofront E116"
    if MoveE17 = 0 then #main.map,"spritexy ED116 ";E116x;" ";E116y+10 : #main.map,"SpriteVisible ED116 on" : #main.map,"SpriteVisible E116 off"
    if MoveE18 > 0 then #main.map,"spritexy E117 ";E117x;" ";E117y : #main.map,"SpriteVisible E117 on" : #main.map, "cyclesprite E117 1" : #main.map,"SpriteVisible ED117 off" : #main.map "spritetofront E117"
    if MoveE18 = 0 then #main.map,"spritexy ED117 ";E117x;" ";E117y+10 : #main.map,"SpriteVisible ED117 on" : #main.map,"SpriteVisible E117 off"
    if MoveE19 > 0 then #main.map,"spritexy E118 ";E118x;" ";E118y : #main.map,"SpriteVisible E118 on" : #main.map, "cyclesprite E118 1" : #main.map,"SpriteVisible ED118 off" : #main.map "spritetofront E118"
    if MoveE19 = 0 then #main.map,"spritexy ED118 ";E118x;" ";E118y+10 : #main.map,"SpriteVisible ED118 on" : #main.map,"SpriteVisible E118 off"
    if MoveE20 > 0 then #main.map,"spritexy E119 ";E119x;" ";E119y : #main.map,"SpriteVisible E119 on" : #main.map, "cyclesprite E119 1" : #main.map,"SpriteVisible ED119 off" : #main.map "spritetofront E119"
    if MoveE20 = 0 then #main.map,"spritexy ED119 ";E119x;" ";E119y+10 : #main.map,"SpriteVisible ED119 on" : #main.map,"SpriteVisible E119 off"
    if MoveE21 > 0 then #main.map,"spritexy E120 ";E120x;" ";E120y : #main.map,"SpriteVisible E120 on" : #main.map, "cyclesprite E120 1" : #main.map,"SpriteVisible ED120 off" : #main.map "spritetofront E120"
    if MoveE21 = 0 then #main.map,"spritexy ED120 ";E120x;" ";E120y+10 : #main.map,"SpriteVisible ED120 on" : #main.map,"SpriteVisible E120 off"
    if MoveE22 > 0 then #main.map,"spritexy E121 ";E121x;" ";E121y : #main.map,"SpriteVisible E121 on" : #main.map, "cyclesprite E121 1" : #main.map,"SpriteVisible ED121 off" : #main.map "spritetofront E121"
    if MoveE22 = 0 then #main.map,"spritexy ED121 ";E121x;" ";E121y+10 : #main.map,"SpriteVisible ED121 on" : #main.map,"SpriteVisible E121 off"
    if MoveE23 > 0 then #main.map,"spritexy E122 ";E122x;" ";E122y : #main.map,"SpriteVisible E122 on" : #main.map, "cyclesprite E122 1" : #main.map,"SpriteVisible ED122 off" : #main.map "spritetofront E122"
    if MoveE23 = 0 then #main.map,"spritexy ED122 ";E122x;" ";E122y+10 : #main.map,"SpriteVisible ED122 on" : #main.map,"SpriteVisible E122 off"
    if MoveE24 > 0 then #main.map,"spritexy E123 ";E123x;" ";E123y : #main.map,"SpriteVisible E123 on" : #main.map, "cyclesprite E123 1" : #main.map,"SpriteVisible ED123 off" : #main.map "spritetofront E123"
    if MoveE24 = 0 then #main.map,"spritexy ED123 ";E123x;" ";E123y+10 : #main.map,"SpriteVisible ED123 on" : #main.map,"SpriteVisible E123 off"
    if MoveE25 > 0 then #main.map,"spritexy E124 ";E124x;" ";E124y : #main.map,"SpriteVisible E124 on" : #main.map, "cyclesprite E124 1" : #main.map,"SpriteVisible ED124 off" : #main.map "spritetofront E124"
    if MoveE25 = 0 then #main.map,"spritexy ED124 ";E124x;" ";E124y+10 : #main.map,"SpriteVisible ED124 on" : #main.map,"SpriteVisible E124 off"
    if MoveE26 > 0 then #main.map,"spritexy E125 ";E125x;" ";E125y : #main.map,"SpriteVisible E125 on" : #main.map, "cyclesprite E125 1" : #main.map,"SpriteVisible ED125 off" : #main.map "spritetofront E125"
    if MoveE26 = 0 then #main.map,"spritexy ED125 ";E125x;" ";E125y+10 : #main.map,"SpriteVisible ED125 on" : #main.map,"SpriteVisible E125 off"
    if MoveE27 > 0 then #main.map,"spritexy E126 ";E126x;" ";E126y : #main.map,"SpriteVisible E126 on" : #main.map, "cyclesprite E126 1" : #main.map,"SpriteVisible ED126 off" : #main.map "spritetofront E126"
    if MoveE27 = 0 then #main.map,"spritexy ED126 ";E126x;" ";E126y+10 : #main.map,"SpriteVisible ED126 on" : #main.map,"SpriteVisible E126 off"
    if MoveE28 > 0 then #main.map,"spritexy E127 ";E127x;" ";E127y : #main.map,"SpriteVisible E127 on" : #main.map, "cyclesprite E127 1" : #main.map,"SpriteVisible ED127 off" : #main.map "spritetofront E127"
    if MoveE28 = 0 then #main.map,"spritexy ED127 ";E127x;" ";E127y+10 : #main.map,"SpriteVisible ED127 on" : #main.map,"SpriteVisible E127 off"
    if MoveE29 > 0 then #main.map,"spritexy E128 ";E128x;" ";E128y : #main.map,"SpriteVisible E128 on" : #main.map, "cyclesprite E128 1" : #main.map,"SpriteVisible ED128 off" : #main.map "spritetofront E128"
    if MoveE29 = 0 then #main.map,"spritexy ED128 ";E128x;" ";E128y+10 : #main.map,"SpriteVisible ED128 on" : #main.map,"SpriteVisible E128 off"
    if MoveE30 > 0 then #main.map,"spritexy E129 ";E129x;" ";E129y : #main.map,"SpriteVisible E129 on" : #main.map, "cyclesprite E129 1" : #main.map,"SpriteVisible ED129 off" : #main.map "spritetofront E129"
    if MoveE30 = 0 then #main.map,"spritexy ED129 ";E129x;" ";E129y+10 : #main.map,"SpriteVisible ED129 on" : #main.map,"SpriteVisible E129 off"
    if MoveE31 > 0 then #main.map,"spritexy E130 ";E130x;" ";E130y : #main.map,"SpriteVisible E130 on" : #main.map, "cyclesprite E130 1" : #main.map,"SpriteVisible ED130 off" : #main.map "spritetofront E130"
    if MoveE31 = 0 then #main.map,"spritexy ED130 ";E130x;" ";E130y+10 : #main.map,"SpriteVisible ED130 on" : #main.map,"SpriteVisible E130 off"
    if MoveE32 > 0 then #main.map,"spritexy E131 ";E131x;" ";E131y : #main.map,"SpriteVisible E131 on" : #main.map, "cyclesprite E131 1" : #main.map,"SpriteVisible ED131 off" : #main.map "spritetofront E131"
    if MoveE32 = 0 then #main.map,"spritexy ED131 ";E131x;" ";E131y+10 : #main.map,"SpriteVisible ED131 on" : #main.map,"SpriteVisible E131 off"
    if MoveE33 > 0 then #main.map,"spritexy E132 ";E132x;" ";E132y : #main.map,"SpriteVisible E132 on" : #main.map, "cyclesprite E132 1" : #main.map,"SpriteVisible ED132 off" : #main.map "spritetofront E132"
    if MoveE33 = 0 then #main.map,"spritexy ED132 ";E132x;" ";E132y+10 : #main.map,"SpriteVisible ED132 on" : #main.map,"SpriteVisible E132 off"
    if MoveE34 > 0 then #main.map,"spritexy E133 ";E133x;" ";E133y : #main.map,"SpriteVisible E133 on" : #main.map, "cyclesprite E133 1" : #main.map,"SpriteVisible ED133 off" : #main.map "spritetofront E133"
    if MoveE34 = 0 then #main.map,"spritexy ED133 ";E133x;" ";E133y+10 : #main.map,"SpriteVisible ED133 on" : #main.map,"SpriteVisible E133 off"
    if MoveE35 > 0 then #main.map,"spritexy E134 ";E134x;" ";E134y : #main.map,"SpriteVisible E134 on" : #main.map, "cyclesprite E134 1" : #main.map,"SpriteVisible ED134 off" : #main.map "spritetofront E134"
    if MoveE35 = 0 then #main.map,"spritexy ED134 ";E134x;" ";E134y+10 : #main.map,"SpriteVisible ED134 on" : #main.map,"SpriteVisible E134 off"
    if MoveE36 > 0 then #main.map,"spritexy E135 ";E135x;" ";E135y : #main.map,"SpriteVisible E135 on" : #main.map, "cyclesprite E135 1" : #main.map,"SpriteVisible ED135 off" : #main.map "spritetofront E135"
    if MoveE36 = 0 then #main.map,"spritexy ED135 ";E135x;" ";E135y+10 : #main.map,"SpriteVisible ED135 on" : #main.map,"SpriteVisible E135 off"
    if MoveE37 > 0 then #main.map,"spritexy E136 ";E136x;" ";E136y : #main.map,"SpriteVisible E136 on" : #main.map, "cyclesprite E136 1" : #main.map,"SpriteVisible ED136 off" : #main.map "spritetofront E136"
    if MoveE37 = 0 then #main.map,"spritexy ED136 ";E136x;" ";E136y+10 : #main.map,"SpriteVisible ED136 on" : #main.map,"SpriteVisible E136 off"
    if MoveE38 > 0 then #main.map,"spritexy E137 ";E137x;" ";E137y : #main.map,"SpriteVisible E137 on" : #main.map, "cyclesprite E137 1" : #main.map,"SpriteVisible ED137 off" : #main.map "spritetofront E137"
    if MoveE38 = 0 then #main.map,"spritexy ED137 ";E137x;" ";E137y+10 : #main.map,"SpriteVisible ED137 on" : #main.map,"SpriteVisible E137 off"
    if MoveE39 > 0 then #main.map,"spritexy E138 ";E138x;" ";E138y : #main.map,"SpriteVisible E138 on" : #main.map, "cyclesprite E138 1" : #main.map,"SpriteVisible ED138 off" : #main.map "spritetofront E138"
    if MoveE39 = 0 then #main.map,"spritexy ED138 ";E138x;" ";E138y+10 : #main.map,"SpriteVisible ED138 on" : #main.map,"SpriteVisible E138 off"
    if MoveE40 > 0 then #main.map,"spritexy E139 ";E139x;" ";E139y : #main.map,"SpriteVisible E139 on" : #main.map, "cyclesprite E139 1" : #main.map,"SpriteVisible ED139 off" : #main.map "spritetofront E139"
    if MoveE40 = 0 then #main.map,"spritexy ED139 ";E139x;" ";E139y+10 : #main.map,"SpriteVisible ED139 on" : #main.map,"SpriteVisible E139 off"
    if MoveE41 > 0 then #main.map,"spritexy E140 ";E140x;" ";E140y : #main.map,"SpriteVisible E140 on" : #main.map, "cyclesprite E140 1" : #main.map,"SpriteVisible ED140 off" : #main.map "spritetofront E140"
    if MoveE41 = 0 then #main.map,"spritexy ED140 ";E140x;" ";E140y+10 : #main.map,"SpriteVisible ED140 on" : #main.map,"SpriteVisible E140 off"
    if MoveE42 > 0 then #main.map,"spritexy E141 ";E141x;" ";E141y : #main.map,"SpriteVisible E141 on" : #main.map, "cyclesprite E141 1" : #main.map,"SpriteVisible ED141 off" : #main.map "spritetofront E141"
    if MoveE42 = 0 then #main.map,"spritexy ED141 ";E141x;" ";E141y+10 : #main.map,"SpriteVisible ED141 on" : #main.map,"SpriteVisible E141 off"
    if MoveE43 > 0 then #main.map,"spritexy E142 ";E142x;" ";E142y : #main.map,"SpriteVisible E142 on" : #main.map, "cyclesprite E142 1" : #main.map,"SpriteVisible ED142 off" : #main.map "spritetofront E142"
    if MoveE43 = 0 then #main.map,"spritexy ED142 ";E142x;" ";E142y+10 : #main.map,"SpriteVisible ED142 on" : #main.map,"SpriteVisible E142 off"
    if MoveE44 > 0 then #main.map,"spritexy E143 ";E143x;" ";E143y : #main.map,"SpriteVisible E143 on" : #main.map, "cyclesprite E143 1" : #main.map,"SpriteVisible ED143 off" : #main.map "spritetofront E143"
    if MoveE44 = 0 then #main.map,"spritexy ED143 ";E143x;" ";E143y+10 : #main.map,"SpriteVisible ED143 on" : #main.map,"SpriteVisible E143 off"
    if MoveE45 > 0 then #main.map,"spritexy E144 ";E144x;" ";E144y : #main.map,"SpriteVisible E144 on" : #main.map, "cyclesprite E144 1" : #main.map,"SpriteVisible ED144 off" : #main.map "spritetofront E144"
    if MoveE45 = 0 then #main.map,"spritexy ED144 ";E144x;" ";E144y+10 : #main.map,"SpriteVisible ED144 on" : #main.map,"SpriteVisible E144 off"
    if MoveE46 > 0 then #main.map,"spritexy E145 ";E145x;" ";E145y : #main.map,"SpriteVisible E145 on" : #main.map, "cyclesprite E145 1" : #main.map,"SpriteVisible ED145 off" : #main.map "spritetofront E145"
    if MoveE46 = 0 then #main.map,"spritexy ED145 ";E145x;" ";E145y+10 : #main.map,"SpriteVisible ED145 on" : #main.map,"SpriteVisible E145 off"
    if MoveE47 > 0 then #main.map,"spritexy E146 ";E146x;" ";E146y : #main.map,"SpriteVisible E146 on" : #main.map, "cyclesprite E146 1" : #main.map,"SpriteVisible ED146 off" : #main.map "spritetofront E146"
    if MoveE47 = 0 then #main.map,"spritexy ED146 ";E146x;" ";E146y+10 : #main.map,"SpriteVisible ED146 on" : #main.map,"SpriteVisible E146 off"
    if MoveE48 > 0 then #main.map,"spritexy E147 ";E147x;" ";E147y : #main.map,"SpriteVisible E147 on" : #main.map, "cyclesprite E147 1" : #main.map,"SpriteVisible ED147 off" : #main.map "spritetofront E147"
    if MoveE48 = 0 then #main.map,"spritexy ED147 ";E147x;" ";E147y+10 : #main.map,"SpriteVisible ED147 on" : #main.map,"SpriteVisible E147 off"
    if MoveE49 > 0 then #main.map,"spritexy E148 ";E148x;" ";E148y : #main.map,"SpriteVisible E148 on" : #main.map, "cyclesprite E148 1" : #main.map,"SpriteVisible ED148 off" : #main.map "spritetofront E148"
    if MoveE49 = 0 then #main.map,"spritexy ED148 ";E148x;" ";E148y+10 : #main.map,"SpriteVisible ED148 on" : #main.map,"SpriteVisible E148 off"
    if MoveE50 > 0 then #main.map,"spritexy E149 ";E149x;" ";E149y : #main.map,"SpriteVisible E149 on" : #main.map, "cyclesprite E149 1" : #main.map,"SpriteVisible ED149 off" : #main.map "spritetofront E149"
    if MoveE50 = 0 then #main.map,"spritexy ED149 ";E149x;" ";E149y+10 : #main.map,"SpriteVisible ED149 on" : #main.map,"SpriteVisible E149 off"
    if MoveE51 > 0 then #main.map,"spritexy E150 ";E150x;" ";E150y : #main.map,"SpriteVisible E150 on" : #main.map, "cyclesprite E150 1" : #main.map,"SpriteVisible ED150 off" : #main.map "spritetofront E150"
    if MoveE51 = 0 then #main.map,"spritexy ED150 ";E150x;" ";E150y+10 : #main.map,"SpriteVisible ED150 on" : #main.map,"SpriteVisible E150 off"
    if MoveE52 > 0 then #main.map,"spritexy E151 ";E151x;" ";E151y : #main.map,"SpriteVisible E151 on" : #main.map, "cyclesprite E151 1" : #main.map,"SpriteVisible ED151 off" : #main.map "spritetofront E151"
    if MoveE52 = 0 then #main.map,"spritexy ED151 ";E151x;" ";E151y+10 : #main.map,"SpriteVisible ED151 on" : #main.map,"SpriteVisible E151 off"
    if MoveE53 > 0 then #main.map,"spritexy E152 ";E152x;" ";E152y : #main.map,"SpriteVisible E152 on" : #main.map, "cyclesprite E152 1" : #main.map,"SpriteVisible ED152 off" : #main.map "spritetofront E152"
    if MoveE53 = 0 then #main.map,"spritexy ED152 ";E152x;" ";E152y+10 : #main.map,"SpriteVisible ED152 on" : #main.map,"SpriteVisible E152 off"
    if MoveE54 > 0 then #main.map,"spritexy E153 ";E153x;" ";E153y : #main.map,"SpriteVisible E153 on" : #main.map, "cyclesprite E153 1" : #main.map,"SpriteVisible ED153 off" : #main.map "spritetofront E153"
    if MoveE54 = 0 then #main.map,"spritexy ED153 ";E153x;" ";E153y+10 : #main.map,"SpriteVisible ED153 on" : #main.map,"SpriteVisible E153 off"
    if MoveE55 > 0 then #main.map,"spritexy E154 ";E154x;" ";E154y : #main.map,"SpriteVisible E154 on" : #main.map, "cyclesprite E154 1" : #main.map,"SpriteVisible ED154 off" : #main.map "spritetofront E154"
    if MoveE55 = 0 then #main.map,"spritexy ED154 ";E154x;" ";E154y+10 : #main.map,"SpriteVisible ED154 on" : #main.map,"SpriteVisible E154 off"
    if MoveE56 > 0 then #main.map,"spritexy E155 ";E155x;" ";E155y : #main.map,"SpriteVisible E155 on" : #main.map, "cyclesprite E155 1" : #main.map,"SpriteVisible ED155 off" : #main.map "spritetofront E155"
    if MoveE56 = 0 then #main.map,"spritexy ED155 ";E155x;" ";E155y+10 : #main.map,"SpriteVisible ED155 on" : #main.map,"SpriteVisible E155 off"
    if MoveE57 > 0 then #main.map,"spritexy E156 ";E156x;" ";E156y : #main.map,"SpriteVisible E156 on" : #main.map, "cyclesprite E156 1" : #main.map,"SpriteVisible ED156 off" : #main.map "spritetofront E156"
    if MoveE57 = 0 then #main.map,"spritexy ED156 ";E156x;" ";E156y+10 : #main.map,"SpriteVisible ED156 on" : #main.map,"SpriteVisible E156 off"
    if MoveE58 > 0 then #main.map,"spritexy E157 ";E157x;" ";E157y : #main.map,"SpriteVisible E157 on" : #main.map, "cyclesprite E157 1" : #main.map,"SpriteVisible ED157 off" : #main.map "spritetofront E157"
    if MoveE58 = 0 then #main.map,"spritexy ED157 ";E157x;" ";E157y+10 : #main.map,"SpriteVisible ED157 on" : #main.map,"SpriteVisible E157 off"
    if MoveE59 > 0 then #main.map,"spritexy E158 ";E158x;" ";E158y : #main.map,"SpriteVisible E158 on" : #main.map, "cyclesprite E158 1" : #main.map,"SpriteVisible ED158 off" : #main.map "spritetofront E158"
    if MoveE59 = 0 then #main.map,"spritexy ED158 ";E158x;" ";E158y+10 : #main.map,"SpriteVisible ED158 on" : #main.map,"SpriteVisible E158 off"
    if MoveE60 > 0 then #main.map,"spritexy E159 ";E159x;" ";E159y : #main.map,"SpriteVisible E159 on" : #main.map, "cyclesprite E159 1" : #main.map,"SpriteVisible ED159 off" : #main.map "spritetofront E159"
    if MoveE60 = 0 then #main.map,"spritexy ED159 ";E159x;" ";E159y+10 : #main.map,"SpriteVisible ED159 on" : #main.map,"SpriteVisible E159 off"
    if MoveE61 > 0 then #main.map,"spritexy E160 ";E160x;" ";E160y : #main.map,"SpriteVisible E160 on" : #main.map, "cyclesprite E160 1" : #main.map,"SpriteVisible ED160 off" : #main.map "spritetofront E160"
    if MoveE61 = 0 then #main.map,"spritexy ED160 ";E160x;" ";E160y+10 : #main.map,"SpriteVisible ED160 on" : #main.map,"SpriteVisible E160 off"
    if MoveE62 > 0 then #main.map,"spritexy E161 ";E161x;" ";E161y : #main.map,"SpriteVisible E161 on" : #main.map, "cyclesprite E161 1" : #main.map,"SpriteVisible ED161 off" : #main.map "spritetofront E161"
    if MoveE62 = 0 then #main.map,"spritexy ED161 ";E161x;" ";E161y+10 : #main.map,"SpriteVisible ED161 on" : #main.map,"SpriteVisible E161 off"
    if MoveE63 > 0 then #main.map,"spritexy E162 ";E162x;" ";E162y : #main.map,"SpriteVisible E162 on" : #main.map, "cyclesprite E162 1" : #main.map,"SpriteVisible ED162 off" : #main.map "spritetofront E162"
    if MoveE63 = 0 then #main.map,"spritexy ED162 ";E162x;" ";E162y+10 : #main.map,"SpriteVisible ED162 on" : #main.map,"SpriteVisible E162 off"
    if MoveE64 > 0 then #main.map,"spritexy E163 ";E163x;" ";E163y : #main.map,"SpriteVisible E163 on" : #main.map, "cyclesprite E163 1" : #main.map,"SpriteVisible ED163 off" : #main.map "spritetofront E163"
    if MoveE64 = 0 then #main.map,"spritexy ED163 ";E163x;" ";E163y+10 : #main.map,"SpriteVisible ED163 on" : #main.map,"SpriteVisible E163 off"
    if MoveE65 > 0 then #main.map,"spritexy E164 ";E164x;" ";E164y : #main.map,"SpriteVisible E164 on" : #main.map, "cyclesprite E164 1" : #main.map,"SpriteVisible ED164 off" : #main.map "spritetofront E164"
    if MoveE65 = 0 then #main.map,"spritexy ED164 ";E164x;" ";E164y+10 : #main.map,"SpriteVisible ED164 on" : #main.map,"SpriteVisible E164 off"
    if MoveE66 > 0 then #main.map,"spritexy E165 ";E165x;" ";E165y : #main.map,"SpriteVisible E165 on" : #main.map, "cyclesprite E165 1" : #main.map,"SpriteVisible ED165 off" : #main.map "spritetofront E165"
    if MoveE66 = 0 then #main.map,"spritexy ED165 ";E165x;" ";E165y+10 : #main.map,"SpriteVisible ED165 on" : #main.map,"SpriteVisible E165 off"
    if MoveE67 > 0 then #main.map,"spritexy E166 ";E166x;" ";E166y : #main.map,"SpriteVisible E166 on" : #main.map, "cyclesprite E166 1" : #main.map,"SpriteVisible ED166 off" : #main.map "spritetofront E166"
    if MoveE67 = 0 then #main.map,"spritexy ED166 ";E166x;" ";E166y+10 : #main.map,"SpriteVisible ED166 on" : #main.map,"SpriteVisible E166 off"
    if MoveE68 > 0 then #main.map,"spritexy E167 ";E167x;" ";E167y : #main.map,"SpriteVisible E167 on" : #main.map, "cyclesprite E167 1" : #main.map,"SpriteVisible ED167 off" : #main.map "spritetofront E167"
    if MoveE68 = 0 then #main.map,"spritexy ED167 ";E167x;" ";E167y+10 : #main.map,"SpriteVisible ED167 on" : #main.map,"SpriteVisible E167 off"
    if MoveE69 > 0 then #main.map,"spritexy E168 ";E168x;" ";E168y : #main.map,"SpriteVisible E168 on" : #main.map, "cyclesprite E168 1" : #main.map,"SpriteVisible ED168 off" : #main.map "spritetofront E168"
    if MoveE69 = 0 then #main.map,"spritexy ED168 ";E168x;" ";E168y+10 : #main.map,"SpriteVisible ED168 on" : #main.map,"SpriteVisible E168 off"
    if MoveE70 > 0 then #main.map,"spritexy E169 ";E169x;" ";E169y : #main.map,"SpriteVisible E169 on" : #main.map, "cyclesprite E169 1" : #main.map,"SpriteVisible ED169 off" : #main.map "spritetofront E169"
    if MoveE70 = 0 then #main.map,"spritexy ED169 ";E169x;" ";E169y+10 : #main.map,"SpriteVisible ED169 on" : #main.map,"SpriteVisible E169 off"
    if MoveE71 > 0 then #main.map,"spritexy E170 ";E170x;" ";E170y : #main.map,"SpriteVisible E170 on" : #main.map, "cyclesprite E170 1" : #main.map,"SpriteVisible ED170 off" : #main.map "spritetofront E170"
    if MoveE71 = 0 then #main.map,"spritexy ED170 ";E170x;" ";E170y+10 : #main.map,"SpriteVisible ED170 on" : #main.map,"SpriteVisible E170 off"
    if MoveE72 > 0 then #main.map,"spritexy E171 ";E171x;" ";E171y : #main.map,"SpriteVisible E171 on" : #main.map, "cyclesprite E171 1" : #main.map,"SpriteVisible ED171 off" : #main.map "spritetofront E171"
    if MoveE72 = 0 then #main.map,"spritexy ED171 ";E171x;" ";E171y+10 : #main.map,"SpriteVisible ED171 on" : #main.map,"SpriteVisible E171 off"
    if MoveE73 > 0 then #main.map,"spritexy E172 ";E172x;" ";E172y : #main.map,"SpriteVisible E172 on" : #main.map, "cyclesprite E172 1" : #main.map,"SpriteVisible ED172 off" : #main.map "spritetofront E172"
    if MoveE73 = 0 then #main.map,"spritexy ED172 ";E172x;" ";E172y+10 : #main.map,"SpriteVisible ED172 on" : #main.map,"SpriteVisible E172 off"
    if MoveE74 > 0 then #main.map,"spritexy E173 ";E173x;" ";E173y : #main.map,"SpriteVisible E173 on" : #main.map, "cyclesprite E173 1" : #main.map,"SpriteVisible ED173 off" : #main.map "spritetofront E173"
    if MoveE74 = 0 then #main.map,"spritexy ED173 ";E173x;" ";E173y+10 : #main.map,"SpriteVisible ED173 on" : #main.map,"SpriteVisible E173 off"
    if MoveE75 > 0 then #main.map,"spritexy E174 ";E174x;" ";E174y : #main.map,"SpriteVisible E174 on" : #main.map, "cyclesprite E174 1" : #main.map,"SpriteVisible ED174 off" : #main.map "spritetofront E174"
    if MoveE75 = 0 then #main.map,"spritexy ED174 ";E174x;" ";E174y+10 : #main.map,"SpriteVisible ED174 on" : #main.map,"SpriteVisible E174 off"
    if MoveE76 > 0 then #main.map,"spritexy E175 ";E175x;" ";E175y : #main.map,"SpriteVisible E175 on" : #main.map, "cyclesprite E175 1" : #main.map,"SpriteVisible ED175 off" : #main.map "spritetofront E175"
    if MoveE76 = 0 then #main.map,"spritexy ED175 ";E175x;" ";E175y+10 : #main.map,"SpriteVisible ED175 on" : #main.map,"SpriteVisible E175 off"
    if MoveE77 > 0 then #main.map,"spritexy E176 ";E176x;" ";E176y : #main.map,"SpriteVisible E176 on" : #main.map, "cyclesprite E176 1" : #main.map,"SpriteVisible ED176 off" : #main.map "spritetofront E176"
    if MoveE77 = 0 then #main.map,"spritexy ED176 ";E176x;" ";E176y+10 : #main.map,"SpriteVisible ED176 on" : #main.map,"SpriteVisible E176 off"
    if MoveE78 > 0 then #main.map,"spritexy E177 ";E177x;" ";E177y : #main.map,"SpriteVisible E177 on" : #main.map, "cyclesprite E177 1" : #main.map,"SpriteVisible ED177 off" : #main.map "spritetofront E177"
    if MoveE78 = 0 then #main.map,"spritexy ED177 ";E177x;" ";E177y+10 : #main.map,"SpriteVisible ED177 on" : #main.map,"SpriteVisible E177 off"
    if MoveE79 > 0 then #main.map,"spritexy E178 ";E178x;" ";E178y : #main.map,"SpriteVisible E178 on" : #main.map, "cyclesprite E178 1" : #main.map,"SpriteVisible ED178 off" : #main.map "spritetofront E178"
    if MoveE79 = 0 then #main.map,"spritexy ED178 ";E178x;" ";E178y+10 : #main.map,"SpriteVisible ED178 on" : #main.map,"SpriteVisible E178 off"
    if MoveE80 > 0 then #main.map,"spritexy E179 ";E179x;" ";E179y : #main.map,"SpriteVisible E179 on" : #main.map, "cyclesprite E179 1" : #main.map,"SpriteVisible ED179 off" : #main.map "spritetofront E179"
    if MoveE80 = 0 then #main.map,"spritexy ED179 ";E179x;" ";E179y+10 : #main.map,"SpriteVisible ED179 on" : #main.map,"SpriteVisible E179 off"
    if MoveE81 > 0 then #main.map,"spritexy E180 ";E180x;" ";E180y : #main.map,"SpriteVisible E180 on" : #main.map, "cyclesprite E180 1" : #main.map,"SpriteVisible ED180 off" : #main.map "spritetofront E180"
    if MoveE81 = 0 then #main.map,"spritexy ED180 ";E180x;" ";E180y+10 : #main.map,"SpriteVisible ED180 on" : #main.map,"SpriteVisible E180 off"
    if MoveE82 > 0 then #main.map,"spritexy E181 ";E181x;" ";E181y : #main.map,"SpriteVisible E181 on" : #main.map, "cyclesprite E181 1" : #main.map,"SpriteVisible ED181 off" : #main.map "spritetofront E181"
    if MoveE82 = 0 then #main.map,"spritexy ED181 ";E181x;" ";E181y+10 : #main.map,"SpriteVisible ED181 on" : #main.map,"SpriteVisible E181 off"
    if MoveE83 > 0 then #main.map,"spritexy E182 ";E182x;" ";E182y : #main.map,"SpriteVisible E182 on" : #main.map, "cyclesprite E182 1" : #main.map,"SpriteVisible ED182 off" : #main.map "spritetofront E182"
    if MoveE83 = 0 then #main.map,"spritexy ED182 ";E182x;" ";E182y+10 : #main.map,"SpriteVisible ED182 on" : #main.map,"SpriteVisible E182 off"
    if MoveE84 > 0 then #main.map,"spritexy E183 ";E183x;" ";E183y : #main.map,"SpriteVisible E183 on" : #main.map, "cyclesprite E183 1" : #main.map,"SpriteVisible ED183 off" : #main.map "spritetofront E183"
    if MoveE84 = 0 then #main.map,"spritexy ED183 ";E183x;" ";E183y+10 : #main.map,"SpriteVisible ED183 on" : #main.map,"SpriteVisible E183 off"
    if MoveE85 > 0 then #main.map,"spritexy E184 ";E184x;" ";E184y : #main.map,"SpriteVisible E184 on" : #main.map, "cyclesprite E184 1" : #main.map,"SpriteVisible ED184 off" : #main.map "spritetofront E184"
    if MoveE85 = 0 then #main.map,"spritexy ED184 ";E184x;" ";E184y+10 : #main.map,"SpriteVisible ED184 on" : #main.map,"SpriteVisible E184 off"
    if MoveE86 > 0 then #main.map,"spritexy E185 ";E185x;" ";E185y : #main.map,"SpriteVisible E185 on" : #main.map, "cyclesprite E185 1" : #main.map,"SpriteVisible ED185 off" : #main.map "spritetofront E185"
    if MoveE86 = 0 then #main.map,"spritexy ED185 ";E185x;" ";E185y+10 : #main.map,"SpriteVisible ED185 on" : #main.map,"SpriteVisible E185 off"
    if MoveE87 > 0 then #main.map,"spritexy E186 ";E186x;" ";E186y : #main.map,"SpriteVisible E186 on" : #main.map, "cyclesprite E186 1" : #main.map,"SpriteVisible ED186 off" : #main.map "spritetofront E186"
    if MoveE87 = 0 then #main.map,"spritexy ED186 ";E186x;" ";E186y+10 : #main.map,"SpriteVisible ED186 on" : #main.map,"SpriteVisible E186 off"
    if MoveE88 > 0 then #main.map,"spritexy E187 ";E187x;" ";E187y : #main.map,"SpriteVisible E187 on" : #main.map, "cyclesprite E187 1" : #main.map,"SpriteVisible ED187 off" : #main.map "spritetofront E187"
    if MoveE88 = 0 then #main.map,"spritexy ED187 ";E187x;" ";E187y+10 : #main.map,"SpriteVisible ED187 on" : #main.map,"SpriteVisible E187 off"
    if MoveE89 > 0 then #main.map,"spritexy E188 ";E188x;" ";E188y : #main.map,"SpriteVisible E188 on" : #main.map, "cyclesprite E188 1" : #main.map,"SpriteVisible ED188 off" : #main.map "spritetofront E188"
    if MoveE89 = 0 then #main.map,"spritexy ED188 ";E188x;" ";E188y+10 : #main.map,"SpriteVisible ED188 on" : #main.map,"SpriteVisible E188 off"
    if MoveE90 > 0 then #main.map,"spritexy E189 ";E189x;" ";E189y : #main.map,"SpriteVisible E189 on" : #main.map, "cyclesprite E189 1" : #main.map,"SpriteVisible ED189 off" : #main.map "spritetofront E189"
    if MoveE90 = 0 then #main.map,"spritexy ED189 ";E189x;" ";E189y+10 : #main.map,"SpriteVisible ED189 on" : #main.map,"SpriteVisible E189 off"
    if MoveE91 > 0 then #main.map,"spritexy E190 ";E190x;" ";E190y : #main.map,"SpriteVisible E190 on" : #main.map, "cyclesprite E190 1" : #main.map,"SpriteVisible ED190 off" : #main.map "spritetofront E190"
    if MoveE91 = 0 then #main.map,"spritexy ED190 ";E190x;" ";E190y+10 : #main.map,"SpriteVisible ED190 on" : #main.map,"SpriteVisible E190 off"
    if MoveE92 > 0 then #main.map,"spritexy E191 ";E191x;" ";E191y : #main.map,"SpriteVisible E191 on" : #main.map, "cyclesprite E191 1" : #main.map,"SpriteVisible ED191 off" : #main.map "spritetofront E191"
    if MoveE92 = 0 then #main.map,"spritexy ED191 ";E191x;" ";E191y+10 : #main.map,"SpriteVisible ED191 on" : #main.map,"SpriteVisible E191 off"
    if MoveE93 > 0 then #main.map,"spritexy E192 ";E192x;" ";E192y : #main.map,"SpriteVisible E192 on" : #main.map, "cyclesprite E192 1" : #main.map,"SpriteVisible ED192 off" : #main.map "spritetofront E192"
    if MoveE93 = 0 then #main.map,"spritexy ED192 ";E192x;" ";E192y+10 : #main.map,"SpriteVisible ED192 on" : #main.map,"SpriteVisible E192 off"
    if MoveE94 > 0 then #main.map,"spritexy E193 ";E193x;" ";E193y : #main.map,"SpriteVisible E193 on" : #main.map, "cyclesprite E193 1" : #main.map,"SpriteVisible ED193 off" : #main.map "spritetofront E193"
    if MoveE94 = 0 then #main.map,"spritexy ED193 ";E193x;" ";E193y+10 : #main.map,"SpriteVisible ED193 on" : #main.map,"SpriteVisible E193 off"
    if MoveE95 > 0 then #main.map,"spritexy E194 ";E194x;" ";E194y : #main.map,"SpriteVisible E194 on" : #main.map, "cyclesprite E194 1" : #main.map,"SpriteVisible ED194 off" : #main.map "spritetofront E194"
    if MoveE95 = 0 then #main.map,"spritexy ED194 ";E194x;" ";E194y+10 : #main.map,"SpriteVisible ED194 on" : #main.map,"SpriteVisible E194 off"
    if MoveE96 > 0 then #main.map,"spritexy E195 ";E195x;" ";E195y : #main.map,"SpriteVisible E195 on" : #main.map, "cyclesprite E195 1" : #main.map,"SpriteVisible ED195 off" : #main.map "spritetofront E195"
    if MoveE96 = 0 then #main.map,"spritexy ED195 ";E195x;" ";E195y+10 : #main.map,"SpriteVisible ED195 on" : #main.map,"SpriteVisible E195 off"
    if MoveE97 > 0 then #main.map,"spritexy E196 ";E196x;" ";E196y : #main.map,"SpriteVisible E196 on" : #main.map, "cyclesprite E196 1" : #main.map,"SpriteVisible ED196 off" : #main.map "spritetofront E196"
    if MoveE97 = 0 then #main.map,"spritexy ED196 ";E196x;" ";E196y+10 : #main.map,"SpriteVisible ED196 on" : #main.map,"SpriteVisible E196 off"
    if MoveE98 > 0 then #main.map,"spritexy E197 ";E197x;" ";E197y : #main.map,"SpriteVisible E197 on" : #main.map, "cyclesprite E197 1" : #main.map,"SpriteVisible ED197 off" : #main.map "spritetofront E197"
    if MoveE98 = 0 then #main.map,"spritexy ED197 ";E197x;" ";E197y+10 : #main.map,"SpriteVisible ED197 on" : #main.map,"SpriteVisible E197 off"
    if MoveE99 > 0 then #main.map,"spritexy E198 ";E198x;" ";E198y : #main.map,"SpriteVisible E198 on" : #main.map, "cyclesprite E198 1" : #main.map,"SpriteVisible ED198 off" : #main.map "spritetofront E198"
    if MoveE99 = 0 then #main.map,"spritexy ED198 ";E198x;" ";E198y+10 : #main.map,"SpriteVisible ED198 on" : #main.map,"SpriteVisible E198 off"
    if MoveE100 > 0 then #main.map,"spritexy E199 ";E199x;" ";E199y : #main.map,"SpriteVisible E199 on" : #main.map, "cyclesprite E199 1" : #main.map,"SpriteVisible ED199 off" : #main.map "spritetofront E199"
    if MoveE100 = 0 then #main.map,"spritexy ED199 ";E199x;" ";E199y+10 : #main.map,"SpriteVisible ED199 on" : #main.map,"SpriteVisible E199 off"
 
 
 




Edité par atomose Le 12/07/2019 à 20h54
____________________
Yo !

MSN Web    
Le 13/07/2019 à 07h52

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2081
Je ne vois pas dans ton code les variables " A1 , A11, A12..." citées précédemment.
Concernant la forêt de if, peut-être qu'un select case serait plus rapide.
____________________
Roro

   
Le 13/07/2019 à 15h46

Modérateur

Groupe: Modérateur

Inscrit le: 09/02/2015
Messages: 515
Hello !

Si ta forêt d'if tourne bien, je serais d'avis de ne pas y toucher, parce que, mine de rien, ça semble difficile de faire plus concis (ce que j'ai pu imaginer n'a fait qu'ajouter de la complexité).

Donc je n'ai pas mieux à proposer que Roland : une sub à laquelle on envoie des paramètres et qui construit les trois chaines à envoyer à main.map. Les 200 ifs existeront toujours, mais ils seront sûrement plus courts et plus lisibles.

Et il n'y aura qu'une sub/fonction à modifier au besoin, car pour le moment, si tu veux modifier ou ajouter des paramètres de sprite, tu es obligé de répercuter tes modifs pour chaque if (je suppose que c'est en cela que Roland parlait de question de débutant ;) )

Si j'ai deux minutes ce week-end, je vais voir si on peut avoir une approche par tableaux (c'est une petite idée en passant)
____________________
Just BASIC v2.0 :
  • utilisation courante avec GNU/Linux Mageia6 + Wine (Pas trouvé d'incohérences ou de bug de compilation à ce jour)
  • utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc

   
Le 13/07/2019 à 18h45

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2081
Pour en faire une boucle, il faut mettre tout le basar en chaîne
Code VB :
 
x$="MoveE1 MoveE2....ext"
s$="ED11 E11 E13 ED5...ext"
coord$="20 30 50 100...ext" les variables numériques seront mieux en tableau
...$="...."
...$="...."
svis$="1 0 0 1 0 1 1 1 0...ext"
...ext
For x=1 to 100
   if word$(x$,x)= then spritexy$=word$(s$,x): co$=word$(coord$,x): vis$=word$(svis$,x)...ext: gosub [traite]
   if word$(x$,x)>
next x
 
[traite]
 Ici on traite les chaines et les valeurs
#main.map,spritexy$ ";s$;co$....ext: #main.map,vis$; sss$ ...ext 
return

Reste à savoir si on y gagne quelque chose ?
____________________
Roro

   
Le 13/07/2019 à 19h04

Modérateur

Groupe: Modérateur

Inscrit le: 30/03/2011
Messages: 341
hum ok merci a vous ^^

une question .... est ce que la foret ne serait pas plus rapide a traiter par l'ordi que la boucle ? je m'explique .
Dans le cas des if, le programme survolle la foret. Si les conditions ne sont pas respectés il passe au prochain sans lire la totalité des instructions demandés. Or il me semble qu'avec la boucle toute les conditions sont "créé" puis lu ce qui pourrais ajouter un travail supplémentaire non ? je dis ca mais j'en sais rien XD. je pense que le select case serait le plus efficase en terme de performance mais vu que les variables ne sont pas identifques ca va causer quelques problème aussi ....
Bref, c'est casse tête XD
____________________
Yo !

MSN Web    
Le 13/07/2019 à 19h06

Modérateur

Groupe: Modérateur

Inscrit le: 09/02/2015
Messages: 515
Bien vu, Roland.

Et du coup mon intervention est moins pertinente.

Je travaille aussi de mon côté, et tu as répondu avant que je te dise que la série n'est pas A+quelque chose, mais E1, E11, E12, E13, etc..., ou si on veut être exhaustif E1, ED1, E11, ED11, E12, ED12, E13, ED13, etc... le D signifiant que la variable MoveE est égale à zéro.

Mais, manque de bol, j'ai été un peu vite dans mon analyse initiale, et j'ai cru que le nom des sprites était obtenu à partir des variables MoveE. Ainsi, pour MoveE1, on a bien un sprite nommé E1 qui a pour coordonnées E1x et E1y, donc pour E2 on aurait eu un sprite nommé E2, et ainsi de suite.

Mais que nenni ! La série est 1, 11 à 19, 110 à 199. Ce n'est pas très gênant pour moi mais ça complique un peu mon bout de logiciel. Je vous tiens au courant.

A mon avis, atomose, vu la quantité de variables que tu trimballes, mets-les en tableaux : elles seront indexées naturellement et tu n'auras plus besoin de les créer une par une avec le bon index. Il y a peut-être quelque chose à creuser de ce coté là.
____________________
Just BASIC v2.0 :
  • utilisation courante avec GNU/Linux Mageia6 + Wine (Pas trouvé d'incohérences ou de bug de compilation à ce jour)
  • utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc

   
Le 13/07/2019 à 19h09

Modérateur

Groupe: Modérateur

Inscrit le: 09/02/2015
Messages: 515
atomose, je pense aussi que la forêt sera plus rapide. (nos courriers se croisent, quel trafic sur LBF ;)
____________________
Just BASIC v2.0 :
  • utilisation courante avec GNU/Linux Mageia6 + Wine (Pas trouvé d'incohérences ou de bug de compilation à ce jour)
  • utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc

   
Le 13/07/2019 à 21h24

Modérateur

Groupe: Modérateur

Inscrit le: 09/02/2015
Messages: 515
Ayé ! J'ai obtenu ce petit bout de programme.

Il ne prend en compte que les 6 premiers MoveE, mais on peut très probablement les étendre à la totalité des 100, il faut juste s'assurer que le nombre de coordonnées des sprites soit le nombre de MoveE*2, et le programme devrait faire le reste. (pas testé au delà des 6, cependant...)

J'ai supposé que MoveE1 à MoveE100 avait des valeurs positives quelconques ou zéro. Il y a deux sprites par MoveE, asservis chacun à un état =0 ou >0 de Move(). Les sprites partagent les mêmes coordonnées. C'est seulement lorsque MoveE=0 qu'on ajoute un décalage au sprite, ses coordonnées propres ne changent pas. Assez de charabia, le code :
Code VB :
 
dim MoveE(100)
 
'on choisit les valeurs pour le simili MoveE+n° d'ordre
numtest=2
select case numtest
    case 1 : test$="0 56 22 0 1 69" 'équivalent de MoveE1 à MoveE6
    case 2 : test$="1 0 28 1 65 80"
    case 3 : test$="0 1 45 3 5 0"
end select
print "chaine retenue : ";test$
 
'à l'intérieur de la chaîne, on compte le nombre de séparateurs de données
sep=0
for a=1 to len(test$)
    if mid$(test$,a,1)=" " then sep=sep+1
next
 
'auquel on ajoute 1 pour avoir le nombre de données
nb=sep+1
 
'et on remplit MoveE() avec ces données
for a=0 to nb-1
    MoveE(a)=val(word$(test$,a))
next
 
'chaque élément de Move() est relié à un deux sprites ayant mêmes coordonnées
'un sprite qui s'affiche lorsque l'élément de move vaut 0, un autre qui s'affiche losque lélément est > 0
'il faut autant de sprites que d'éléments de MoveE()
possprite$="20 40 20 60 89 24 557 63 212 489 652 321"
dim sprxy(nb*2,2)
for a=0 to nb-1
    sprxy(a,0)=val(word$(possprite$,a*2+1))
    sprxy(a,1)=val(word$(possprite$,a*2+2))
    print "MoveE(";a;"), équivalent à MoveE";a;" original, coordonnées sprite x=";sprxy(a,0);", y=";sprxy(a,1)
next
 
'pour chacune des données de MoveE(), on regarde quel traitement s'applique
for a=0 to nb-1
    print
 
    'numéro du sprite : 1 pour move0, 11 pour move1,  109 pour move 10
    if a=0 then nbsprite=1
    if a>0 and a<10 then nbsprite=a+10
    if a>9 then nbsprite=a+100
 
    'juste pour ne pas répéter 36 fois la meme instruction...
    nsp$=str$(nbsprite)
    nomE$="E"+nsp$
    nomD$="ED"+nsp$
    spx=sprxy(a,0)
    spy=sprxy(a,1)
 
    if MoveE(a)>0 then
        print "donnée n°";a;" vaut ";MoveE(a);" et supérieure à zéro : traitement 1"
 
        'chaine 1 : nom et position du sprite
        'E+numéro si supérieur à 0, ED+numéro si égal 0
         chaine1$="spritexy ";nomE$;" ";spx;" ";spy
         print "chaine1 : ";chaine1$
 
         'chaine 2 : sprite visible
         chaine2$="SpriteVisible ";nomE$;" on"
         print "chaine2 : ";chaine2$
 
         'chaine 3 : cycle sprite
         chaine3$="cyclesprite ";nomE$;" 1"
         print "chaine3 : ";chaine3$
 
         'chaine 4 : on éteint le sprite opposé
         chaine4$="spritevisible ";nomD$;" off"
         print "chaine4 : ";chaine4$
 
         'chaine 5 : spritetofront="E1"
         chaine5$="spritetofront ";nomE$;" "
         print "chaine5 : ";chaine5$
    end if
 
    if MoveE(a)=0 then
        print "donnée n°";a;" vaut ";MoveE(a);" et est égale à zéro : traitement 2"
 
        'chaine 1 : nom et position du sprite
        'E+numéro si supérieur à 0, ED+numéro si égal 0
         chaine1$="spritexy ";nomD$;" ";spx;" ";spy+10
         print "chaine1 : ";chaine1$
 
         'chaine 2 : sprite visible
         chaine2$="SpriteVisible ";nomD$;" on"
         print "chaine2 : ";chaine2$
 
         'chaine 4 : on éteint le sprite opposé
         chaine4$="spritevisible ";nomE$;" off"
         print "chaine4 : ";chaine4$
    end if
 
   next
 
end
 
'source d'inspiration : atomose
if MoveE1 > 0 then #main.map,"spritexy E1 ";E1x;" ";E1y : #main.map,"SpriteVisible E1 on" : #main.map, "cyclesprite E1 1" : #main.map,"SpriteVisible ED1 off" : #main.map "spritetofront E1"
    if MoveE1 = 0 then #main.map,"spritexy ED1 ";E1x;" ";E1y+10 : #main.map,"SpriteVisible ED1 on" : #main.map,"SpriteVisible E1 off"
    if MoveE2 > 0 then #main.map,"spritexy E11 ";E11x;" ";E11y : #main.map,"SpriteVisible E11 on" : #main.map, "cyclesprite E11 1" : #main.map,"SpriteVisible ED11 off" : #main.map "spritetofront E11"
    if MoveE2 = 0 then #main.map,"spritexy ED11 ";E11x;" ";E11y+10 : #main.map,"SpriteVisible ED11 on" : #main.map,"SpriteVisible E11 off"
    if MoveE3 > 0 then #main.map,"spritexy E12 ";E12x;" ";E12y : #main.map,"SpriteVisible E12 on" : #main.map, "cyclesprite E12 1" : #main.map,"SpriteVisible ED12 off" : #main.map "spritetofront E12"
    if MoveE3 = 0 then #main.map,"spritexy ED12 ";E12x;" ";E12y+10 : #main.map,"SpriteVisible ED12 on" : #main.map,"SpriteVisible E12 off"
 
 
____________________
Just BASIC v2.0 :
  • utilisation courante avec GNU/Linux Mageia6 + Wine (Pas trouvé d'incohérences ou de bug de compilation à ce jour)
  • utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc

   
Le 13/07/2019 à 23h27

Modérateur

Groupe: Modérateur

Inscrit le: 30/03/2011
Messages: 341
Merci chritophe :)
si tu es curieux de voir le code en entier pour mieux le comprendre et voir l'implication des if ou des boucles, je te renvoi a la partie "jeux" du forum. Le code en question est sur "castle defense" avec la gestion de 102 unités en même temps sur l'écran (mon record pour l'instant XD). je vais voir ce que je peux faire avec votre aide. Pour la mise en table j'ai jamais fait donc je sais pas de quoi on parle XD.
____________________
Yo !

MSN Web    
Le 14/07/2019 à 09h52

Modérateur

Groupe: Modérateur

Inscrit le: 09/02/2015
Messages: 515
Toujours curieux, j'irai y faire un tour, 'tomose ;)

Pour revenir à nos solutions, sauf grossière erreur de raisonnement de ma part, la forêt d'IFs est bien plus rapide. On s'y attendait un peu, vu que pour la foret il y a moins de manipulations, mais je ne m'attendais pas à un tel écart.

Il y a sûrement d'autres paramètres qui impactent la vitesse d'exécution, il faut voir ce comparatif comme une mesure "à la louche"

Dans le programme de test ci-dessous, il y a deux blocs d'instructions : le premier recours aux tables et aux boucles, le second analyse if par if toutes les variables MoveE; Chaque bloc est exécuté 1000 fois ce qui permet d'avoir des intervalles de temps mesurables

J'ai supprimé tous les prints dans le bloc à chronométrer, et dans le bloc des ifs, j'ai changé #main.map par chainex$, x allant de 1 à 5

Code VB :
 
dim MoveE(100)
 
'on choisit les valeurs pour le simili MoveE+n° d'ordre
numtest=2
select case numtest
    case 1 : test$="0 56 22 0 1 69" 'équivalent de MoveE1 à MoveE6
    case 2 : test$="1 0 28 1 65 80"
    case 3 : test$="0 1 45 3 5 0"
end select
print "chaine retenue : ";test$
 
'à l'intérieur de la chaîne, on compte le nombre de séparateurs de données
sep=0
for a=1 to len(test$)
    if mid$(test$,a,1)=" " then sep=sep+1
next
 
'auquel on ajoute 1 pour avoir le nombre de données
nb=sep+1
 
'et on remplit MoveE() avec ces données
for a=0 to nb-1
    MoveE(a)=val(word$(test$,a))
next
 
'chaque élément de Move() est relié à un deux sprites ayant mêmes coordonnées
'un sprite qui s'affiche lorsque l'élément de move vaut 0, un autre qui s'affiche losque lélément est > 0
'il faut autant de sprites que d'éléments de MoveE()
possprite$="20 40 20 60 89 24 557 63 212 489 652 321"
dim sprxy(nb*2,2)
for a=0 to nb-1
    sprxy(a,0)=val(word$(possprite$,a*2+1))
    sprxy(a,1)=val(word$(possprite$,a*2+2))
    print "MoveE(";a;"), équivalent à MoveE";a;" original, coordonnées sprite x=";sprxy(a,0);", y=";sprxy(a,1)
next
 
'***** début chronométrage 1******
tours=1000
topdepart1=time$("ms")
for boucles=1 to tours
    'pour chacune des données de MoveE(), on regarde quel traitement s'applique
    for a=0 to nb-1
 
        'numéro du sprite : 1 pour move0, 11 pour move1,  109 pour move 10
        if a=0 then nbsprite=1
        if a>0 and a<10 then nbsprite=a+10
        if a>9 then nbsprite=a+100
 
        'juste pour ne pas répéter 36 fois la meme instruction...
        nsp$=str$(nbsprite)
        nomE$="E"+nsp$
        nomD$="ED"+nsp$
        spx=sprxy(a,0)
        spy=sprxy(a,1)
 
        if MoveE(a)>0 then chaine1$="spritexy ";nomE$;" ";spx;" ";spy : chaine2$="SpriteVisible ";nomE$;" on" : chaine3$="cyclesprite ";nomE$;" 1" : chaine4$="spritevisible ";nomD$;" off" : chaine5$="spritetofront ";nomE$;" "
        if MoveE(a)=0 then chaine1$="spritexy ";nomD$;" ";spx;" ";spy+10 : chaine2$="SpriteVisible ";nomD$;" on" : chaine4$="spritevisible ";nomE$;" off"
 
    next
 
next boucles
 
'***** fin chronométrage 1 *****
topfin1=time$("ms")
 
'****** préparation prochain bloc à tester
MoveE1=MoveE(0)
MoveE2=MoveE(1)
MoveE3=MoveE(2)
MoveE4=MoveE(3)
MoveE5=MoveE(4)
MoveE6=MoveE(5)
 
'******* début chronométrage 2
topdepart2=time$("ms")
for boucles=1 to tours
 
    if MoveE1 > 0 then chaine1$="spritexy E1 ";E1x;" ";E1y : chaine2$="SpriteVisible E1 on" : chaine3$="cyclesprite E1 1" : chaine4$="SpriteVisible ED1 off" : chaine5$="spritetofront E1"
    if MoveE1 = 0 then chaine1$="spritexy ED1 ";E1x;" ";E1y+10 : chaine2$="SpriteVisible ED1 on" : chaine3$="SpriteVisible E1 off"
    if MoveE2 > 0 then chaine1$="spritexy E11 ";E11x;" ";E11y : chaine2$="SpriteVisible E11 on" : chaine3$= "cyclesprite E11 1" : chaine4$="SpriteVisible ED11 off" : chaine5$="spritetofront E11"
    if MoveE2 = 0 then chaine1$="spritexy ED11 ";E11x;" ";E11y+10 : chaine2$="SpriteVisible ED11 on" : chaine3$="SpriteVisible E11 off"
    if MoveE3 > 0 then chaine1$="spritexy E12 ";E12x;" ";E12y : chaine2$="SpriteVisible E12 on" : chaine3$= "cyclesprite E12 1" : chaine4$="SpriteVisible ED12 off" : chaine5$="spritetofront E12"
    if MoveE3 = 0 then chaine1$="spritexy ED12 ";E12x;" ";E12y+10 : chaine2$="SpriteVisible ED12 on" : chaine3$="SpriteVisible E12 off"
    if MoveE4 > 0 then chaine1$="spritexy E13 ";E13x;" ";E13y : chaine2$="SpriteVisible E13 on" : chaine3$= "cyclesprite E13 1" : chaine4$="SpriteVisible ED13 off" : chaine5$="spritetofront E13"
    if MoveE4 = 0 then chaine1$="spritexy ED13 ";E13x;" ";E13y+10 : chaine2$="SpriteVisible ED13 on" : chaine3$="SpriteVisible E13 off"
    if MoveE5 > 0 then chaine1$="spritexy E14 ";E14x;" ";E14y : chaine2$="SpriteVisible E14 on" : chaine3$= "cyclesprite E14 1" : chaine4$="SpriteVisible ED14 off" : chaine5$="spritetofront E14"
    if MoveE5 = 0 then chaine1$="spritexy ED14 ";E14x;" ";E14y+10 : chaine2$="SpriteVisible ED14 on" : chaine3$="SpriteVisible E14 off"
    if MoveE6 > 0 then chaine1$="spritexy E15 ";E15x;" ";E15y : chaine2$="SpriteVisible E15 on" :  chaine3$= "cyclesprite E15 1" : chaine4$="SpriteVisible ED15 off" : chaine5$="spritetofront E15"
    if MoveE6 = 0 then chaine1$="spritexy ED15 ";E15x;" ";E15y+10 : chaine2$="SpriteVisible ED15 on" : chaine3$="SpriteVisible E15 off"
 
next boucles
 
'***** fin chronométrage 2 *****

'***** résultats des chronométrages *******
topfin2=time$("ms")
print
print "pour ";tours;" fois les blocs d'instructions, l'ordi a mis : "
print "  ";topfin1-topdepart1;" ms pour la solution à base de boucles"
print "  ";topfin2-topdepart2;" ms pour la solution à base d'ifs"
 
end
 
____________________
Just BASIC v2.0 :
  • utilisation courante avec GNU/Linux Mageia6 + Wine (Pas trouvé d'incohérences ou de bug de compilation à ce jour)
  • utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc

   
Le 14/07/2019 à 15h41

Modérateur

Groupe: Modérateur

Inscrit le: 30/03/2011
Messages: 341
Oui c'est quand même énorme la différence de performance entre la foret de IF et la boucle ... on est sur un facteur 5 quand même ! Pour un jeu comme le mien qui gère beaucoup d'unités affiché c'est quand même très embêtant ^^.
Je vais donc rester sur la foret d'IF. Je pense avoir trouver une solution pour optimiser les if en fesant une imbrication. Sur les 400 if d'un bloc, 1 IF regroupe 3 autres if. Si le IF de base n'est pas bon, ca permet de "zapper" 3 IF non utilisé. Donc si 1 seul IF est utilisé sur les 100 premier, on économise normalement 297 IF qui ne seront pas pris en compte par l'ordinateur ^^. Je pense que l'imbrication peut être un gain de performance même si c'est largement perfectionnable.
Je vais garder vos exemples sous la mains pour me perfectionner dans ces autres domaines :) !
merci a vous
____________________
Yo !

MSN Web    
Le 15/07/2019 à 08h24

Modérateur

Groupe: Modérateur

Inscrit le: 09/02/2015
Messages: 515
En fait, cette lenteur est logique, car le bloc d'instruction ci-dessous est aussi répété 1000 fois, et pendant ce temps là, l'IF n'est pas évalué, et on comprend mieux le ratio :
Code VB :
 
    'numéro du sprite : 1 pour move0, 11 pour move1,  109 pour move 10
    if a=0 then nbsprite=1
    if a>0 and a<10 then nbsprite=a+10
    if a>9 then nbsprite=a+100
 
    'juste pour ne pas répéter 36 fois la meme instruction...
    nsp$=str$(nbsprite)
    nomE$="E"+nsp$
    nomD$="ED"+nsp$
    spx=sprxy(a,0)
    spy=sprxy(a,1)
 


Bonne continuation, 'tomose...
____________________
Just BASIC v2.0 :
  • utilisation courante avec GNU/Linux Mageia6 + Wine (Pas trouvé d'incohérences ou de bug de compilation à ce jour)
  • utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc

   
Général » Les variables dans les boucles Besoin d'aide XD  

 |  |

1 Utilisateur en ligne : 0 Administrateur, 0 Modérateur, 0 Membre et 1 Visiteur
Utilisateur en ligne : Aucun membre connecté
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie