KIBUR. Jeu de permutation pour CASIO FX-602P

 

Casio FX-602P

KIBUR. Jeu de permutation inspiré du Rubik's Cube

D'après L'Ordinateur de Poche n°3 .
Version HP41 par Robert Pulluard

Voir la régle du jeu


(Tiens, la version dans la marge pour 502P ;-)

Il s'agit d'un casse tête vraiment intéressant qui n'est pas sans rapport avec un célébre cube mais bien plus simple ....

A noter que dans la variante proposée, on ne joue pas avec les lettres de A à J mais avec les chiffres de 0 à 9; Mais le principe du jeu est strictement similaire. Les temps de calcul de la 602P sont quasi instantanés. Ce casse-tête est fort intéressant... A vous de relever le défi !

P0 : Démarrer une partie avec un mélange aléatoire des chiffres
P1 : Essayer de résoudre une combinaison spécifique. Ex : 9876543210 [P1]
P2 :  Permet de rejouer la même combinaison (pour résoudre en moins de coup par exemple...)

*******************
[P0] 79 pas { Kibur -> Mélange aléatoire à partir de "0123456789"}

"Kibur" AC GSBP7 1 +/- Min14 { Le niveau correspond au nombre }
"Niveau?" HLT Min12 1 M-12 { de permutations aléatoires }

LBL1
MR12 / 2 = FRAC "->" x=0 "<-" { Petite animation pendant }
RAN# x 9 + 1 = GSBP8 { le mélange de Kibur }
1 M-12 MR12 x>=0 GOTO1
9 Min10 0 Min19 "->"

LBL2

IND MR10 x ( 9 - MR10 ) 10^x = M+19 { Génére en MR19 un nombre égal à la }
1 M-10 MR10 ";." { concaténation des chiffres de MR00 à MR09 }
x>=0 GOTO2

GSBP5 { C'est parti !}

[P1] xx pas { Kibin -> Permet d'entrer une combinaison spécifique}

"Kibin?" HLT Min19
GSBP6

[P2] xx Pas { Kibis -> Permet de rejouer (bis) la même combinaison }
"Kibis" PAUSE Mr19
GSBP6

[P5] 70 pas { Le joueur joue ... }

LBL0
1 M+14 GSBP9 ";"
{ Affiche la combinaison actuelle}
10 Min00

LBL5
1 M-10 MR10 x=0 GOTO6 { -> C'est gagné !}
IND MR10 - MR10 =
x=0 GOTO5 { Chiffre en MR10 bien placé, au suivant }

1 +/- MinF { Position non gagnante, on continue }

LBL4
";" HLT x=F GOTO4 ";"
GSBP8
GOTO0

LBL6
{ C'est gagné !}
2 Min10

LBL7
GSBP9
1 M-10 MR10 x>=0 GOTO7
"En AR14 coup"
2 M-14 MR14 x>=0 ";s"
";"

[P6] xx pas {Dépose chaque chiffre de MR18 dans les mémoires 00 à 09}

"->"
Min18 1 +/- Min14 9 Min10

LBL0
MR18 / 10 = - FRAC Min17 = Min18
MR17 x 10 = IND Min10 1 M-10 ";."
MR10 x>=0 GOTO0
GSBP5

[P7] 11 pas { Génére la combinaion initiale -> "0123456789"}

9 Min10

LBL0
MR10 IND Min10 { 0 Min00 1 Min01 2 Min02 ... 9 Min09}
1 M-10
MR10 >=0 GOTO0

[P8] 30 pas { Effectue la combinaison, le coup joué est dans le registre x}

Min10 Min11
MR00 IND X<->M10 Min00
1 M-10 M+11
MR10 x>=0 GOTO1
{ Cas particulier quand on joue en 0 }
9 Min10

LBL1
9 - MR11 = x>=0 GOTO2 { Cas particulier quand on joue en 9}
0 Min11

LBL2
IND MR10 IND X<->M11 IND Min10

[P9] 26 pas { Affiche la combinaison actuelle}

"->¤¤¤¤¤¤¤¤¤¤" { 10 carrés noirs -> 'INV 1'}
"->AR00 AR01 AR02 AR03 AR04 AR05 AR06 AR07 AR08 AR09"