Voici un petit jeu de memory que j'ai fait dernièrement.
Pour ceux qui ne connaissent pas le memory, le but est de trouver deux cartes similaires, en piochant les cartes deux par deux.
Dans cette version sur calculatrice, on choisi les cartes avec un curseur et on appuie sur [Enter] ou [2nd] pour sélectionner la carte. Une fois sélectionné deux cartes, si elles sont différentes, appuyez sur [enter] pour les remettre face cachées et recommencer avec d'autres cartes, et si elles sont identiques, continuez à chercher des paires.
Le mode un joueur permet de jouer en essayant de faire le moins de coups possibles, le score étant indiqué pendant et en fin de partie.
En mode deux joueur, le J1 commence à jouer, et, si les cartes sont différentes, il passe la calculatrice à l'autre joueur, si elles sont identiques, le joueur gagnera un point et continuera de jouer.
Le mode un joueur pèse 645 octets, le mode deux joueur pèse 772 octets.
Le "launcher" qui permet de choisir entre les deux modes pèse 108 octets.
Voici tous les programmes en .83p
Et les voici en texte :
Mode un joueur :
Code |
ClrHome
{5,4}->dim([A]
Fill(0,[A]
0->X:0->Y
Output(4,1,"CHARGE LA GRILLE
Output(5,7,"...
For([Téta],0,19
([Téta]+1)*5->N
Output(6,5,N
Output(6,8,"/100
Lbl 0
randInt(1,4->X
randInt(1,5->Y
If [A](Y,X)[Différent de]0:Goto 0
If [Téta]≤9:[Téta]->[A](Y,X)
If [Téta]>9:[Téta]-10->[A](Y,X
End
ClrHome
For([Téta],1,5
For(I,1,4
Output([Téta],2I,"L
End:End
2->X:3->Y:0->C
0->M:0->T:0->S
0->E
Lbl 1
Output(8,1,"COUPS :
Output(8,9,E
Output(Y,2X-1,">
0->K
While K=0
getKey->K
End
If K=105 or K=21:Goto 2
Output(Y,2X-1,"
If K=24:X-1->X
If K=25:Y-1->Y
If K=26:X+1->X
If K=34:Y+1->Y
If X=0:4->X
If X=5:1->X
If Y=0:5->Y
If Y=6:1->Y
Goto 1
Lbl 2
If M=1 and X=S and T=Y:Goto 1
If [A](Y,X)=(-)1:Goto 1
Output(Y,2X,[A](Y,X
If M=0:Then
X->S:Y->T:1->M
Goto 1:End
If [A](Y,X)[Différent de][A](T,S):Then
E+1->E
0->K
Pause
Output(T,2S,"L
Output(Y,2X,"L
Else:C+1->C
(-)1->[A](Y,X
(-)1->[A](T,S
End
0->M
If C=10:Goto G
Goto 1
Lbl G
ClrHome
Output(2,1,"BRAVO ! TU A FINI LE MEMORY EN COUPS
Output(4,11,E
Pause :ClrHome
|
Le mode deux joueur :
Code |
ClrHome
{5,4}->dim([A]
Fill(0,[A]
0->X:0->Y
Output(4,1,"CHARGE LA GRILLE
Output(5,7,"...
For([Téta],0,19
([Téta]+1)*5->N
Output(6,5,N
Output(6,8,"/100
Lbl 0
randInt(1,4->X
randInt(1,5->Y
If [A](Y,X)[Différent de]0:Goto 0
If [Téta]≤9:[Téta]->[A](Y,X)
If [Téta]>9:[Téta]-10->[A](Y,X
End
ClrHome
For([Téta],1,5
For(I,1,4
Output([Téta],2I,"L
End:End
2->X:3->Y
0->B:0->C:1->J
0->M:0->T:0->S
0->E:0->F
Output(7,1,"POINTS J1 :
Output(8,1,"POINTS J2 :
Output(2,12,"TOUR
Output(3,14,"DE
Lbl 1
If J=1:Output(4,14,"J1
If J=(-)1:Output(4,14,"J2
Output(7,13,E
Output(8,13,F
Output(Y,2X-1,">
0->K
Pause
If K=105 or K=21:Goto 2
Output(Y,2X-1,"
If K=24:X-1->X
If K=25:Y-1->Y
If K=26:X+1->X
If K=34:Y+1->Y
If X=0:4->X
If X=5:1->X
If Y=0:5->Y
If Y=6:1->Y
Goto 1
Lbl 2
If M=1 and X=S and T=Y:Goto 1
If [A](Y,X)=(-)1:Goto 1
Output(Y,2X,[A](Y,X
If M=0:Then
X->S:Y->T:1->M
Goto 1:End
If [A](Y,X)[Différent de][A](T,S):Then
Pause
Output(T,2S,"L
Output(Y,2X,"L
(-)J->J
Else
C+1->C
If J=1:E+1->E
If J=(-)1:F+1->F
(-)1->[A](Y,X
(-)1->[A](T,S
End
0->M
If C=10:Goto G
Goto 1
Lbl G
ClrHome
If E=F:Then:Output(2,1,"EX-AEQUO
Else
Output(3,1,"LE JOUEUR GAGNE LA PARTIE
If E>F:Output(3,11,1
If F>E:Output(3,11,2
Pause :ClrHome
|
Et le launcher :
Code | ClrHome
Lbl 0
Menu("MEMORY","1 JOUEUR",1,"2 JOUEUR",2,"QUITTER",3
Lbl 1
prgmMEMORY
Goto 0
Lbl 2
prgmMEMORY2J
Goto 0
Lbl 3
ClrHome
Output(1,1,"
|
|