A m'entrainer à RUBIKA

Les derniers trucs auxquels vous avez joué, les derniers ordinateurs que vous avez bidouillés.

Modérateur : Politburo

Répondre
Avatar du membre
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3405
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

A m'entrainer à RUBIKA

Message par C.Ret »

Une version pour HP-41C de ce jeu a été publié par le club PPC-T d'utilisateurs d'ordinateur de poche Hewlett-packard Club d'utilisateurs du langage Forth de TOULOUSE (77 rue du Cagire - F-31110 )dans le bimestriel REVUE MICRO La revue de l'informatique portable - N°10 (janvier-Février 1986) page 11.

Je dois avouer que je suis très mauvais à ce jeu. Comme scharf va bientôt publier une version pour la Numworks ou une Ti actuelle, je me suis empressé de m'en faire une version d'entrainement sur mon SHARP PC-1360 afin de pouvoir facilement afficher la grille de jeu 4x4.

Code : Tout sélectionner

 1:DATA  9, 9,13,14,10
 2:DATA 10,10,14,15,11
 3:DATA 11,11,15,16,12
 4:DATA  5, 5, 9,10, 6
 5:DATA  10,10,11, 7, 6
 6:DATA  7, 7,12,12, 8
 7:DATA  5, 5, 6, 2, 1
 8:DATA  6, 6, 7, 3, 2
 9:DATA  7, 7, 8, 4, 3
10:A0$="ABCDEFGHIJKLMNOP",A1$=A0$: R=200: CLS : CURSOR 24: PRINT "---=== RUBIKA ===---"
12:"S" C=1: CURSOR 78: INPUT "Hardness ";K: IF K<1 OR K>12 GOTO 12
14:WAIT 0: CURSOR 74: PRINT "...Shuffling...": FOR I=1 TO K: RESTORE RND 9: GOSUB 60: NEXT I:A2$=A1$
16:"A" A1$=A2$: BEEP 1
20:"=" WAIT 0: CLS : IF A1$<>A2$ GOTO 30
22:IF R>C CURSOR 6: BEEP 2:R=C: PRINT "New record !"
23:CURSOR 30: PRINT "Record:";R
24:GOSUB 52:KK$="": CURSOR 78: INPUT "(N)ew (S)ame ";KK$: IF LEFT$ (KK$,1)="S" GOTO 16
26:IF LEN KK$ GOTO 12
28:END
30:" " GOSUB 52: CURSOR 77: A3$=A1$: PRINT C;: CURSOR 81: INPUT "moves ";KK$: GOTO 32
31:CURSOR 72: KK$="C": INPUT "N)ew R)strt U)ndo C)nt ";KK$
32:IF LEFT$ (KK$,1)="N" GOTO 12
33:IF LEFT$ (KK$,1)="R" GOTO 16
34:IF LEFT$ (KK$,1)="U" LET A1$=A3$
35:IF  VAL KK$<1 GOTO 30
36:FOR I=1 TO LEN KK$:M= VAL MID$ (KK$,I,1): IF M>0 IF M<10 GOSUB 40+M
38:NEXT I: GOTO 20
41:LINE ( 6,16)-(16,30),B: GOTO 50
42:LINE (12,16)-(22,30),B: GOTO 50
43:LINE (18,16)-(28,30),B: GOTO 50
44:LINE ( 6, 8)-(16,22),B: GOTO 50
45:LINE (12, 8)-(22,22),B: GOTO 50
46:LINE (18, 8)-(28,22),B: GOTO 50
47:LINE ( 6, 0)-(16,14),B: GOTO 50
48:LINE (12, 0)-(22,14),B: GOTO 50
49:LINE (18, 0)-(28,14),B
50:C=C+1: RESTORE M: GOSUB 60
52:WAIT 0: CURSOR 0: PRINT LEFT$(A1$,4): PRINT MID$(A1$,5,4): PRINT MID$ (A1$,9,4): PRINT RIGHT$ (A1$,4): RETURN
60:READ A:S$= MID$ (A1$,A,1)
62:FOR J=1 TO 4: READ B:A1$= LEFT$(A1$,A-1)+ MID$(A1$,B,1)+RIGHT$ (A1$,16-A):A=B: NEXT J
64:A1$= LEFT$ (A1$,A-1)+S$+ RIGHT$ (A1$,16-A): RETURN
PC-1360 RUBIKA.gif
PC-1360 RUBIKA.gif (43.71 Kio) Vu 10043 fois
Capture d'écran depuis PockEmul

Le jeu se joue sur une grille 4 x 4 remplie des 16 premières lettres de l'alphabet :
Le but du jeu est de remettre la grille dans l'ordre alphabétique à l'aide des 9 mouvements de rotation en sens horaire autour des neuf chiffres placés comme sur le pavé numérique de la calculette :

Code : Tout sélectionner

┌─────┬─────┬─────┬─────┐
│  A  │  B  │  C  │  D  │
├─────7─────8─────9─────┤ 
│  E  │  F  │  G  │  H  │
├─────4─────5─────6─────┤ 
│  I  │  J  │  K  →  L  │
├─────1─────2──↑──3──↓──┤ 
│  M  │  N  │  O  ←  P  │
└─────┴─────┴─────┴─────┘
Les flèches indiquent le sens des déplacements autour du mouvement 3.
Au début du jeu la grille est bien évidemment mélangée. Il faut la remettre dans l'ordre.
A chaque étape, on entre le ou les déplacements par le(s) chiffre(s) correspondant(s).
J'ai fait en sorte que l'on puisse entrer plusieurs chiffres ce qui fait gagner du temps, car je suis mauvais et souvant je fais beaucoup tourner en rond.
Les rotation sont animées à l'écran. Le compteur de coup compte chaque rotation.
Il y a aussi quelques menus de sélection pour recommencer une nouvelle partie (N ew), reprendre au début la partie en cours (R estart), annulé le dernier coup (U ndo), etc.
La machine enregistre le nombre de coups minimal. Avec l'option (R estart) cela permet à deux adversaires de s'affronter sur la même grille.

Je suis preneur de toutes idées qui permettraient de proposer un solveur à ce jeu. Ma version n'en possède pas et je suis trop mauvais; je serais reconnaissant envers toute personne qui saurait m'indiquer quel type d'algorithme utiliser pour résoudre ce type de puzzle :) ou au moins donner l'occasion d'avoir une option (H int).
Modifié en dernier par C.Ret le 15 janv. 2021 22:05, modifié 4 fois.
SHARP PC-1211 PC-1360 EL-5150 PC-E500 | Commodore C=128D | Texas Instruments Ti-57LCD Ti-74BASICalc Ti-92II Ti-58c Ti-95PROCalc Ti-30XPROMathPrint | Hewlett-Packard HP-28S HP-41C HP-15C HP-Prime HP-71B | CASIO fx-602p | NUMWORKS | Graphoplex Rietz Neperlog | PockEmul | Sommaire des M.P.O. | Ma...dov'il sapone.
Avatar du membre
Danny
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1248
Enregistré le : 28 déc. 2013 16:34

Re: A m'entrainer à RUBIKA

Message par Danny »

Sympa ce jeu :geek:
? Apple, Atari, Canon, Casio, ????????????, HP, Psion, Sharp, Tandy... même TI.
jxano
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2362
Enregistré le : 16 févr. 2008 23:34
Localisation : Paris 20ème

Re: A m'entrainer à RUBIKA

Message par jxano »

Tiens, un pousse-pousse à la sauce informatique ! On n'est pas obligé de tourner autour de la tuile manquante, contrairement à la version physique.

Ton solveur est tout trouvé. J'ai regardé ton code : il suffit d'enregistrer les coups aléatoires du mélangeur (shuffle) pour les rejouer à l'envers.

On ne pourrait de toute façon pas partir d'un tirage aléatoire de lettres : la solution risquerait d'être très longue à atteindre, dans le cas où celle-ci existe !
Programmeur abscons.
remy
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2218
Enregistré le : 13 mars 2006 15:39
Localisation : Issy
Contact :

Re: A m'entrainer à RUBIKA

Message par remy »

Ca rend quand même super bien la copie d'écran :D
PockEmul, Emulateur de pocket Sharp, Canon, Casio, HP, TI, NEC, Panasonic, Sanco, Seiko, General, National, ....
sur Windows, Linux, OS X et Android
Available now on the Google Play Store and the Apple Store
Avatar du membre
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3405
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: A m'entrainer à RUBIKA

Message par C.Ret »

remy a écrit : 15 janv. 2021 21:25 Ca rend quand même super bien la copie d'écran :D
Eh oui je trouve aussi !

Merci Remy !

jxano a écrit : 15 janv. 2021 20:47 Tiens, un pousse-pousse à la sauce informatique ! On n'est pas obligé de tourner autour de la tuile manquante, contrairement à la version physique.

Ton solveur est tout trouvé. J'ai regardé ton code : il suffit d'enregistrer les coups aléatoires du mélangeur (shuffle) pour les rejouer à l'envers.

On ne pourrait de toute façon pas partir d'un tirage aléatoire de lettres : la solution risquerait d'être très longue à atteindre, dans le cas où celle-ci existe !
Mais Oui ! C'est bien sûr ! Et moi qui étais parti dans une résolution compliquée à partir de graphs, d'heuristique et autres méthodes convexes ...

Oui, le problème de l'existence de solution pour un tirage aléatoire se pose. C'est pour cela que je suis parti vers un 'shuffle'. En plus on réutilise la procédure de mélange qui sert aussi pour calculer les coup du joueur.

Bon, mon algo est pas tip-top, il doit y avoir un moyen de paramétrer cela un peu mieux et de pouvoir se passer des DATA.

Bien, je vais réfléchir à ta méthode.
Non pas qu'enregistrer les échanges soit compliqué (bien au contraire), c'est surtout de faire "marche arrière" qui me pose un problème, on tourne toujours que dans le sens des aiguilles d'une montre autour de chaque axe...
SHARP PC-1211 PC-1360 EL-5150 PC-E500 | Commodore C=128D | Texas Instruments Ti-57LCD Ti-74BASICalc Ti-92II Ti-58c Ti-95PROCalc Ti-30XPROMathPrint | Hewlett-Packard HP-28S HP-41C HP-15C HP-Prime HP-71B | CASIO fx-602p | NUMWORKS | Graphoplex Rietz Neperlog | PockEmul | Sommaire des M.P.O. | Ma...dov'il sapone.
jxano
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2362
Enregistré le : 16 févr. 2008 23:34
Localisation : Paris 20ème

Re: A m'entrainer à RUBIKA

Message par jxano »

C.Ret a écrit : 15 janv. 2021 21:53 Bien, je vais réfléchir à ta méthode.
Non pas qu'enregistrer les échanges soit compliqué (bien au contraire), c'est surtout de faire "marche arrière" qui me pose un problème, on tourne toujours que dans le sens des aiguilles d'une montre autour de chaque axe...
Rien ne t'interdit de faire le même quart de tour trois fois pour retrouver la situation de départ...

Comme il n'y a qu'un seul sens de rotation dans le code, le fait de faire quelques rotations au petit bonheur participe à la mystification du joueur, qui ne sait pas forcément comment le programme est conçu, et ne saura pas du premier regard reconstituer les mouvements de mélange à remonter.
Programmeur abscons.
Avatar du membre
Danny
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1248
Enregistré le : 28 déc. 2013 16:34

Re: A m'entrainer à RUBIKA

Message par Danny »

C.Ret a écrit : 15 janv. 2021 21:53 Oui, le problème de l'existence de solution pour un tirage aléatoire se pose. C'est pour cela que je suis parti vers un 'shuffle'. En plus on réutilise la procédure de mélange qui sert aussi pour calculer les coup du joueur.
Yes c’est ce que j’avais fait pour Twix, ça permet aussi de générer des positions plus ou moins complexes au départ.
? Apple, Atari, Canon, Casio, ????????????, HP, Psion, Sharp, Tandy... même TI.
Avatar du membre
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3405
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: A m'entrainer à RUBIKA

Message par C.Ret »

Danny a écrit : 15 janv. 2021 22:51 Yes c’est ce que j’avais fait pour Twix, ça permet aussi de générer des positions plus ou moins complexes au départ.
C'est justement parce que je me rappelais de ce qui avait été fait avec Twix que je suis parti immédiatement sur cette voie !

jxano a écrit : 15 janv. 2021 22:38Rien ne t'interdit de faire le même quart de tour trois fois pour retrouver la situation de départ...
Je voulais utiliser cette astuce, et pour avoir une solution mémorisée plus courte, toujours faire faire trois tours lors du tirage aléatoire afin d'avoir une issue "simple"
L'alternative étant de faire le brouillage à contre-sens de rotation afin d'avoir ensuite une solution 'simple'; ce qui peut être utile pédagogiquement pour les niveaux élémentaires afin que le joueur découvre le fonctionnement.
jxano a écrit : 15 janv. 2021 22:38Comme il n'y a qu'un seul sens de rotation dans le code, le fait de faire quelques rotations au petit bonheur participe à la mystification du joueur, qui ne sait pas forcément comment le programme est conçu, et ne saura pas du premier regard reconstituer les mouvements de mélange à remonter.

Entre temps, la vidéo de schraf est sortie. Pourquoi n'utilise-t-il pas un damier de 16 lettres. L'idée des quatre couleurs est bonne, visuellement et pédagogiquement car les couleurs aident certainement le joueur ?!
Dans sa vidéo, il démystifie beaucoup le principe et utilise un tirage aléatoire initial à 'contre-sens' afin de proposer des bas niveaux élémentaires (voir simplistes).

Bon, enregistrer le tirage initial permet de proposer une solution au damier initial. Mais si le joueur demande de l'aide après avoir joué plusieurs fois, il faut proposer quelque chose à partir du damier qu'il à mélangé.
Mon idée est donc d'enregistrer les coups du joueur.

Mais, comme il n'y a qu'un seul sens de rotation, je me retrouve dans le même cas que lors du tirage initial aléatoire.
Du coup, j'hésite. Si je veux un code court et efficace, j'ai donc plutôt intérêt à faire le tirage aléatoire initial dans le sens normal et enregistrer les trois rotation dans le 'fichier' solution.
Ce qui fait que je vais pouvoir utiliser les mêmes procédures pour mémoriser les rotations lors du tirage aléatoire initial et lors des mouvements du joueur.

L'inconvénient c'est qu'il y aura dans les solutions toujours trois fois de suite le même mouvement.

Mais je crois que je vais garder cette solution. Le joueur pourra à chaque coup demander de l'aide à sa calculette. Il pourra suivre ou non la recommandation. Selon le cas, son mouvement sera ajouté ou retirer du 'fichier' solution.

Bon, le soucis, c'est que si le joueur joue bien et qu'il se rapproche de la solution, cette méthode d'enregistrement va produire des recommandations qui vont l'écarter du chemin le plus court pour refaire tout à l'envers...

Ah! Ca ne va pas, mais je crois que j'ai trouvé une astuce...

.. je sors ma calculette et je vous prépara un truc.
SHARP PC-1211 PC-1360 EL-5150 PC-E500 | Commodore C=128D | Texas Instruments Ti-57LCD Ti-74BASICalc Ti-92II Ti-58c Ti-95PROCalc Ti-30XPROMathPrint | Hewlett-Packard HP-28S HP-41C HP-15C HP-Prime HP-71B | CASIO fx-602p | NUMWORKS | Graphoplex Rietz Neperlog | PockEmul | Sommaire des M.P.O. | Ma...dov'il sapone.
Avatar du membre
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3405
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: A m'entrainer à RUBIKA

Message par C.Ret »

Chose promise, chose due !

Voici donc une version plus aboutie du mon programme RUBIKA. Cette fois la calculette est capable de vous sortir d'une impasse. Attention, il ne s'agit pas d'une résolution complète. J'utilise le conseil de jxano en enregistrant les mouvements lors du mélange initial puis lors des coups du joueur. Ce qui fait qu'à tout moment, le pocket peut proposer un coup qui conduira à terme à la résolution de la grille. Mais rien ne garanti que le chemin indiqué est le plus court.

Le jeu se lance par un simple RUN et le SHARP 1360 initialise ses variables :
PC-1360 RUBIKA _2.gif
PC-1360 RUBIKA _2.gif (48.95 Kio) Vu 9710 fois
L'utilisateur entre la difficulté qui est en fait le nombre de coup minimal. En entrant 0, le jeu est extrêmement simple puisqu'une seule rotation sera nécessaire pour retrouver la grille initiale.
PC-1360 RUBIKA _1.gif
PC-1360 RUBIKA _1.gif (50.25 Kio) Vu 9710 fois
La grille mélangée est alors affichée et le joueur est invité à saisir une commande:
PC-1360 RUBIKA _3.gif
PC-1360 RUBIKA _3.gif (54.29 Kio) Vu 9710 fois
PC-1360 RUBIKA _4.gif
PC-1360 RUBIKA _4.gif (53.03 Kio) Vu 9710 fois
  • Les chiffres de 1 à 9 indiquent les rotations correspondantes. On peut entrer jusqu'à sept rotations en une seule fois afin d'éventuellement faciliter la réflexion.
  • La commande U: permet d'annuler le dernier coup joué. Tous les coups étant enregistrés, on peut revenir ainsi jusqu'au premier coup. Attention, cela ne remet pas à zéro le nombre de mouvements comptés.
  • La commande R: permet de recommencer à partir de la grille initiale. c'est bien pratique quand on s'est égaré dans une stratégie défaillante. Là aussi les mouvements comptés ne sont pas repris.
  • Les commandes H ou S: demandent de l'aide pour résoudre la grille d'un pas. Le coup proposé par le pocket est automatiquement affiché et joué.
  • La commande Q: permet de quitter le jeu.
Toutes les saisies doivent être validées par la touche [ENTER]. J'utilise un INPUT afin de profiter de l'extinction automatique et de ne pas risquer d'user prématurément les piles si l'on oublie son pocket.
En fin de partie, on peut recommencer à zéro la même grille, en générer une nouvelle ou quitter.
PC-1360 RUBIKA _5.gif
PC-1360 RUBIKA _5.gif (54.54 Kio) Vu 9710 fois


Le code n'est pas très long:

Code : Tout sélectionner

    ------- Initialisation  -------
 10:CLEAR : DIM G$(255)*16,S(255,3),R(9),X(9),Y(9): CLS : WAIT 0: CURSOR 54: PRINT "--== RUBIKA ==--"
 12:G$(0)="ABCDEFGHIJKLMNOP": FOR C=1 TO 9:R(C)=1+C+7*((C<4)-(C>6)): NEXT C         
 14:FOR C=0 TO 2: FOR D=1 TO 3:X(D+3*C)=6*D,Y(6-3*C+D)=8*C: NEXT D: NEXT C
    -------  Grid shuffling -------       
 16:Q=0,P=0,I=0,S(0,1)=0,N=1: GOSUB 90: INPUT "  Diff. ";D: CURSOR 78: PRINT "Shuffling..."      
 18:FOR K=0 TO D:C= RND 9: GOSUB 72: GOSUB 72: GOSUB 72:P=I: NEXT K:Q=P,S(Q,3)=Q        
    -------   Restart game  -------
 20:P=Q,M=0             
    -------    Game loop    ------- 
 30:GOSUB 90: IF P=0 BEEP 3: PRINT "Win ";M;"moves!!": GOTO 50                   
 32:PRINT M+1;"            ": CURSOR 81: BEEP 1: INPUT "cmd ";B$: CURSOR : PRINT ""   
 34:GOSUB 90:C= VAL LEFT$ (B$,1): IF C GOSUB 60:B$= MID$ (B $,2,6): GOTO 30+4* SGN LEN B$  
    -------   Command keys  ------- 
 40:IF B$="U" LET P=S(P,3): GOTO 30         
 42:IF B$="R" LET P=Q: GOTO 30             
 44:IF B$="Q" GOTO 50   
 46:IF B$="H" OR B$="S" LET C=S(P,2): CURSOR 66: PRINT STR$ C: GOSUB 60: GOTO 30             
 48:CURSOR 72: WAIT 55: PRINT "1-9rot H:lp R:st U:do": GOTO 30
    -------    End of Game  ------- 
 50:CURSOR 5: INPUT "Rstrt New Quit ";B$: CLS                 
 52:IF B$="R" GOTO 20   
 54:IF B$="N" GOTO 16   
 56:END            
    =======SP: Player play  ======= 
 60:LINE (4+X(C),6+Y(C))-(6+X(C),8+Y(C)),BF 
 62:I=P,M=1+M: GOSUB 72:S(I,3)=P,P=I: GOSUB 72                  
    =======SP: rotate grid  =======
 70:LINE (X(C),Y(C))-(10+X(C),14+Y(C)),B    
 72:G$(N)= LEFT$ (G$(I),R(C)-1)+ MID$ (G$(I),R(C)+4,1)+ MID$ (G$(I),R(C),1)+ MID$ (G$(I),R(C)+2,2)      
 74:G$(N)=G$(N)+ MID$ (G$(I),R(C)+5,1)+ MID$ (G$(I),R(C)+1,1)+ RIGHT$ (G$(I),11-R(C))               
 76:I=0,S(N,2)=C,S(N,1)=0,S(N,0)=0
    =======SP: store grid  =======          
 80:IF G$(N)=G$(I) RETURN              
 82:J=I,I=S(J,G$(N)>G$(J)): IF I GOTO 80    
 84:I=N,S(J,G$(N)>G$(J))=N,N=N+1: RETURN
    =======SP: display grid  =====   
 90:CURSOR 0: WAIT 0: PRINT LEFT$ (G$(P),4): PRINT MID$ (G$(P),5,4): PRINT MID$ (G$(P),9,4): PRINT RIGHT$ (G$(P),4): CURSOR 77: RETURN

L'algorithme est basé sur un arbre de recherche dans lequel sont stockés les grilles produites lors de l'opération de mélange initial mais aussi lors des coups du joueur. La rotation des éléments de la grille a été optimisée et se résume à une réorganisation de la chaine des 16 caractères dans G$( i ).
La structure en arbre binaire de recherche est fourni par les pointeurs S( i ,0) et S( i ,1) ce qui permet à chaque rotation de vérifier en un minimum de comparaisons que la nouvelle grille n'existe pas déjà.
Les colonnes de S( i , 2) et S( i , 3) permettent de mémoriser pour chaque grille respectivement la rotation C qui l'a crée ainsi que l'indice de la grille précèdante ce qui permet respectivement de suggérer le meilleurs coup (HELP/SOLVE) ou de revenir en arrière (UNDO)
Les vecteurs R(.) X(.) et Y(.) permettent d'animer la bonne rotation en fonction des touches 1 à 9.

L'astuce est qu'à chaque nouvelle rotation de la grille (qu'elle soit aléatoire ou jouée) c'est en réalité trois nouvelles grilles qui sont mémorisées dans l'arbre produites par trois instances de la rotation. Ce qui fait que l'on enregistre en réalité un tour complet.
Cette astuce combinée avec l'arbre de recherche permet le cas échéant de revenir sur ces pas; chaque grille n'existe qu'une seule fois dans l'arbre.
La variable P pointe sur la grille actuellement jouée. Plus P s'approche de zéro, plus le joueur est proche de la solution. Il est possible d'utiliser cette propriété de l'arbre afin d'optimiser les pointeurs S( i , 2) afin qu'ils propose une "meilleure" solution. Mais cela nécessite une petite boucle de recherche qui, même si elle n'est pas très longue, ralenti chaque mouvement.
La version proposée pour le SHARP PC-1360 n'utilise pas cette optimisation de la solution. Je la proposerai volontiers sur des machines plus véloces.


Pour ceux qui ne souhaite pas saisir ce code, la session RUBIKA pour PockEmulest disponible.
Merci Remy !
Modifié en dernier par C.Ret le 24 janv. 2021 14:48, modifié 1 fois.
SHARP PC-1211 PC-1360 EL-5150 PC-E500 | Commodore C=128D | Texas Instruments Ti-57LCD Ti-74BASICalc Ti-92II Ti-58c Ti-95PROCalc Ti-30XPROMathPrint | Hewlett-Packard HP-28S HP-41C HP-15C HP-Prime HP-71B | CASIO fx-602p | NUMWORKS | Graphoplex Rietz Neperlog | PockEmul | Sommaire des M.P.O. | Ma...dov'il sapone.
Avatar du membre
Danny
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1248
Enregistré le : 28 déc. 2013 16:34

Re: A m'entrainer à RUBIKA

Message par Danny »

'gnifique ! :o
? Apple, Atari, Canon, Casio, ????????????, HP, Psion, Sharp, Tandy... même TI.
Avatar du membre
Schraf
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 499
Enregistré le : 05 mars 2020 20:45
Contact :

Re: A m'entrainer à RUBIKA

Message par Schraf »

Bonjour aux amis du RUBIKA ;-)

Ca m'apprendra à ne pas venir sur ce forum plus souvent, j'ai loupé votre discussion de la mi-janvier...

Je me suis aussi posé la question de l'existence d'une solution si le mélange initial est aléatoire, je n'ai pas poussé plus loin mais en faisant des parties (je ne suis pas plus doué que C.Ret à ce jeu), il me semble avoir vu à un moment qu'il n'y avait que 2 cases de permutées, les autres étant en place. J'aurais tendance à en déduire que toutes les configurations sont possibles mais ça manque d'une vraie preuve.

Quant à trouver l'algorithme optimal une fois que le joueur a commencé à tout mélanger là ça me semble bien compliqué...
Répondre

Retourner vers « A quoi t'as joué hier ? »