Un pot commun a toutes les machines n°1 : Le jeu d'Inversion
Modérateur : Politburo
Re: Un pot commun a toutes les machines n°1 : Le jeu d'Inver
Ma version 602P affiche bien un zéro en premier grâce à ses possibilités alphanumériques
Une petit vidéo (qui fait tourner la tête :O )
http://www.dailymotion.com/video/xz16jp ... -1816_tech
Ca reprend le premier exemple de l'OP n°3
Une petit vidéo (qui fait tourner la tête :O )
http://www.dailymotion.com/video/xz16jp ... -1816_tech
Ca reprend le premier exemple de l'OP n°3
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
- Paul Tergeist
- Fonctionne à 9600 bauds
- Messages : 2417
- Enregistré le : 15 oct. 2007 15:50
- Localisation : 3ème planète après le soleil
Re: Un pot commun a toutes les machines n°1 : Le jeu d'Inver
Trop géniale ta vidéo, c'est vrai que les animations sont ludiques...Chapeau Gilles!.
-
- Fonctionne à 2400 bauds
- Messages : 2143
- Enregistré le : 30 août 2011 12:23
- Localisation : Vous êtes ici -> .
Re: Un pot commun a toutes les machines n°1 : Le jeu d'Inver
Super la video. La 602P est quand meme une machine rapideGilles59 a écrit :Ma version 602P affiche bien un zéro en premier grâce à ses possibilités alphanumériques
Une petit vidéo (qui fait tourner la tête :O )
http://www.dailymotion.com/video/xz16jp ... -1816_tech
Ca reprend le premier exemple de l'OP n°3
J'avais une version ou la 0 etait affiche en debut, mais pour cela je divisais par 1E9. On aurait donc 0.987654321. Mais sur les petites machines, je l'ai enleve.
En fait, en ecrivant ce post, je me dis que je devrais le laisser en permance. Bon le premier chiffre serait suivi d'un . et puis en ce mettant en FIX 9, on aurait ainsi les 10 chiffres dans tous les cas.
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
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
- Paul Tergeist
- Fonctionne à 9600 bauds
- Messages : 2417
- Enregistré le : 15 oct. 2007 15:50
- Localisation : 3ème planète après le soleil
Re: Un pot commun a toutes les machines n°1 : Le jeu d'Inver
En fait je suis en train de me dire qu'avec ses animations le programme "inversion"
de Gilles fait aussi "diversion".
de Gilles fait aussi "diversion".
- C.Ret
- Fonctionne à 9600 bauds
- Messages : 3419
- Enregistré le : 31 mai 2008 23:43
- Localisation : N 49°22 E 6°10
Re: Un pot commun a toutes les machines n°1 : Le jeu d'Inver
Je n'ai pas sous la main mon receuil de programme pour SHARP PC-1211.
En attendant, voici une petit version sans prétention pour HP-28S, ais qui n'utilise aucune animation ou même la moindre capture de touche ( KEY ).
Le programme utilise trois modules,
KIBUR pour initialiser un nouveau mélange (on saisi une difficulté qui sert à générer le mélange)
RSTRT pour recommencer avec le même mélange et ainsi tenter de battre son score précèdant.
MIX et GOAL sont là pour simplifier la structure :
MIX permute les n (n pris au niveau 1:) derniers chiffres du nombre au niveau 2:
GOAL est simplement 1234567890
A chaque pas, l'écran affiche le mémlange initial (niveau 3:), le nombre de coups (niveau 2:) et le nombre de dix chiffre (niveau 1:).
Pour jouer le coup suivant, il suffit de saisir le nombre n de chiffre que l'on veut permuter est de fair [shit][CONT]
Une fois GOAL obtenu le HP-28S sonne et affiche le nombre de coups.
On peux alors relancer le même mélange en appuyant simplement sur [ RSTRT ]
On peux aussi teter son propre mélange en le saisissant et en faisant DUP [ RSTRT ]
En attendant, voici une petit version sans prétention pour HP-28S, ais qui n'utilise aucune animation ou même la moindre capture de touche ( KEY ).
Le programme utilise trois modules,
KIBUR pour initialiser un nouveau mélange (on saisi une difficulté qui sert à générer le mélange)
RSTRT pour recommencer avec le même mélange et ainsi tenter de battre son score précèdant.
MIX et GOAL sont là pour simplifier la structure :
MIX permute les n (n pris au niveau 1:) derniers chiffres du nombre au niveau 2:
GOAL est simplement 1234567890
A chaque pas, l'écran affiche le mémlange initial (niveau 3:), le nombre de coups (niveau 2:) et le nombre de dix chiffre (niveau 1:).
Code : Tout sélectionner
Entrer difficulté [KIPUR] 8 [shif][CONT] 7 [shif][CONT]
┌───────────────────────┐ ┌───────────────────────┐ ┌───────────────────────┐ ┌───────────────────────┐
│ │ │ o │ │ o │ │ o │
│2: │ │3: 6790123458│ │3: 6790123458│ │3: 6790123458│
│1: │ │2: 1│ │2: 2│ │2: 3│
│10_ │ │1: 6790123458│ │1: 6785432109│ │1: 6789012345│
│RSTRT:KIBUR:MIX:GOAL: │ │RSTRT:KIBUR:MIX:GOAL: │ │RSTRT:KIBUR:MIX:GOAL: │ │RSTRT:KIBUR:MIX:GOAL: │
└───────────────────────┘ └───────────────────────┘ └───────────────────────┘ └───────────────────────┘
5 [shift][CONT] 10 [shift][CONT] 5 [shift][CONT] [RSTRT]
┌───────────────────────┐ ┌───────────────────────┐ ┌───────────────────────┐ ┌───────────────────────┐
│ o │ │ o │ │ │ │ o │
│3: 6790123458│ │3: 6790123458│ │3: │ │3: 6790123458│
│1: 4│ │2: 5│ │2: 6790123458│ │2: 1│
│10_ 6789054231│ │1: 1234509876│ │1: 5│ │1: 6790123458│
│RSTRT:KIBUR:MIX:GOAL: │ │RSTRT:KIBUR:MIX:GOAL: │ │RSTRT:KIBUR:MIX:GOAL: │ │RSTRT:KIBUR:MIX:GOAL: │
└───────────────────────┘ └───────────────────────┘ └───────────────────────┘ └───────────────────────┘
Une fois GOAL obtenu le HP-28S sonne et affiche le nombre de coups.
On peux alors relancer le même mélange en appuyant simplement sur [ RSTRT ]
On peux aussi teter son propre mélange en le saisissant et en faisant DUP [ RSTRT ]
Code : Tout sélectionner
GOAL:
1234567890
KIBUR:
«
GOAL
1 ROT START
10 RAND * CEIL MIX
NEXT
0 RSTRT
»
RSTRT:
«
0 * OVER
DO
SWAP 1 + SWAP
HALT MIX
UNTIL
DUP GOAL ==
END
3 INV ^ .1 BEEP
»
MIX:
« -> n
« 0
1 n START
SWAP 10 MOD
LAST / IP
ROT 10 * ROT +
NEXT
SWAP n ALOG * +
»
»
Modifié en dernier par C.Ret le 16 avr. 2013 08:12, 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.
- Paul Tergeist
- Fonctionne à 9600 bauds
- Messages : 2417
- Enregistré le : 15 oct. 2007 15:50
- Localisation : 3ème planète après le soleil
Re: Un pot commun a toutes les machines n°1 : Le jeu d'Inver
Excellent C.Ret !
Je ne pense jamais à utiliser CONT et pourtant ça a l'air très pratique.
Merci pour cette version pour la HP28.
Je ne pense jamais à utiliser CONT et pourtant ça a l'air très pratique.
Merci pour cette version pour la HP28.
- C.Ret
- Fonctionne à 9600 bauds
- Messages : 3419
- Enregistré le : 31 mai 2008 23:43
- Localisation : N 49°22 E 6°10
Re: Un pot commun a toutes les machines n°1 : Le jeu d'Inver
L'utilisation du HALT est équivalent à STOP ou R/S sur les RPN. C'est un peu l'interface du pauvre.
L'avantage est que la pile s'affiche et que l'on peut saisir ce que l'on veux.
P.S.: attention, il manquait un '*' dans la copie du code de RSTRT, je viens d'éditer.
L'avantage est que la pile s'affiche et que l'on peut saisir ce que l'on veux.
P.S.: attention, il manquait un '*' dans la copie du code de RSTRT, je viens d'éditer.
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.
Re: Un pot commun a toutes les machines n°1 : Le jeu d'Inver
Comme toi Paul... J'utilise très peu HALT et CONT.Paul Tergeist a écrit :Excellent C.Ret !
Je ne pense jamais à utiliser CONT et pourtant ça a l'air très pratique.
Merci pour cette version pour la HP28.
Je ne sais pas pourquoi mais je n'ai jamais trouvé çà 'naturel' en RPL.
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
- C.Ret
- Fonctionne à 9600 bauds
- Messages : 3419
- Enregistré le : 31 mai 2008 23:43
- Localisation : N 49°22 E 6°10
Re: Un pot commun a toutes les machines n°1 : Le jeu d'Inver
Je suis du mêm avis que Gilles, en RPL en principe on a pas (sauf lors d'un débuggage) à utiliser HALT et [f]-CONT. Si l'on a bien programmer la chose, la suite du programme doit s'opérer à l'aide de la pression sur une touche (généralement du soft-MENU).
On économise des soucis, la nécessiter de KILLer les programme en cours, économise la pression sur [shift] etc...
Je vais donc revoir ma copie ce soir afin de proposer quelque chose de plus convivial !
Pour jouer une nouvelle partie saisir la difficulté et exécuter :KIBUR:
Pour inverser les derniers chiffre, saisir le nombre de chiffre est appuyer sur LAY:
A tout moment presser sur :RSTRT: pour recommencer avec le même mélange.
Le menu indique les options possible ainsi que le nombre de coups joué et le record (pour le mélange en cours).
En attendant, voici une version pour HP-41C :
Initialisation :
Saisir le programme.
Mettre un semence pour le générateur pseudo-aléatoire en R03. Se mettre RADian.
Mettre le nombre 1234567890 dans le registre R01.
Utilisations:
Donner un niveau de difficulté, et exécuter le programme.
A chaque pas le melange est afficher. Saisir le nombre de chiffre à inverser (de 1 à 10) et presser sur R/S
EN fin de partie, la HP-41C affiche le nombre de coups.
On économise des soucis, la nécessiter de KILLer les programme en cours, économise la pression sur [shift] etc...
Je vais donc revoir ma copie ce soir afin de proposer quelque chose de plus convivial !
Code : Tout sélectionner
GOAL:
1234567890
RSTRT:
« DROP2 0 OVER KMENU »
KIBUR:
« GOAL 1 3 PICK START 1 9 RAND * + CEIL MIX NEXT 0 OVER KMENU »
PLAY:
« MIX ROT 1 + ROT ROT KMENU »
KMENU:
« IF DUP GOAL == THEN OVER 5 ROLL IF DUP2 < THEN "New Record !" 4 DISP 1000 .2 BEEP
1200 .1 BEEP END MIN 4 ROLLD 980 .2 BEEP CLMF {} ELSE { PLAY } END { RSTRT
KIBUR } + 3 PICK + 5 PICK + MENU »
MIX:
« -> n « IF n 0 > THEN 0 1 n 10 MIN START SWAP 10 MOD LAST / IP ROT 10 * ROT + NEXT SWAP n ALOG * + END » »
Pour inverser les derniers chiffre, saisir le nombre de chiffre est appuyer sur LAY:
A tout moment presser sur :RSTRT: pour recommencer avec le même mélange.
Le menu indique les options possible ainsi que le nombre de coups joué et le record (pour le mélange en cours).
En attendant, voici une version pour HP-41C :
Initialisation :
Saisir le programme.
Mettre un semence pour le générateur pseudo-aléatoire en R03. Se mettre RADian.
Mettre le nombre 1234567890 dans le registre R01.
Utilisations:
Donner un niveau de difficulté, et exécuter le programme.
A chaque pas le melange est afficher. Saisir le nombre de chiffre à inverser (de 1 à 10) et presser sur R/S
EN fin de partie, la HP-41C affiche le nombre de coups.
Code : Tout sélectionner
001 LBL "KIBUR //
STO 00 RCL 01
004 LBL 00
9 XEQ 05 * 2 + INT XEQ 03 DSE 00 GTO 00
014 LBL 01 // Main loop
ISG 00 FIX 0 STOP XEQ 03 RCL 01 X=Y ? GTO 02
X<>Y GTO 01
024 LBL 02 // EOP : show score/counter
RCL 00 RTN
027 LBL 03 // Reverse x tail-digits
STO 02 .1 0 R^
032 LBL 04
10 ST* Z ST* T / FRC ST+ Y X<> L INT DSE 02 GTO 04
10 ST* Z R^ * * + RTN
050 LBL 05 // RAND Generator
RCL 03 PI X^2 E^X * 5 COS + FRC STO 03
061 END
Registries:
R00 : difficulty / counter
R01 : goal 1234567890
R02 : nb of reversions
R03 : RAND generator seed
Labels:
LBL 00 : Initial mixed-up loop. LBL 03 : reverse tail-digits sub-routine.
LBL 01 : Main play loop LBL 04 : reverse tail digits loop.
LBL 02 : End of program. LBL 05 : RAND generator sub-routine.
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.
- Paul Tergeist
- Fonctionne à 9600 bauds
- Messages : 2417
- Enregistré le : 15 oct. 2007 15:50
- Localisation : 3ème planète après le soleil
Re: Un pot commun a toutes les machines n°1 : Le jeu d'Inver
Ben moi j'aime bien comme ça. C'est original, ça change et l'idée de "rester dans le programme"C.Ret a écrit :Je suis du mêm avis que Gilles, en RPL en principe on a pas (sauf lors d'un débuggage) à utiliser HALT et [f]-CONT. Si l'on a bien programmer la chose, la suite du programme doit s'opérer à l'aide de la pression sur une touche (généralement du soft-MENU).
On économise des soucis, la nécessiter de KILLer les programme en cours, économise la pression sur [shift] etc...
Je vais donc revoir ma copie ce soir afin de proposer quelque chose de plus convivial !
un peu comme avec R/S alors que je suis en RPL me plait bien.
-
- Fonctionne à 2400 bauds
- Messages : 2143
- Enregistré le : 30 août 2011 12:23
- Localisation : Vous êtes ici -> .
Re: Un pot commun a toutes les machines n°1 : Le jeu d'Inver
Ma version pour HP-75C. Il fonctionne aussi sur HP-71B, mais dans ce cas, il faut remplacer "Mouvement" par "Mouv." (ligne 60) pour ne pas depasser la capacite de l'affichage.
Ce fut mon premier programme sur le HP-75C
Code : Tout sélectionner
10 RANDOMIZE @ N=1234567890 @ C=0
20 IMAGE "N=",10
30 FOR V=RND*20+9 TO 0 STEP -1
40 N=FNI(N,IP(RND*9+2))
50 NEXT V
60 DISP USING 20 ; N; @ INPUT " Mouvement:";P
70 C=C+1 @ N=FNI(N,P)
80 IF N#1234567890 THEN 60
90 BEEP @ DISP "Nombre d'essais ";C @ END
1000 DEF FNI(N,V)
1010 M=FP(N/10^V)*10^V @ N=IP(N/10^V)
1020 FOR I=1 TO V @ N=(N+FP(M/10))*10 @ M=IP(M/10) @ NEXT I
1030 FNI=N
1040 END DEF
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
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
- Paul Tergeist
- Fonctionne à 9600 bauds
- Messages : 2417
- Enregistré le : 15 oct. 2007 15:50
- Localisation : 3ème planète après le soleil
Re: Un pot commun a toutes les machines n°1 : Le jeu d'Inver
Ma version pour HP71B qui est quand même beaucoup moins belle...
Code : Tout sélectionner
10 ! A$:TDJ, N:NBRE DE COUPS
20 ! P:POSITION LETTRE, K$:TOUCHE
30 ! KIBUR
40 DESTROY ALL @ DELAY 1
50 DISP TAB(6);"* KIBUR *" @N=1 @ DELAY 0
60 A$="ABCDEFGHIJ" @ FOR I=1 TO 10
70 P=INT(RND*10+1) @ GOSUB "KIB"
80 NEXT I
90 DISP N;": ";A$
100 K$=KEY$ @ IF K$="" THEN 100
110 P=POS(A$,K$) @ IF P<1 THEN 100
120 N=N+1
130 GOSUB "KIB"
140 GOTO 90
150 'KIB':
160 IF P=10 THEN 210
170 IF P=1 THEN 220
180 A$=A$[P,P]&A$[2,P-1]&A$[1,1]&A$[P+1,10]
190 A$=A$[1,P-2]&A$[P+1,P+1]&A$[P,P]&A$[P-1,P-1]&A$[P+2,10]
200 GOTO 230
210 A$=A$[9,9]&A$[2,8]&A$[10,10]&A$[1,1] @ GOTO 230
220 A$=A$[1,1]&A$[10,10]&A$[3,9]&A$[2,2] @ GOTO 230
230 RETURN
- dprtl
- Fonctionne à 1200 bauds
- Messages : 463
- Enregistré le : 27 janv. 2013 00:26
- Localisation : Strasbourg
- Contact :
Re: Un pot commun a toutes les machines n°1 : Le jeu d'Inver
Voici ci-dessous ma version du jeu d'inversion pour la Casio PB-2000C. Celle-ci ne possède pas de générateur de nombres pseudo-aléatoires en ROM. Comme je n'ai toujours pas réparé mon FA-7, j'ai recopié le programme à la main. J'espère qu'il n'y a pas d'erreur !
Programme principal :
J'ai recopié la fonction rand() du manuel en espagnol "Introducción al Lenguaje de Programación C" . On peut nommer ce fichier "rand.c" ou "rand" (dans ce cas, la PB-2000C l'affiche en "rand . C" dans son menu) :
Un dernier petit fichier, que j'ai créé pour ne pas avoir à saisir la "seed" à la main, nommé "seed.dat" (affiché "seed .dat S" dans le menu), dont le contenu doit être aléatoire entre 0 et 1. Par exemple :
Cette "seed" va s'incrémenter à chaque appel de srand(), et ne sera pas perdue au prochain clear. C'est un peu comme une seed timer... sauf que la PB-2000C n'a pas de timer.
À l'usage, ça donne ce style d'affichage :
Certes, la PB-2000C n'est pas très rapide, mais au moins elle est belle
Programme principal :
Code : Tout sélectionner
#include "rand"
main(){
char s[11],r[11],c;
int i,j,n,t;
srand();
for (i=0;i<10;i++) s[i]=47;
s[10]=0;
printf("Combinaison de depart :\n");
for (i=0;i<10;i++) {
j=(int)(rand()*10);
while (s[j]>47) {
j++;if(j>9)j=0;
}
s[j]=i+48;printf(" %s\n",s);
}
n=0;
do{
strcpy(r,s);
printf(" 0");
for(i=9;i>0;i--)
printf("%c",i+48);
printf(" <- positions\nPermute a partir de ?");
scanf("%d",&t);
if (t<1 || t>9) t=10;
n++;j=9;
for (i=(10-t);i<j;i++) {
c=s[i];s[i]=s[j];s[j--]=c;
}
printf(" %s <= %s\n",s,r);
i=0;
while (i<9 && s[i]==(i+49))
i++;
}while(i<9);
printf("Solution en %d coups\n",n);
}
Code : Tout sélectionner
int _seed1=1000,_seed2=12000,_seed3=28000;
double rand() {
double r;
_seed1=(_seed1%177)*171-(_seed1/177)*2;
if (_seed1<0)_seed1+=30269;
_seed2=(_seed2%176)*172-(_seed2/176)*35;
if (_seed2<0)_seed2+=30307;
_seed3=(-seed3%178)*170-(_seed3/178)*63;
if (_seed3<0)_seed3+=30323;
r=_seed1/30269.0+_seed2/30307.0+_seed3/30323.0;
while (r>1.0) r-=1.0;
return r;
}
double srand() {
FILE *fic;
double seed;/* 0.0<seed<1.0 */
if((fic=fopen("seed.dat","r"))!=NULL) {
fscanf(fic,"%lf",&seed);
}
fclose(fic);
_seed1=seed*30000.0;
if(_seed1<30000)_seed1-=30000;
while(_seed1<0)_seed1+=30000;
_seed2=rand()*30000;
if(_seed2==0)_seed2=1;
_seed3=rand()*30000;
if(_seed3==0)_seed3=1;
fic=fopen("seed.dat","w");
seed+=0.001;if(seed>1)seed-=1;
fprintf(fic,"%lf\n",seed);
fclose(fic);
}
Code : Tout sélectionner
0.1
À l'usage, ça donne ce style d'affichage :
Code : Tout sélectionner
2501643789
0987654321 <- positions
Permute a partir de ?7
2509873461 <= 2501643789
0987654321 <- positions
Permute a partir de ?_
-
- Fonctionne à 2400 bauds
- Messages : 2143
- Enregistré le : 30 août 2011 12:23
- Localisation : Vous êtes ici -> .
Re: Un pot commun a toutes les machines n°1 : Le jeu d'Inver
Super ! Merci dptrl. C"est sympa de voir des programmes pour PB-2000Cdprtl a écrit :Voici ci-dessous ma version du jeu d'inversion pour la Casio PB-2000C.
Le PC-1211 (le jeu est issu de son manuel d'applications) etait bien lent, lui aussi. Mais c'etait le premier...dprtl a écrit :Certes, la PB-2000C n'est pas très rapide, mais au moins elle est belle
Bon, On attend maintenant la version LISP de l'AI-1000
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
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
- dprtl
- Fonctionne à 1200 bauds
- Messages : 463
- Enregistré le : 27 janv. 2013 00:26
- Localisation : Strasbourg
- Contact :
Re: Un pot commun a toutes les machines n°1 : Le jeu d'Inver
Pour ma version en LMS Casio FX-4000P, j'ai repris le même algorithme que CGH pour la FX-602P.
Les caractères spéciaux sont difficiles à rétrocéder sur un clavier de PC :
J'ai juste pris une petite liberté au Lbl 5, pour pouvoir entrer 0 (ou 10), pour swapper à partir de la position la plus à gauche. Le comportement est identique au programme pour PB-2000C (positions : 0987654321).
Exemple de partie :
10 coups
Les caractères spéciaux sont difficiles à rétrocéder sur un clavier de PC :
- * '->' correspond à l'affectation d'une variable (au dessus de H sur le clavier)
* '=>' est l'implication ([shift] [7])
* '<=' est le symbôle inférieur ou égal ([shift] [6])
* '&' est le triangle orange ([shift] [:])
* '^' c'est "x puissance y" (au dessus de K)
Code : Tout sélectionner
1234567890->B:B->Q:1->F:Int (Ran#*20+9)->E:
Lbl 7:E=0=>Goto 6:Int (Ran#*9+2)->A:Goto 9:
Lbl 1:E-1->E:Goto 7:
Lbl 6:0->E:0->F:
Lbl 5:B&?->A:A<=0=>10->A:Goto 9:
Lbl 0:1+E->E:B=Q=>Goto 4:Goto 5:
Lbl 9:B/10^A->B:Frac B->C:B-C->B:C*10^A->C:
Lbl 8:B*10->B:C/10->C:Frac C*10+B->B:Int C->C:Dsz A:Goto 8:F=0=>Goto 0:Goto 1:
Lbl 4:E&
Exemple de partie :
Code : Tout sélectionner
3269057184 [EXE] 3 [EXE]
3269057481 [EXE] 0 [EXE]
1847509623 [EXE] 2 [EXE]
1847509632 [EXE] 9 [EXE]
1236905748 [EXE] 2 [EXE]
1236905784 [EXE] 7 [EXE]
1234875096 [EXE] 4 [EXE]
1234876905 [EXE] 6 [EXE]
1234509678 [EXE] 3 [EXE]
1234509876 [EXE] 5 [EXE]