Autorisation : Membre
Nb de messages : 2
Inscrit le : Mar 09 Déc 2014, 16:52
Posté le : Mar 09 Déc 2014, 17:18
Bonjour, je suis MisterSlab, nouveau sur ce forum,
Je propose aujourd'hui un des premiers programme créé seul. Le principe n'est pas nouveau.
Ce jeu se présente sous la forme de deux carrés, un bon et un mauvais. Le but est de trouver le bon. Plus vous réussissez, plus votre score augmente, mais une seule mauvais réponse et le jeu se termine. Oui, ce jeu est impossible
Je vous laisse dire votre avis ou de dire ce que vous auriez fais à ma place, dans les commentaires
Voici le programme : CARRE
Code
EffEcr
EffDessin
AxesNAFF
Lbl 0
Menu("2-CARRE :","JOUER",1,"QUITTER",3
Lbl 3
EffEcr
Stop
Lbl 1
EffEcr
Output(1,1,"*APPUYER SUR LA TOUCHE DESTINE ALA CASE [9espaces]*UNE ERREUR ET [2espaces] LE JEU FINI [5espaces]*AYEZ LE PLUS [3espaces] GROS SCORE")
Pause
EffEcr
0->S
Lbl 2
Ligne(-7,6,-1,6
Ligne(-1,6,-1,-6
Ligne(-1,-6,-7,-6
Ligne(-7,-6,-7,6
Ligne(7,-6,7,6
Ligne(1,-6,7,-6
Ligne(1,6,1,-6
Ligne(7,6,1,6
Texte(30,20,"1
Texte(60,30,"2
Texte(5,5,"TROUVER LE BON CARRE :
Pause
entAléat(1,2)->C
Input"Carre :",A
If A=C
Then
S+1->S
Goto 2
Else
Goto 4
Lbl 4
EffEcr
Output(1,1,"====PERDU !!====
Output(3,1,"SCORE : "
Output(3,9,S
Output8,1,"================" //16 égale
Pause
EffEcr
Goto 2
PS : Désolé si il y a quelques fautes
---------------------- La TI-82 Stats.fr , c'est la vie
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mar 09 Déc 2014, 18:14
Code
If A=C
Then
S+1->S
Goto 2
Else
Goto 4
Lbl 4
Tu as goto 2 dans une alternative, c'est source de fuite mémoire à chaque exécution. Tu n'as même jamais de End.
Le Goto 4 est inutile puisque le Lbl 4 est juste après.
Il y a du travail algorithmique à refaire.
Mes solutions ont l'inconvénient d'incrémenter S à chaque fois même en cas de mauvaise réponse, mais un test de plus ou une initialisation décalée pour l'éviter ne fait pas de mal.
Tu dessines les carrés exactement identiques à chaque fois que tu poses la question et c'est dommage d'y perdre du temps.
Il suffit d'utiliser la commande AffGraph pour afficher le graphe.
Tu pourrais aussi utiliser le mode Horiz pour ne pas avoir à changer d'écran lors de la saisie. Mais il faudra modifier les dessins actuels.
Tu peux calculer l'aléatoire dans la condition plutôt que le stocker dans C.
Remet le score S à zéro juste après le début de la boucle infinie.
Tu peux mettre le Lbl 3 à la fin.
Code
EffEcr
EffDessin
AxesNAFF
Lbl 0
Menu("2-CARRE :","JOUER",1,"QUITTER",3
Lbl 1
EffEcr
Output(1,1,"*APPUYER SUR LA TOUCHE DESTINE ALA CASE [9espaces]*UNE ERREUR ET [2espaces] LE JEU FINI [5espaces]*AYEZ LE PLUS [3espaces] GROS SCORE")
Pause
EffEcr
Ligne(-7,6,-1,6
Ligne(-1,6,-1,-6
Ligne(-1,-6,-7,-6
Ligne(-7,-6,-7,6
Ligne(7,-6,7,6
Ligne(1,-6,7,-6
Ligne(1,6,1,-6
Ligne(7,6,1,6
Texte(30,20,"1
Texte(60,30,"2
Texte(5,5,"TROUVER LE BON CARRE :
While 1 // tant que vrai // boucle infinie
-1->S
Repeat A-entAléat(1,2 // quitte lorsque la réponse est mauvaise
AffGraph
Pause
Input "Carre :",A
S+1->S
End // fin du Repeat
EffEcr
Output(1,1,"====PERDU !!====
Output(3,1,"SCORE : "
Output(3,9,S
Output8,1,"================" //16 égale
Pause
EffEcr
End // fin de la boucle infinie
Lbl 3
---------------------- 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)