JarasimTI82 le 05/10/2014 à 15:53
Vous cherchez un jeu facile à recopier et qui fait passer le temps? Ce jeu est fait pour vous!
Le principe: la calculatrice créé un nombre et votre but est de le trouver. Le miens contient 3 niveaux et un compteur de coups!
Code: 0=zero, O=o majuscule, ->=stocker dans
Le programme:
Code
PROGRAM:FINDIT
:0->B
:Disp"NIVEAU: 1)FACILE"
:Disp" 2)MOYEN 3)DUR"
:Prompt L //on demande au joueur de choisir le level
:If L=1
:Then
:Disp"ENTRE UN NOMBRE"
:Disp"ENTRE 1 ET 10"
:entAléat(1,10)->A
:Goto Z
:Else
:If L=2
:Then
:Disp"ENTRE UN NOMBRE"
:Disp"ENTRE 1 ET 100"
:entAléat(1,100)->A
:Goto Z
:Else
:If L=3
:Then
:Disp"ENTRE UN NOMBRE"
:Disp"ENTRE 1 ET 1000"
:entAléat(1,1000)->A
:Goto Z
:Lbl Z
:Prompt N
:If N>A
:Then
:Disp "C EST MOINS"
:B+1->B //le compteur de tours
:Goto Z
:Else
:If N<A
:Then
:Disp"C EST PLUS"
:B+1->B
:Goto Z
:Else
:If N=A
:Then
:B+1->B
:Disp"****************" //16 * et * est le signe x
:Disp" GAGNE!"
:Disp B," COUPS"
:Disp" C ETAIT:",A
Voila, n'hésitez pas à l'améliorer et a le poster pour que ce jeu
Soit une oeuvre collective

linkakro le 05/10/2014 à 17:36
J'ai ajouté une paire de balises code. Utilises-en la prochaine fois.
Encore ce jeu. Et je l'optimiserai encore. Il y a aussi une erreur cette fois ci.
Si tu utilisais une autre variable que la lettre O, alors tu n'aurais plus besoin de montrer la différence entre o et zéro.
Ton usage de Goto Z est incompatible avec l'algorithmie.
https://tout82.pages-perso.fre[...].php?sujet=2757
Le système sature progressivement. C'est tolérable dans une certaine limite mais moins on abuse et mieux c'est.
Placer l'un derrière l'autre Goto Z et Lbl Z est inutile. Le dernier Lbl Z peut être lu sans le Goto Z juste avant.
Les branchements/alternatives se font de cette manière. Les espaces d'indentation au début de lignes ne sont qu'esthétiques pour mieux relire sur le forum.
Code
If condition
Then
// cas 1
Else
If condition 2
Then
// cas 2
Else
// par défaut
End
End
//une seule action dedans
If condition
Disp "1 ACTION"
Lorsque tu soumets Goto à une condition, arrange toi autant que possible pour que ce soit avec un If mais aucun Then/Else/End. Ainsi il n'y a pas de ralentissement.
Code
:0->B
:Disp"NIVEAU: 1)FACILE"
:Disp" 2)MOYEN 3)DUR"
:Prompt L //on demande au joueur de choisir le level
:If L=1
:Then
:Disp"ENTRE UN NOMBRE"
:Disp"ENTRE 1 ET 10"
:entAléat(1,10)->A
:Else
:If L=2
:Then
:Disp"ENTRE UN NOMBRE"
:Disp"ENTRE 1 ET 100"
:entAléat(1,100)->A
:Else
:If L=3
:Then
:Disp"ENTRE UN NOMBRE"
:Disp"ENTRE 1 ET 1000"
:entAléat(1,1000)->A
:Else
:Disp "ERREUR"
:Stop
:End
:End
:End
:Lbl Z
:Prompt N
:If N>A
:Then
:Disp "C EST MOINS"
:B+1->B //le compteur de tours
:End
:If N<A
:Then
:Disp "C EST PLUS"
:B+1->B
:End
:If N=A
:Then
:B+1->B
:Disp"****************" //16 * et * est le signe x
:Disp" GAGNE!"
:Disp B," COUPS"
:Disp" C ETAIT:",A
:Stop
:End
:Goto Z
Code
:EffEcr // efface l'écran, ainsi je sais quelle ordonnée donner au Output
:0->B
:Disp"NIVEAU: 1)FACILE"
:Disp" 2)MOYEN 3)DUR"
:Prompt L
:Disp"ENTRE UN NOMBRE"
:Disp"ENTRE 1 ET"
:Output(4,12,10^L) // calculer la borne avec le niveau et afficher
:entAléat(1,10^L)->A
:Repeat N=A
:Prompt N
:If N>A
:Disp "C EST MOINS"
:If N<A
:Disp "C EST PLUS"
:B+1->B // maintenant compte tout le temps y compris au tour gagnant
:End
:B+1->B
:Disp"****************"
:Disp" GAGNE!"
:Disp B," COUPS"
:Disp" C'ETAIT:",A // apostrophe dans le menu angle
Ensuite enlève les guillemets et parenthèses en fin de ligne et devant sto->, ce sera toujours fonctionnel mais allégé malgré la perte de rigueur.
polo le 30/10/2015 à 15:59
voici comment je l'ai décliné pour mes élèves (je leur ai donné ce travail à faire en DM pendant les vacances
Code
PrgmMYSTERE
:EffEcr // efface l'écran, ainsi je sais quelle ordonnée donner au Output
:0->B
:Disp"L'ENTIER MYSTERE" // apostrophe dans le menu angle
:Disp"NIVEAU :"
:Disp"1)FACILE"
:Disp" 2)MOYEN"
:Disp" 3)DIFFICILE"
:Input "CHOIX ",L
:EffEcr // efface l'écran
10^(L+1)->M // calculer la borne avec le niveau et afficher
:Disp"ENTRE UN ENTIER"
:Disp"DE 1 A ", M
:Disp"----------------" // 16 signes "-"
:entAléat(1,M)->A
:Repeat N=A
:Input "NOMBRE ",N
:B+1->B // maintenant compte tout le temps y compris au tour gagnant
:If N>A
:Then
:Disp "TROP GRAND !"
:End
:If N<A
:Then
:Disp "TROP PETIT !"
:End
:End
:Disp"----------------" // 16 signes "-"
:Disp"GAGNE !"
:Disp "EN ",B," COUPS"
:Disp" C'ETAIT :" ,A // apostrophe dans le menu angle
Je dois encore sécuriser le choix du niveau (on doit ne pas pouvoir saisir autre chose que 1, 2 ou 3...)
Mingerton le 30/10/2015 à 17:44
Tu peux simplifier en :
Code
ClrHome
DelVar BDisp "L'ENTIER MYSTERE","NIVEAU :","1)FACILE","2)MOYEN","3)DIFFICILE
Input "CHOIX:",L
ClrHome
E(L+1->M //le E de l'exposant, sur le clavier
Disp "ENTRE UN ENTIER
Input "DE 1 A ",M
Disp "----------------
randInt(1,M->A
Repeat N=A
Input "NOMBRE:",N
B+1->B
If N>A
Disp "TROP GRAND !
If N<A
Disp "TROP PETIT !
End
Disp "----------------","GAGNE !","EN",B,"COUPS","C'ETAIT",A