Poster un nouveau sujet Poster une réponse
Un jeu où il faut trouver un nombre.
Auteur Message
JarasimTI82



Autorisation : Membre
Nb de messages : 1
Inscrit le : Dim 05 Oct 2014, 15:17
Posté le : Dim 05 Oct 2014, 15:53   Citer 

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 winkle.gif

 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Dim 05 Oct 2014, 17:36   Citer 

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.
http://tout82.free.fr/forum/sujet.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.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
polo
Invité
Posté le : Ven 30 Oct 2015, 15:59   Citer 

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

  Haut de page Bas de page 
 
Mingerton



Autorisation : Membre
Nb de messages : 504
Inscrit le : Ven 07 Déc 2012, 20:09
Posté le : Ven 30 Oct 2015, 17:44   Citer 

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



----------------------
Mes articles
Mes programmes en ligne (je termine peu de projets)

Guide traduction Algo-Basic, par Linkakro
Catalogue des fonctions 82/83/84 FR/EN
 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse





  Powered by Fire-Soft-Board v1.0.10 © 2004 - 2025 Groupe FSB
Page générée en 9 requêtes
BlackOne par Grimmlink