Le jeu de retournement
GW-Basic, utilisé par PC-Basic
Programme avec Texte Seulement
PC-BASIC
Un tableau aléatoire de zéros et de uns apparaît dans une matrice rectangulaire à l'écran. Chaque "retournement" d'une ligne change les zéros en uns et les uns en zéros. De même pour chaque retournement d'une colonne. Votre mission : en un minimum de retournements, transformer toute la matrice en zéros ou en uns.
Un jeu entièrement basé sur du texte, FLIP.BAS utilise des lettres sur le clavier comme raccourcis pour exécuter un retournement de ligne ou de colonne.
Sur l'écran se trouve également un compteur affichant le nombre de flips effectués jusqu'à présent. À tout moment, la matrice peut être réinitialisée en appuyant sur N et vous pouvez quitter le jeu en appuyant sur la touche ÉCHAP.
Une instruction RANDOMIZE TIMER s'assure que la matrice du plateau de jeu est aussi aléatoire que possible au début, tandis que les lignes 12 à 20 définissent les valeurs aléatoires initiales (de zéro ou un) pour chaque cellule de la matrice.
Après avoir imprimé les instructions et le plateau de jeu à l'écran, INKEY$ (comme d'habitude) gère toutes les entrées au clavier sans avoir besoin d'une instruction INPUT. Enfin, les lignes 800 à 810 s'occupent du "retournement" ainsi que de la vérification pour voir si vous avez gagné la partie.
Bien que le jeu soit complet, il n'est pas très intéressant visuellement. Au lieu de limiter le plateau de jeu à une matrice textuelle, des fioritures graphiques pourraient aider à améliorer l'expérience.
De plus, l'entrée au clavier est guindée ; mieux vaut plutôt jouer au "Flip Game" avec un joystick ou une souris, bien que vous deviez vous aventurer dans des appels en langage d'assemblage pour le faire. Et pour vraiment augmenter la pression, pourquoi ne pas insérer une limite de temps ou une limite de retournement (ou les deux) ?
10 KEY OFF:SCREEN 9:COLOR
15,0:COUNT=1
11 RANDOMIZE TIMER: 'Randomise les lettres A-I
12
A=INT(RND(1)*2)
13 B=INT(RND(1)*2)
14 C=INT(RND(1)*2)
15
D=INT(RND(1)*2)
16 E=INT(RND(1)*2)
17 F=INT(RND(1)*2)
18
G=INT(RND(1)*2)
19 H=INT(RMD(1)*2)
20 I=INT(RND(1)*2)
25 'Programme
Principale
30 CLS
32 PRINT "--Le jeu de retournement--"
33 PRINT:PRINT
"Obtenir que tous les nombres soient zéro ou un!!"
34 PRINT "Tapez la lettre
à côté de la ligne ou de la colonne pour retourner les zéros et les uns"
35
PRINT "Appuyez sur N pour un nouveau jeu, ou ESC pour quitter"
36
PRINT:PRINT:PRINT:PRINT:PRINT "Vous êtes au mouvement #";COUNT:PRINT
40 PRINT
" Q ";A;" ";B;" ";C
45 PRINT:PRINT
50 PRINT" A ";D;" ";E;" ";F
55
PRINT:PRINT
60 PRINT" Z ";G;" ";H;" ";I
61 PRINT
65 PRINT" X C V"
70
I$=INKEY$
71 IF I$="N" THEN GOTO 10
72 IF I$=CHR$(27) THEN CLS:END
80
IF I$="Q" THEN GOTO 200
81 IF I$="A" THEN GOTO 210
82 IF I$="Z" THEN GOTO
220
83 IF I$="X" THEN GOTO 230
84 IF I$="C" THEN GOTO 240
85 IF I$="V"
THEN GOTO 250
100 GOTO 70
200 A=A+1:B=B+1:C=C+1:COUNT=COUNT+1:GOTO 800
210 D=D+1:E=E+1:F=F+1:COUNT=COUNT+1:GOTO 800
220
G=G+1:H=H+1:I=I+1:COUNT=COUNT+1:GOTO 800
230
A=A+1:D=D+1:G=G+1:COUNT=COUNT+1:GOTO 800
240
B=B+1:E=E+1:H=H+1:COUNT=COUNT+1:GOTO 800
250
F=F+1:C=C+1:I=I+1:COUNT=COUNT+1:GOTO 800
800 IF A>1 THEN A=0
801 IF B>1
THEN B=0
802 IF C>1 THEN C=0
803 IF D>1 THEN D=0
804 IF E>1 THEN E=0
805 IF F>1 THEN F=0
806 IF G>1 THEN G=0
807 IF H>1 THEN H=0
808 IF I>1
THEN I=0
809 IF (A+B+C+D+E+F+G+H+I)=0 THEN GOTO 900
810 IF (A+B+C+D+E+F+G+H+I)=9
THEN GOTO 900
820 GOTO 25
900 'Win!!
901 CLS
902
PRINT:PRINT:PRINT:PRINT:PRINT
903 PRINT "Vous avez gagnez!!!"
904 PRINT"Et
ça n'a pris que";COUNT;" déplacements!"
905 END