Un pot commun a toutes les machines n°1 : Le jeu d'Inversion

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

Re: Un pot commun a toutes les machines n°1 : Le jeu d'Inver

Message par Gilles59 »

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
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
Paul Tergeist
Fonctionne à 9600 bauds
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

Message par Paul Tergeist »

Trop géniale ta vidéo, c'est vrai que les animations sont ludiques...Chapeau Gilles!.
cgh
Fonctionne à 2400 bauds
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

Message par cgh »

Gilles59 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
Super la video. La 602P est quand meme une machine rapide :-D

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
Avatar du membre
Paul Tergeist
Fonctionne à 9600 bauds
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

Message par Paul Tergeist »

En fait je suis en train de me dire qu'avec ses animations le programme "inversion"
de Gilles fait aussi "diversion".
Avatar du membre
C.Ret
Fonctionne à 9600 bauds
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

Message par C.Ret »

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:).

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:  │ 
└───────────────────────┘  └───────────────────────┘  └───────────────────────┘  └───────────────────────┘

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 ]

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.
Avatar du membre
Paul Tergeist
Fonctionne à 9600 bauds
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

Message par Paul Tergeist »

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.
Avatar du membre
C.Ret
Fonctionne à 9600 bauds
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

Message par C.Ret »

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.
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 a toutes les machines n°1 : Le jeu d'Inver

Message par Gilles59 »

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.
Comme toi Paul... J'utilise très peu HALT et CONT.
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
Avatar du membre
C.Ret
Fonctionne à 9600 bauds
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

Message par C.Ret »

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 !

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 jouer une nouvelle partie saisir la difficulté et exécuter :KIBUR:
Pour inverser les derniers chiffre, saisir le nombre de chiffre est appuyer sur :PLAY:
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.
Avatar du membre
Paul Tergeist
Fonctionne à 9600 bauds
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

Message par Paul Tergeist »

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 !
Ben moi j'aime bien comme ça. C'est original, ça change et l'idée de "rester dans le programme"
un peu comme avec R/S alors que je suis en RPL me plait bien.
cgh
Fonctionne à 2400 bauds
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

Message par cgh »

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.

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
Ce fut mon premier programme sur le HP-75C ;-)
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
Avatar du membre
Paul Tergeist
Fonctionne à 9600 bauds
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

Message par Paul Tergeist »

Ma version pour HP71B qui est quand même beaucoup moins belle... :D

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
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 a toutes les machines n°1 : Le jeu d'Inver

Message par dprtl »

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 :

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);
} 
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) :

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);
}
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 :

Code : Tout sélectionner

0.1
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 :

Code : Tout sélectionner

 2501643789
 0987654321 <- positions
Permute a partir de ?7
 2509873461 <= 2501643789
 0987654321 <- positions
Permute a partir de ?_
Certes, la PB-2000C n'est pas très rapide, mais au moins elle est belle :D
cgh
Fonctionne à 2400 bauds
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

Message par cgh »

dprtl a écrit :Voici ci-dessous ma version du jeu d'inversion pour la Casio PB-2000C.
Super ! Merci dptrl. C"est sympa de voir des programmes pour PB-2000C :-D
dprtl a écrit :Certes, la PB-2000C n'est pas très rapide, mais au moins elle est belle :D
Le PC-1211 (le jeu est issu de son manuel d'applications) etait bien lent, lui aussi. Mais c'etait le premier...

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
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 a toutes les machines n°1 : Le jeu d'Inver

Message par dprtl »

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 :
  • * '->' 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)
Le programme pour FX-4000P s'écrit tout sur la même ligne :

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&
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 :

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]
10 coups
Répondre

Retourner vers « Tous les Pockets »