@ 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