Un pot commun pour toutes les machines n°3 : Saute-mouton

Ici, on fait dans le petit, le LCD qui déchire sa race, on y cause même calculatrices quand on est en manque !

Modérateur : Politburo

Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1602
Enregistré le : 27 oct. 2010 20:46

Un pot commun pour toutes les machines n°3 : Saute-mouton

Message par Gilles59 »

Pot commun Saute-Mouton
Modifié en dernier par Gilles59 le 02 oct. 2017 22:02, modifié 8 fois.
Casio FX-502P /602P / 603P / FX180P+ / FX4000P / TI57 / TI66 / TI74 Basicalc / TI95 Procalc / HP12C / HP15C LE / DM41L / HP 30B / HP39GII / HP 48SX USA / 49G / 49g+ / 50G / 50G NewRPL / HP Prime / Oric 1 / Amstrad CPC 6128+ CM14 et MM12 / Alice 32
Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1602
Enregistré le : 27 oct. 2010 20:46

Saute-Mouton, Casio FX602P et FX603P

Message par Gilles59 »

SAUTE-MOUTON, Publié dans Jeux et Stratégie n°1 pour TI59, HP67, HP41

http://download.abandonware.org/magazin ... 20(54).JPG
http://download.abandonware.org/magazin ... 20(55).JPG
http://download.abandonware.org/magazin ... 20(56).JPG
(Source : Abandonware.org)

Une version pour Casio FX-602P, comparable aux versions TI59-HP67 ci dessus en 64 pas

Code : Tout sélectionner

P0***
MAC
1 Min01 Min02 Min03 Min04 MinF
2 Min06 Min07 Min08 Min09
LBL0
 1 Min19
  "▮ AR02 AR03 AR04 AR05 AR06 AR07 AR08 ▮" 
  HLT ";" + 1 = Min1F Min17 
  IND MR1F x=0 GOTO0 x=F GOTO1
  1 +/- Min19
LBL1
 MR19 M+1F IND MR1F x=0 GOTO2  
 MR19 M+1F IND MR1F x>=F GOTO0
LBL2
 0 IND X<->M17 IND Min1F
 GOTO0

Dans la version 603P ci-après il y a 4 moutons blancs et 4 moutons noirs représentés par des cercles vides ou pleins. La position des moutons est affichée dans la ligne basse pour faciliter le choix du mouton a déplacer. Le déplacement est instantané.

Code : Tout sélectionner

P0***

" "
242 POKE 1393 POKE 1394 POKE 1404 POKE 1405  // Affiche les 'clotures'
234 POKE 1395 POKE 1396 POKE 1397 POKE 1398  // Affiche les moutons blancs
235 POKE 1400 POKE 1401 POKE 1402 POKE 1403  // Affiche les moutons noirs

LBL0
 ";" 123456789 = HLT
 + 1394 = Min1F Min2F 
 1 Min11
 PEEK MR1F MinF Min10 
 235 x=F GOTO1
 234 x=F GOTO2
 GOTO0

LBL1
 1 +/- Min11

LBL2
 2 Min00
 LBL8
  MR11 M+1F
  PEEK MR1F MinF
  127 x=F GOTO3
 DSZ GOTO8
 GOTO0

LBL3
 127  POKE MR2F
 MR10 POKE MR1F
 GOTO0
Modifié en dernier par Gilles59 le 01 oct. 2017 22:48, modifié 5 fois.
Casio FX-502P /602P / 603P / FX180P+ / FX4000P / TI57 / TI66 / TI74 Basicalc / TI95 Procalc / HP12C / HP15C LE / DM41L / HP 30B / HP39GII / HP 48SX USA / 49G / 49g+ / 50G / 50G NewRPL / HP Prime / Oric 1 / Amstrad CPC 6128+ CM14 et MM12 / Alice 32
Avatar du membre
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 6172
Enregistré le : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

Re: Un pot commun pour toutes les machines

Message par Marge »

C'est une super bonne idée, Gilles59 ! Je suis à fond là-dedans !
Je crois que l'esprit initial de la rubrique était de favoriser le plus grand nombre de lecteurs... attention, donc, à ne pas trop se focaliser sur des machines très rares ! ;)... même si ça reste intéressant d'un autre point de vue.

Je vais tâcher dans ces prochaines semaines (hum...) de terminer mon programme sur les tours de Hanoï (partie PGM ET partie joueur), pour éventuellement l'ouvrir à d'autres machines HP (mes connaissances étant limitées sur les TI et surtout les Casio).

Banzaï!
3 hommes, 3 demis, un 3a... Magnéto, Serge !

Quelques-uns de mes petits programmes pour machines Hewlett-Packard :
15C : Knight's Tour ;
29C : (k-)Permutations, Combinations, Linear Regression and Pseudo-random number ;
34C : Hanoi Towers - Automatic & Manual resolutions ;
67
__: A L I E N .

« Boris », c'était juste Maurice enrhumé.
Avatar du membre
dprtl
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 463
Enregistré le : 27 janv. 2013 00:26
Localisation : Strasbourg
Contact :

Re: Un pot commun pour toutes les machines

Message par dprtl »

On avait commencé une petite série, mais je crois qu'il n'y a pas d'article "sommaire" pour faciliter la lecture, ou les nouvelles contributions :
Le jeu du Saute-Mouton est donc le n°3 ?
Modifié en dernier par dprtl le 01 oct. 2017 10:07, modifié 1 fois.
cgh
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2142
Enregistré le : 30 août 2011 12:23
Localisation : Vous êtes ici -> .

Re: Un pot commun pour toutes les machines

Message par cgh »

Oui. C'est vrai que nous avions commence "une petite rubrique".
Merci de relancer le sujet :)
Il y a ceux qui voient les choses telles qu'elles sont et se demandent pourquoi, et il y a ceux qui imaginent les choses telles qu'elles pourraient être et se disent... pourquoi pas? - George Bernard Shaw
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque
Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1602
Enregistré le : 27 oct. 2010 20:46

Re: Un pot commun pour toutes les machines n°3 : Saute-mouton

Message par Gilles59 »

Il serait bien d'avoir un sommaire qui resterait visible en haut comme les MPO. J'avais complétement oubliés que des articles avaient été écrits (et en plus j'avais écris dedans !). Pour ceux n'ont jamais essayé KIBUR (une variante du "Jeu d'inversion" vraiment très sympa)
Casio FX-502P /602P / 603P / FX180P+ / FX4000P / TI57 / TI66 / TI74 Basicalc / TI95 Procalc / HP12C / HP15C LE / DM41L / HP 30B / HP39GII / HP 48SX USA / 49G / 49g+ / 50G / 50G NewRPL / HP Prime / Oric 1 / Amstrad CPC 6128+ CM14 et MM12 / Alice 32
Avatar du membre
Pocket
Administrateur
Administrateur
Messages : 5940
Enregistré le : 24 mai 2002 16:55
Localisation : Toulouse
Contact :

Re: Un pot commun pour toutes les machines n°3 : Saute-mouton

Message par Pocket »

Salut,
Gilles59 a écrit : 01 oct. 2017 22:06 Il serait bien d'avoir un sommaire qui resterait visible en haut comme les MPO.
Créée le, je le transformerai en post-it

A+
Pocket, voit tout, sait tout, lit l'avenir dans les entrailles d'une base phpBB ...
Image
Avatar du membre
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3404
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: Un pot commun pour toutes les machines n°3 : Saute-mouton

Message par C.Ret »

Bonne idée, le sommaire !

Voici une version de Saute-mouton pour SHARP PC-1211 :

Code : Tout sélectionner

10 A$="   ",B$="∏^",F$="^#",C$=B$,D$=B$,E$=A$,G$=F$,H$=F$,I$=A$,J=0
20 IF A$=B$ IF H$=I$ IF B$=C$ IF G$=H$ BEEP 3:PRINT "GAGNE EN ";J:IF KJ<=KK LET K=J
30 PRINT USING "###";A$;B$;C$;D$;E$;F$;F$;G$;H$;I$;J;K:P=0:INPUT "MVT.POS ";P
40 IF (P<1)+(P>9) PAUSE "MVT.POS DE 1 A 9 !" :GOTO 30
50 IF A$(P)="  "  PAUSE "PAS DE MOUTON ICI !":GOTO 30
60 J=J+1,L=1:IF A$(P)="^#" LET L=-1
65 Q=P+2L:IF P+L IF P+1<10 IF A$(P+L)="  " LET Q=P+L
70 IF (Q<1)+(Q>9) PAUSE "SAUT HORS LIMITE !" :GOTO 30 
80 IF A$(Q)="  " LET A$(Q)=A$(P),A$(P)="  "  :GOTO 20
90 PAUSE "SAUT IMPOSSIBLE  !" :GOTO 30
Instructions:
Le temps de la transhumance à sonner. C'est le moment d'aider les troupeaux de Jean-Pierre et du Père Denis à se croiser.
Les bêtes de Pierre sont tatouées d'un PI et doivent aller vers les pâturages de l'Est.
Le troupeau du Père Denis est marqué d'une DIESE et migre vers les Monts à l'Ouest.
C'est à vous d'indiquer quel bête doit avancer afin d'effectuer l'opération en un minimum d'opérations. Car tout le monde sait que les moutons ne sautent pas volontairement l'un au dessus de l'autre, ni ne vont généralement là où on leur demande. Par contre c'est sûr qu'ils ne pourront faire marche-arrière et qu'ils sont très têtus. Chaque opération du déplacement demandera donc certainement l'intervention de l'un ou l'autre des bergers; soit pour porter les moutons, soit pour les faire avancer ou même les maintenir en troupeau. Et donc, soyer efficace au risque de fâcher Pierre ou le Père Denis et de prendre quelques taloches si la situation se bloque ! Par chance, et contrairement à leur chiens et bétail, ils ne mordent pas.

Image
Ref:Blog eddie pons

Je vous propose donc un programme d'entrainement.
Munissez-vous de votre ordinateur de pâturages SHARP PC-1211.
Ordonnez-lui de courir (RUN) pour démarrer une nouvelle transhumance.
Il affiche alors un schéma représentant la situation avec les moutons de Pierre à gauche et ceux de Père Denis à droite.
Pour vous aider à optimiser la manœuvre, il affiche aussi le nombre de mouvement de l'opération en cours ainsi que le meilleurs score obtenu jusqu'à présent.

A chaque étape de l'opération indiquer simplement la position du mouton à déplacer (MVT.POS), positions repérées de gauche à droite de 1 à 9.

Code : Tout sélectionner

┌────────────────────────┐
│1.2.3.4.5.6.7.8.9.  0  0│
└────────────────────────┘
Les moutons ne peuvent qu'avancer, soit directement sur une position libre, soit en sautant au-dessus d'un et un seul congénère. Dans tous les cas le mouvton doit finir sur une position libre (un ESPACE suffisant). Toute tentative compte et les échecs incrémentent le compteur de coups ce qui ne manquera aussi d'amplifier la grogne des deux bergers.

Code : Tout sélectionner

┌────────────────────────┐┌────────────────────────┐┌────────────────────────┐
│  ∏^∏^∏^  ^#^#^#    0 18││ MVT.POS _              ││PAS DE MOUTON ICI !     │
└────────────────────────┘└────────────────────────┘└────────────────────────┘
┌────────────────────────┐┌────────────────────────┐┌────────────────────────┐
│  ∏^∏^∏^  ^#^#^#    0 18││ MVT.POS _              ││SAUT IMPOSSIBLE !       │
└────────────────────────┘└────────────────────────┘└────────────────────────┘
┌────────────────────────┐┌────────────────────────┐
│GAGNE 32CPS             ││^#^#^#      ∏^∏^∏^ 32 18│ Bien joué ! 
└────────────────────────┘└────────────────────────┘

┌────────────────────────┐
│    ∏^∏^∏^^#^#^#    2 18│  Haïe !
└────────────────────────┘
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.
Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1602
Enregistré le : 27 oct. 2010 20:46

Re: Un pot commun pour toutes les machines n°3 : Saute-mouton

Message par Gilles59 »

Excellent c.ret
Belle mise en situation.
Casio FX-502P /602P / 603P / FX180P+ / FX4000P / TI57 / TI66 / TI74 Basicalc / TI95 Procalc / HP12C / HP15C LE / DM41L / HP 30B / HP39GII / HP 48SX USA / 49G / 49g+ / 50G / 50G NewRPL / HP Prime / Oric 1 / Amstrad CPC 6128+ CM14 et MM12 / Alice 32
Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1602
Enregistré le : 27 oct. 2010 20:46

Re: Un pot commun pour toutes les machines n°3 : Saute-mouton

Message par Gilles59 »

Pocket a écrit : 02 oct. 2017 09:37 Salut,
Gilles59 a écrit : 01 oct. 2017 22:06 Il serait bien d'avoir un sommaire qui resterait visible en haut comme les MPO.
Créée le, je le transformerai en post-it

A+
Sommaire créé ;D
Casio FX-502P /602P / 603P / FX180P+ / FX4000P / TI57 / TI66 / TI74 Basicalc / TI95 Procalc / HP12C / HP15C LE / DM41L / HP 30B / HP39GII / HP 48SX USA / 49G / 49g+ / 50G / 50G NewRPL / HP Prime / Oric 1 / Amstrad CPC 6128+ CM14 et MM12 / Alice 32
Avatar du membre
gege
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7141
Enregistré le : 31 janv. 2008 14:24
Localisation : Banlieue Paârisienne
Contact :

Re: Un pot commun pour toutes les machines n°3 : Saute-mouton

Message par gege »

Bonjour,
Excellent, je ne vois pas comment résoudre.
Une question, les positions 1 et 9 sont-elles vraiment utilisées ??
G.E.
Avatar du membre
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3404
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: Un pot commun pour toutes les machines n°3 : Saute-mouton

Message par C.Ret »

Les positions 1 et 9 servent surtout pour détecter la fin de partie; il faut transhumer jusqu'à l'extrémité de l'écran.

Quand à la résolution, j'y travaille moi aussi.

Sur internet, j'ai trouvé un procédé qui dit que la solution consiste à déplacer de façon systématique 1 mouton noir, 2 moutons blanc, 3 noirs, 4 blancs, et ainsi de suite...

Pour l'instant, seule une méthode basée sur le parcours d'un arbre généré par les mouvements à venir semble donner des résultats convenables.
Mais le temps de résolution est incompatible avec les performances d'un Pâturage Croiseur 1 mouton 1 mouton 2 mouton 1 bêêê.

Je deviens chèvre. J'avais l'idée d'une méthode dynamique basée sur une hystérésis qui à chaque choix de mouvement tentait de choisir le meilleurs mouvement pour la suite des opération. Malheureusement, il faut souvent "prendre des risques" et ne pas faire le choix le plus évident afin de ne pas risquer d'être bloqué plus tard.

Pour l'instant, sur ce système seul un programme prototype avec détection de fin de partie est exploitable.

En fait l'issue est de détecter les mouvements conduisant à la détection du "blocage" d'un mouvton, ce qui permettrait de réduire considérablement l'arbre de recherche ou rendre suffisamment efficace chaque choix !
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 : 3404
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: Un pot commun pour toutes les machines n°3 : Saute-mouton

Message par C.Ret »

Bon, l'idée de détecter les "bloquages" était bonne.

Voici une nouvelle version du jeu du Saute-Mouton pour SHARP PC-1211, mais qui cette fois sait jouer et résoudre le problème.
Ce qui fait que si l'utilisateur fait une erreur, le Pocket l'indique au joueur.
Celui-ci peut alors tenter de prendre la fuite pour échapper aux courroux des bergers Jean-Pierre et Père Denis !

Le jeu fonctionne de la même manière, il y plus de moutons dans les troupeaux. En fait l'astuce est de n'avoir qu'un seul espace libre, sinon la résolution est trop lente sur ce Pocket.
A chaque tour, le joueur peut soit jouer une position, soit taper directement sur la touche [ENTER] pour laisser son assistant électronique décider du mouvement à opérer.

Programme:

Code : Tout sélectionner

10 A=10,B=A,C=A,D=A,E=11,F=12,G=F,H=F,I=F,J$="^#",K$="  ",L$="∏^",N=0,P=4,Q=5
15 IF N BEEP 3:PRINT "VOUS GAGNEZ EN ";N;"CPS":IF MN<=MM LET M=N
20 "=" PRINT USING "###";A$(A);A$(B);A$(C);A$(D);A$(E);A$(F);A$(G);A$(H);A$(I);N;M:INPUT "M.POS ";P
25 IF (P<1)+(P>9) PAUSE "ENTREZ POSITION 1 - 9":GOTO 20
30 S=Q-P:IF S=0 PAUSE "PAS DE MOUTON ICI !":GOTO 20
35 N=N+1:IF (ABS S>2)+(A(P)<>11-SGN S) BEEP 1:PAUSE "SAUT IMPOSSIBLE !":GOTO 20
40 A(Q)=A(P),A(P)=11,Q=P,P=0,R=-2: IF A=12 IF A=B IF B=C IF C=D IF E=10 GOTO 15
45 FOR S=Q-2 TO Q+2:T=-1:IF (S<1)+(S>9)+(S=Q) GOTO 85
50 IF A(S)<>11+SGN (S-Q) GOTO 85  
55 U=1,V=-1:IF S>1 IF S<9 IF (A(S-1)=12)+(S=Q+1)) IF (A(S+1)=10)+(S=Q-1) GOTO 80
60 IF S>1 LET U=A(S-1)=10:IF S>2 IF A(S-2)=10 LET U=U+1
70 V=1:IF S<9 LET V=A(S+1)=12:IF S<8 IF A(S+2)=12 LET V=V+1
80 T=UV:IF T>R LET R=T,P=S
85 NEXT S:IF R=0 BEEP 2:PRINT "DESOLE:SITUATION SANS ISSUE !"
90 GOTO 20
Lignes 10 à 35 gestion du jeu (comme pour la version précèdente).
Lignes 40 à 90 analyse du jeu et détermination de la position P à jouer et de son risque R (R=0 c'est mal parti, R= 1 ou 2 ça roule, -1 c'est mort)

Variables:

Code : Tout sélectionner

A - I:  Positions  10 ="∏^"  11 ="  "  12="^#" 
J$ 10:  "∏^"
K$ 11:  "  "
L$ 12:  "^#"
M    :  Minimum coups partie gagnée /
N    :  Nombre de coups partie en cours /
P    :  Position jouée / Position à jouer
Q    :  Positon de l'espace libre         ( seule position où A(Q)=10 )
R    :  / score record position P         (R=-1 si bloqué, R=(0 bientôt bloqué, 1 ou 2 déplacement possible) 
S    :  Sens du saut / position scannée   (S=-2 -1 +1 +2 / Q-2 Q-1 Q+1 Q+2)
T    :  / Score total position scannée    (T=U*V)
U    :  / position non blocquée à gauche  (U=0 blocage à gauche)    
V    :  / position non blocquée à droite  (V=0 blocage à droite)
Utilisation:
Lancer une nouvelle partie à l'aide de la commande RUN
DEF- [ = ] permet d'afficher la situation.
pressez [ENTER] pour afficher le prompt MVT.POS _ et saisir une position à jouer (ou non pour jouer la position déterminée par l'ordi-poche)

Code : Tout sélectionner

RUN [ENTER]
∏^∏^∏^∏^  ^#^#^#^#  0  0  [ENTER] MVT.POS 3_[ENTER]
DESOLE: situation sans issue !"                         [ENTER]
∏^∏^  ∏^∏^^#^#^#^#  1  0  
Bon, je vous laisse, je dois traverser TORCY avec mes deux troupeaux pour me rendre aux Pokéticaires.
En plus c'est l'heure de pointe !!
Modifié en dernier par C.Ret le 06 oct. 2017 23:09, 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.
Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1602
Enregistré le : 27 oct. 2010 20:46

Re: Un pot commun pour toutes les machines n°3 : Saute-mouton

Message par Gilles59 »

!!!! spoiler !!!!

La solution avec 4+4 moutons sur FX603P

http://www.dailymotion.com/video/x63j9wp
Casio FX-502P /602P / 603P / FX180P+ / FX4000P / TI57 / TI66 / TI74 Basicalc / TI95 Procalc / HP12C / HP15C LE / DM41L / HP 30B / HP39GII / HP 48SX USA / 49G / 49g+ / 50G / 50G NewRPL / HP Prime / Oric 1 / Amstrad CPC 6128+ CM14 et MM12 / Alice 32
Avatar du membre
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3404
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: Un pot commun pour toutes les machines n°3 : Saute-mouton

Message par C.Ret »

OH! Zut, j'avais pas vu que je spoile. Je Retire le paragraphe en question.

En tout cas, la version sur CASIO Fx-603p est bien plus rapide. Le SHARP met du temps à analyser la situation !
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.
Répondre

Retourner vers « Tous les Pockets »