@ 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 : 614 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 ## J : numéro du joueur (1 ou 4) ## K : nombre de coups joués ## L[1] (M) : colonne sélectionnée (0 à 2) ## L[2] (N) : ligne sélectionnée (0 à 2) ## O[0] à O[8] (O à W) : tableau linéaire décrivant le jeu ## U V W ## R S T ## O P Q ## ## Initialisation Range 3,97,0,19,81,0:Mcl:4->Z Lbl 0 ## Rappel : X et Y contiennent les coordonnées du point après un Plot Plot 30,14Z+15:Plot 70,Y:Line Plot Y,29:Plot X,71:Line Dsz Z:Goto 0 ## Coup de départ de la calculatrice : 1,1 ## La variable N sert à la fois pour la réponse à la question et pour indiquer le numéro de ligne du premier cout de la calculatrice Isz N:1 "COMMENCER(O;N)"?->L 0->O:1:L<>N=>Goto 1 1:Goto 3 Lbl 1:1->J:2->I ## Choix de l'emplacement Plot @ Lbl 2 ## La coordonnée de l'itération précédente (Y) est stockée dans N Ans->N ## Calcul d'une coordonnée Int (14^-1(W[I]-29 Ans<0=>Goto 1 Ans>2=>Goto 1 Dsz I:Goto 2 ## La case est vide ? O[3Ans+N<>0=>Goto 1 Lbl 3 ## Coup joué : ligne Ans, colonne N Ans->M J->O[3M+N]:9->Z Lbl 4 Plot 14M+32,14N+31+Z:Plot X+8,Y:J=1=>Line:Z=9=>Line Dsz Z:Goto 4:Line J^3 O[N]R[N]U[N=Ans=>J->G O[3M]P[3M]Q[3M]=Ans=>J->G QSU=Ans=>J->G OSW=Ans=>J->G G<>0=>Goto 9 Isz K:K=9=>Goto 9 J<>1=>Goto 1 4->I~J:0->E:8 " ":" ":" ":" ":" ":" ":" ":"JE REFLECHIS..." Lbl 6 O+S+W=Ans=>Isz E Q+S+U=Ans=>2->E 3->Z Lbl 7 E<>0=>Goto 8 L[3Z]+M[3Z]+N[3Z=Ans=>3->E N[Z]+Q[Z]+T[Z=Ans=>4->E Dsz Z:Goto 7 15.5I-2.5I²-20 Dsz I:E=0=>Goto 6 Lbl 8 ## Tirage de la case où la calculatrice joue Int 3Ran# Int 3Ran#->N ## Modification du tirage en fonction du contexte E=1=>N ## Opportunité sur la diagonale OSW E=2=>2-N ## Opportunité sur la diagonale QSU E=3=>Z ## Opportunité sur la ligne n°Z E=4=>Z->N ## Opportunité sur la colonne n°Z ## Dans le cas où la case sélectionnée est occupée, on tire à nouveau O[3Ans+N<>0=>Goto 8 Goto 3 Lbl 9 G=1=>"VOUS GAGNEZ !!"@ G=4=>"JE VOUS BAT !!"@ G=0=>" EGALITE..."@ Plot 0,0 %%End