subscribe: Posts | Comments

the famous MB game for 2 players.

0 comments

@ instruction triangle noir.
-> flèche d’affectation
=> flèche "alors"
>= supérieur ou égal
<= inférieur ou égal
<> différent
^-1 fonction inverse
² fonction carré
^ fonction puissance (x et petit y)

Tous les caractères à partir de ## sont un commentaire

%%Start
## Copyright Olivier Mengué
## 1990-1999
##
## Taille : 539 octets
##
## Le code est très optimisé : les [ et ( ne sont fermés que lorsque c’est obligatoire
##
## Utilisation des variables :
## Ans : numéro de colonne où le joueur place son pion (1 à 7)
## G : numéro du joueur gagnant
## I : numéro du joueur à la puissance 4 (c’est le cas de le dire !)
## J : numéro du joueur (1 ou 2)
## K : nombre de coups joués
## L[1] à L[7] (M à S) : nombre de pions placés dans la colonne
## X et Y : révervés pour la saisie de la colonne avec Plot
## Z[0] à Z[41] : tableau linéaire de 42 cases (7 colonnes de 6 lignes)
##
## Initialisation (le 4 à la fin de la ligne initialise Ans)
Range 3,97,0,-9,53,0:Defm 41:Mcl:Isz J:8->A:4
## Dessin de la grille
Lbl 0
Plot 8A+14,50:Plot X,4:Line
Plot 22,8A-5:Plot 78,Y:Line
Dsz A:Goto 0
## Saisie de la colonne par le joueur
Lbl 1
Plot 8Ans+18,51@
## Calcul du numéro de colonne
Int (8^-1(X-14
## Vérification de la saisie
Ans<1=>Goto 1
Ans>7=>Goto 1
L[Ans>=6=>Goto 1
## S[6Ans+L[Ans]] est équivalent à Z[6Ans+L[Ans]-7]
Isz L[Ans]:J->S[6Ans+L[Ans]]
" ":" ":" ":" ":" ":" ":" ":" "
## Dessin du pion sur la grille, ligne par ligne
5->A
Lbl 2
Plot 8Ans+16,A-4+8L[Ans:Plot X+4,Y:A>J²=>Line
Dsz A:Goto 2
Line
## Comptage du coup
Isz K:K<=6=>Goto 5
## Vérification du gagnant
## Utilisation des variables :
## A : colonne lors du parcours du tableau pour la vérification du gagnant
## B : ligne lors du parcours du tableau pour la vérification du gagnant
## D : indice de la case où le pion est placé dans le tableau des pions
J^4->I:3+Ans->A:A>7=>7->A
Lbl 3
3+L[Ans->B:B>6=>6->B
Lbl 4:6A+B-7->D
A>=4=>B>=4=>E[D]L[D]S[D]Z[D=I=>J->G
A>=4=>B>=4=>H[D]M[D]R[D]W[D=I=>J->G
## Horizontal (Si c’est la ligne du dernier pion posé)
B=L[Ans=>A>=4=>H[D]N[D]T[D]Z[D=I=>J->G
## Vertical (Si c’est la colonne du dernier pion posé)
A=Ans=>B>=4=>W[D]X[D]Y[D]Z[D=I=>J->G
Dsz B:G=0=>B>=L[Ans=>Goto 4
Dsz A:G=0=>A=>A>=Ans=>Goto 3
Lbl 5
3-J->J
G=0=>K<42=>Goto 1
## Fin. Libération de la mémoire
Defm 0
## Affichage du résultat
G=0=>" EGALITE…"@
G=1=>" LE JOUEUR 1"
G=2=>" LE JOUEUR 2"
G<>0=>" A GAGNE !"@
## Affichage du graphique
Plot 0,0
%%End