:Lbl 1 :ClrHome :For(A,1,8 : Output(A,5,"*" :End :For(A,1,8 : Output(A,12,"*" :End :8→E:1→F :10→G:2→H :9→X :Output(8,X,"^" :Output(F,E,"*" :Output(H,G,"*" :0→S :Repeat ((F=8) and (E=X)) or ((H=8) and (G=X)) : getKey→K : If K≠0 : Then : Output(8,X," " : X+(K=26)-(K=24)→X : If X>11 : 6→X : If X<6 : 11→X : Output(8,X,"^" : End : Output(F,E," " : Output(H,G," " : F+1→F : H+1→H : If F>8 : Then : S+1→S : randInt(1,2)→F : randInt(6,11)→E : End : If H>8 : Then : S+1→S : randInt(1,2)→H : randInt(6,11)→G : End : Output(F,E,"*" : Output(H,G,"*" :End :Output(1,1,S :Pause :Menu("REJOUER ?","OUI",1,"NON",2 :Lbl 2 :ClrHome
Pour ralentir la chute du point, observez les ajouts de code en vert :
:Lbl 1 :ClrHome :For(A,1,8 : Output(A,5,"*" :End :For(A,1,8 : Output(A,12,"*" :End :8→E:1→F :10→G:2→H :9→X :Output(8,X,"^" :Output(F,E,"*" :Output(H,G,"*" :0→S
:0→M //On utilisera une variable de plus
:Repeat ((F=8) and (E=X)) or ((H=8) and (G=X)) : getKey→K : If K≠0 : Then : Output(8,X," " : X+(K=26)-(K=24)→X : If X>11 : 6→X : If X<6 : 11→X : Output(8,X,"^" : End
: M+1→M //M est incrémenté : c'est le compteur qui déterminera la vitesse de la chute des étoiles
: If (M>2) //Si M>2 alors les étoiles tombent d'une case. Avec M>X : plus X est grand plus les étoiles tombent lentement ; plus X est petit plus le point chute rapidement
: Then : 0→M //On remet le compteur à 0
: Output(F,E," " : Output(H,G," " : F+1→F : H+1→H : If F>8 : Then : S+1→S : randInt(1,2)→F : randInt(6,11)→E : End : If H>8 : Then : S+1→S : randInt(1,2)→H : randInt(6,11)→G : End : Output(F,E,"*" : Output(H,G,"*"
: End //Fin de la condition "Si M>2"
:End :Output(1,1,S :Pause :Menu("REJOUER ?","OUI",1,"NON",2 :Lbl 2 :ClrHome
Petite précision : si vous n'avez pas la commande "randint("
Il faut combiner 2 commandes : "int(" ([math], 2ème onglet, 5) et rand ([math], 2ème onglet, 1), de cette manière : int(randX). Ca renvoie alors un nombre entier aléatoire entre 0 et (X-1).
Donc pour avoir un nombre aléatoire entre 6 et 11, il faut écrire : int(rand6) + 6.
Et de même pour un nombre entre 1 et 2 : int(rand2) + 1.