ISOLA. Jeu tactique contre la CASIO FX-602P
Casio FX-602P ISOLA ![]() La règle d'Isola est très simple. Après avoir déplacé votre pion (comme un roi aux échecs) , vous enfoncez une case de votre choix du tablier de jeu (les cases sont en plastique mou). Le premier qui ne peut plus déplacer son pion (il est isolé autour de cases vides) a perdu la partie. En savoir plus sur l'excellent site Jeuxsoc et lien vers la version Windows de Saîd Koudache: http://jeuxsoc.fr/?principal=/i/isola.php LISTE DES PROGRAMMES ET SP P0 : 602P joue P1 : Joueur joue P2 : Calcul libertés primaires, secondaires et renvoie la valeur du coup P3 : Le coup est-il meilleur que ceux déjà testés? P4 : Programme principal P5 : Teste tous les coups possible. Le meilleur -> MR14 P6 : x.y -> x en MR16 et y en MR17 P7 : Libère case P8 : Enfonce case P9 : Initialisation MEMOIRES UTILISEES MR19 x.y joueur MR18 x.y 602P MR17 y MR16 x MR15 La 602 cmmence MR14 x.y du meilleur coup en cours MR13 Valeur du meilleur coup en cours MR12 Libertés secondaires MR11 Libertés primaires MR10 Surface de jeu . . . MR01 Surface de jeu MR00 index et adressages indirects MR1F A qui le tour ? MRF Test. P4 {Programme principal} GSBP9 { initialisations } LBL0 18 Min00 Mr1F M+00 IND MR00 GSBP6 GSBP2 { renvoi 0 si impossible de jouer } x=0 GOTO9 { fin de partie } Mr1F Min00 IND GSB(0) 1 M-1F Mr1F ABS Min1F { au suivant } GOTO0 LBL9 Mr1F "Je" x=0 "Tu" "; gagne" x=0 ";s" P0 { 602P joue } MR18 GSBP7 { libère la case de l'ancienne position du pion } MR18 GSPP6 GSBP5 { recherche du meilleur coup } MR14 Min18 GSBP8 { bloque la case de la nouvelle position du pion } MR18 - 2.2 = "R-># " { Affiche le déplacement du pion 602P } MR15 x=0 GOTO1 {La 602 commence} MR19 GSBP6 GSBP5 { choix de la case à enfoncer } GOTO2 LBL1 7.5 Min14 RAN# x 2 =INT / 10 = M+14 RAN# x 2 = INT M+14 1 M+15 LBL2 MR14 - 2.2 = ";E->#" { Affiche case enfoncée } HLT P1 { Joueur joue } Code: MR19 GSBP7 { Libère l'ancienne case du roi } "Roi en x.y ?" HLT + 2.2 = Min19 GSBP8 { Bloque la nouvelle case du roi } "Enfonce?" HLT + 2.2 = GSBP8 { Enfonce case } P2 { Calcul libertés primaires -> MR11 et secondaires MR12. Valeur du coup = f(MR11,MR12) } Code: { Fait la somme des 3 et 5 mémoires adjacentes : lignes} IND MR17 Min11 Min12 1 M-17 IND MR17 M+11 M+12 1 M-17 IND MR17 M+12 3 M+17 IND MR17 M+11 M+12 1 M+17 IND MR17 M+12 2 M-17 { Libertés primaires = somme des 3 chiffres : colonnes } MR16 - 2 = 10^x x MR11 = FRAC x MR15 - INT Min11 = x MR15 - INT M+11 = x MR15 = INT M+11 Mr11 x=0 GOTO9 { Libertés secondaire = somme des 5 chiffres} MR16 - 3 = 10^x x MR12 = FRAC x MR15 - INT Min12 = x MR15 - INT M+12 = x MR15 - INT M+12 = x MR15 - INT M+12 = x MR15 = INT M+12 { Formule empirique pour calculer la valeur du coup } MR11 M-12 x 8 + MR12 x MR11 + RAN# = MinF LBL9 P3 { Calcul du meilleur coup } Code: MR16 - 1 = 10^x x IND MR17 = FRAC x MR15 = INT x=0 GOTO9 { si le coup n'est pas jouable } GSBP2 MR13 x>=F GOTO9 MRF Min13 { Ce coup est meilleur que le meilleur mémorisé } MR16 + MR17 / 10 = Min14 LBL9 P5 { Liste des coups possibles et raz valeur meilleur coup } Code: 0 Min13 MinF { raz meilleur coup } { Test des 8 positions autour de la case centrale } 1 M-16 GSBP3 1 M+17 GSBP3 1 M+16 GSBP3 1 M+16 GSBP3 1 M-17 GSBP3 1 M-17 GSBP3 1 M-16 GSBP3 1 M-16 GSBP3 P6 {x.y -> x Min16 y Min17} Code: - INT Min16 = X MR15 = Min17 P7 {libére case} Code: GSBP6 Mr16 +/- 10^x IND M+17 P8 {Enfonce case} Code: GSBP6 Mr16 +/- 10^x IND M-17 P9 { Initialisation} Code: "ISOLA v0.51 " MAC 8 Min00 900 1/x RND8 { 0.0011111111 } { Initialise la surface de jeu avec les bords et cases libres : matrice 8x6 cases + bords } LBL0 IND Min00 DSZ GOTO0 0 Min01 Min02 { positions initiales des rois. MR18 ->602P MR19 -> Joueur } 3.6 Min18 GSBP8 10.5 Min19 GSBP8 "Qui débute?" PAUSE "0->602 1->toi" HLT Min1F Min15 Pour jouer, taper [P4] Cliquer ici pour en savoir plus et version HP97 sur Silicium.org |