Poster un nouveau sujet Poster une réponse
[Jeu] Le plus ou moins
Auteur Message
Eightech



Autorisation : Membre
Nb de messages : 14
Inscrit le : Mar 09 Sep 2008, 22:45
Posté le : Mar 09 Sep 2008, 23:26   Citer 

Salut à tous winkle.gif

Alors avant tout je me présente, vu que c'est mon premier message sur le forum (et j'ai rien de mieux à foutre que de poster un jeu :p )

Je trouve que les communautés sur les TI sont trop rares et tombant sur celle-ci par hasard, j'ai décidé de commencer par contribuer à son expansion en vous passant un programme crée pendant un cours de SVT je crois.

Le jeu est un plus ou moins. L'ordinateur tire un nombre au hasard entre 1 et B et vous devez le trouver en un nombre d'essais limités. quand vous rentrez un nombre mauvais, l'ordinateur vous aide en vous indiquant si la solution est plus grande ou plus petite que le nombre entré.

Vous pouvez choisir la valeur de B (entre 100 et 1 million) ainsi que le nombre d'essais (entre 5 et 25). A vous de gérer la difficulté en maniant ces paramètres winkle.gif

Le jeu propose aussi un mode 2 joueurs, dans lequel un joueur choisi le nombre à trouver et l'autre doit le trouver.

Voici le code (en français car j'utilise une TI 82 Stats fr, mais si vous avez des questions dû à une autre version n'hésitez pas, idem si vous ne trouvez pas certaines fonctions winkle.gif )

PS : Tout ce que j'écrit précédé de deux slashs (//) sont des commentaires, il ne doivent pas être écrits dans votre TI, je les place pour vous aider à comprendre à quoi sert la partie du code commenté ^^

Nota : Le symbole != correspond au symbole "différent de" du menu test


Code

EffEcr
0->A
0->B
0->C
0->D
0->E
While D<1 ou D>5
Disp "DIFFICULTE" //Ici nous déterminerons B
Disp "1 : 1 A 100"
Disp "2 : 1 A 500"
Disp "3 : 1 A 1000"
Disp "4 : 1 A 3000"
Disp "5 : PLUS" // Le manque de ligne dans une TI nous oblige à créer un autre menu.
Disp "" // équivaut à un saut de ligne
Input "CHOIX : ",D
End
If D=1
Then
100->E
End
If D=2
Then
500->E
End
If D=3
Then
1000->E
End
If D=4
Then
3000->E
End
If D=5
Then
0->D
While D<1 ou D>5
Disp "DIFFICULTE"
Disp "1 : 1 A 5000"
Disp "2 : 1 A 20000"
Disp "3 : 1 A 100000"
Disp "4 : 1 A 300000"
Disp "5 : 1 A 1000000"
Disp ""
Input "CHOIX : ",D
End
If D=1
Then
5000->E
End
If D=2
Then
20000->E
End
If D=3
Then
100000->E
End
If D=4
Then
300000->E
End
If D=5
Then
1000000->E
End
0->D
While D<1 ou D>5
Disp "CHANCES"
Disp "1 : 5 CHANCES"
Disp "2 : 10 CHANCES"
Disp "3 : 15 CHANCES"
Disp "4 : 20 CHANCES"
Disp "5 : 25 CHANCES"
Disp""
Input "CHOIX : ",D
End
If D=1
Then
5->C
End
If D=2
Then
10->C
End
If D=3
Then
15->C
End
If D=4
Then
20->C
End
If D=5
Then
25->C
End
0->D
Disp"","",""
While D<1 ou D>2
Disp "NB JOUEUR"
Disp"1 : 1 JOUEUR"
Disp"2 : 2 JOUEURS"
Disp""
Input"CHOIX : ",D
Disp"","","","","",""
End
If D=1
Then
entAléat(1,E)->B
End
If D=2
Then
While B<1 ou B>E
Disp"CHOISISSEZ"
Disp"LE NOMBRE"
Disp""
Input"CHOIX : ",B
If B<1
Then
Disp"","","","","","","TROP PETIT"
End
If B>E
Then
Disp"","","","","","","TROP GRAND"
End
Disp""
End
End
Disp"","","","","",""
While C>0 et A!=B
Disp"LE NOMBRE EST",""
Input"CHOIX : ",A
If A>B
Then
Disp"MOINS"
End
If A<B
Then
Disp"PLUS"
End
C-1->C
Disp"","CHANCES :",C,""
End
If A =B
Then
Disp"GAGNE"
End
If A!=B
Then
Disp"PERDU","REPONSE :",B
End



Voila, j'espère que ce code vous plait et qu'il en amusera plus d'un winkle.gif

 Adresse email Haut de page Bas de page 
 
Sangohan38



Autorisation : Membre
Nb de messages : 3370
Inscrit le : Sam 31 Déc 2005, 19:48
Posté le : Mer 10 Sep 2008, 16:27   Citer 

Ton code est facilement raccourcissable sur au lieu des If/then/end tu met If sans rien.

Par exemple:

Code
If D=1
Then
100->E
End



Devient:

Code
If D=1
100->E



Au final, cela réduit la longueur de ton programme et augmente donc sa vitesse d'exécution.

Ensuite, je pense que ce serait judicieux de créer un menu à l'aide de la fonction du même nom.

Enfin, il y a la fonction Output qui est très utile pour afficher dans un endroit précis de l'écran.

Et une dernière chose, utilise les puissances de 10 cela réduit la place prise par ton programme (1000=E3)

Sangohan38

 Adresse email Haut de page Bas de page 
 
webmaster
Avatar

Autorisation : Administrateur
Nb de messages : 792
Inscrit le : Mer 18 Aoû 2004, 22:13
Posté le : Mer 10 Sep 2008, 19:28   Citer 

Soit le bienvenu !

@+ Le Webmaster beer.gif

 Adresse email Haut de page Bas de page 
 
Eightech



Autorisation : Membre
Nb de messages : 14
Inscrit le : Mar 09 Sep 2008, 22:45
Posté le : Jeu 11 Sep 2008, 12:17   Citer 

sangohan38 > Oui, je sais depuis le jour où j'ai posté ce topic, j'ai lu plusieurs astuces sur ce site (la réduction d'octets avec les parenthèse/guillemets, le menu, output...) je vais réduire éditer pour réduire ce code. Merci du conseil.

webmaster > merci.

 Adresse email Haut de page Bas de page 
 
Sel666
Invité
Posté le : Lun 13 Oct 2008, 18:56   Citer 

Salut,
Y a t il un moyen d'afficher, à l'aide d'un menu, les meilleurs scores des différentes catégories ?
Par exemple, au niveau "1 à 1000", j'ai trouvé en 18 essais et la machine l'a sauvegardé et je peux y accéder grâce à la rubrique scores dans un menu d'accueil.
Si oui lequel ??
Merci d'avance !

  Haut de page Bas de page 
 
Sangohan38



Autorisation : Membre
Nb de messages : 3370
Inscrit le : Sam 31 Déc 2005, 19:48
Posté le : Mar 14 Oct 2008, 16:26   Citer 

Pour sauvegarder les scores, il faut les stocker dans des variables que l'on utilise pas et ensuite, les rappelés en temps voulu.
Je ne montrerais pas les modifications sur ce programme car ce n'est pas le mien mais j'essayerais de poster le plus vite le programme corespondant à ta demande.

Sangohan38

 Adresse email Haut de page Bas de page 
 
Sel666



Autorisation : Membre
Nb de messages : 23
Inscrit le : Mar 14 Oct 2008, 18:26
Posté le : Mar 14 Oct 2008, 18:31   Citer 

Merci beaucoup !

Aussi, j'ai voulu mettre les menus avec la fonction Menu mais je recontre un probleme.
Je tape :


Code
0->A
....  (<=Je ne met pas le debut du programme)
Menu("DIFFICULTE","1 A 10",1,"1 A 100",2,"1 A 1000",3,"1 A 10000",4,"1 A 100000",5)
lbl 1
10->A
lbl 2
100->A
lbl3
1000->A
lbl 4
10000->A
lbl 5
100000->A
entalea(1,A)->Z
Disp "CHOISI UN NOMBRE
Disp "ENTRE 1 ET
Output (2,12,A



Et il me met toujours A à sa plus grande valeur possible...
Ou est le probleme ??

 Adresse email Haut de page Bas de page 
 
Sangohan38



Autorisation : Membre
Nb de messages : 3370
Inscrit le : Sam 31 Déc 2005, 19:48
Posté le : Mar 14 Oct 2008, 19:03   Citer 

Normal, à, la fin de chaque label, il passe au suivant puisque il n'y a pas de rupture dans ton programme.
Tu peut modifier en ajoutant un Goto A par exemple à la fin de chaque sous menu et avant la fonction entaléat, tu met le Lbl A.

Tu obtient donc:


Code
Lbl 1
...
Gota A
Lbl 2
...
Goto A



Il y a une méthode plus courte:

Code
Lbl 5
E5->A
Lbl 4
If A<E4:E4->A
Lbl 3
If A<E3:E3->A
...



Sangohan38

 Adresse email Haut de page Bas de page 
 
Sel666



Autorisation : Membre
Nb de messages : 23
Inscrit le : Mar 14 Oct 2008, 18:26
Posté le : Mar 14 Oct 2008, 19:22   Citer 

Merci ca marche =)

 Adresse email Haut de page Bas de page 
 
Sel666



Autorisation : Membre
Nb de messages : 23
Inscrit le : Mar 14 Oct 2008, 18:26
Posté le : Sam 18 Oct 2008, 12:52   Citer 

Tu t'en sort pour les scores ? :p

 Adresse email Haut de page Bas de page 
 
Sangohan38



Autorisation : Membre
Nb de messages : 3370
Inscrit le : Sam 31 Déc 2005, 19:48
Posté le : Sam 18 Oct 2008, 16:15   Citer 

Désoler, je n'avais pas fait le programme mais le voici:


Code
ClrHome
0->C
Input "NOMBRE MAXIMAL:",A
Int(rand A+1->B
ClrHome
Lbl A
Input "QUEL NOMBRE?",B
If B<A:Output(5,3,"C'EST PLUS!"
If A<B:Output(5,3,"C'EST MOINS!"
If A[Different de]B:C+1->C
If A=B:Output(5,1,"REPONSE TROUVEE EN    COUPS"
If A=B:Output(6,4,C
Pause
If A[Different de]B:Goto A
ClrHome
If C>D:C->D
If C>D:Output(4,1,"NOUVEAU RECORD:"
If C>D:Output(5,1,C
If C<D:Output(4,1,"SCORE:"
If C<D:Output(4,7,C
If C<D:Output(5,1,"RECORD:
If C<D:Output(5,8,D
Output(1,1,
Output(1,1,"    "



Ainsi, si tu n'efface pas la variable D, ton record restera dans cette variable.

Sangohan38

 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
Sel666



Autorisation : Membre
Nb de messages : 23
Inscrit le : Mar 14 Oct 2008, 18:26
Posté le : Sam 18 Oct 2008, 16:46   Citer 

Voila le programme que j'ai fais (en m'inspirant beaucoup de celui plus haut ^^)


Code
0->A
EffEcr
Menu("NOMBRE MYSTERE","JOUER",B,"SCORES",C,"QUITTER",D)
Lbl B
Menu("DIFFICULTE","1 A 10",E,"1 A 100",F,"1 A 1000",G,"1 A 10000",H,"1 A 100000",I,"1 A 1000000",J,"RETOUR",K)
Lbl E
10->A
Goto A
Lbl F
100->A
Goto A
Lbl G
1000->A
Goto A
Lbl H
10000->A
Goto A
Lbl I
100000->A
Goto A
Lbl J
1000000->A
Goto A
Lbl K
prgmALEA
EffEcr
entAléa(1,A)->Z
Disp "CHOISI UN NOMBRE
Disp "ENTRE 1 ET "
Disp A
Input "NOMBRE=",[teta]
1->G
While [teta]=/=Z
G+1->G
If [teta]>Z
Disp "PLUS BAS
If [teta]<Z
Disp "PLUS HAUT
If [teta]=/=Z
Prompt [teta]
End
Effecr
Output(1,6,"BRAVO !
Output(2,5,"TU AS MIS
Output(3,8,G
Output(4,6,"ESSAIS
Output(5,3,"POUR TROUVER
Output(6,8,Z
Pause
Menu("NOUVELLE PARTIE","OUI",S,"NON",T)
Lbl S
EffEcr
Goto B
Lbl T
EffEcr
Stop
End
Lbl C
Menu("SCORES","MEILLEUR",1,"MOINS BON",2,"RETOUR",3)
Lbl 1
???
Lbl 2
???
Lbl 3
prgmALEA
End
Lbl D
Menu("TU ES SUR ?","NON",U,"OUI",V)
Lbl U
pgrmALEA
End
Lbl V
EffEcr
Stop



Comment insérer des scores que je puisse stoker dans le menu score et ou je puisse mettre le meilleur et le moins bon ?

 Adresse email Haut de page Bas de page 
 
olivier
Invité
Posté le : Sam 18 Oct 2008, 16:53   Citer 

Bonjour a tous
je suis en première s et j'adore tous ce qui est programme
j'ai donc recopier le programme en haut de la page mais il ya un souci
J'ai une TI 82
et l'entée: entAléat==> CORRESPOND SUR MA CALCU A rand
Mais lors de l'execution du programme apres
le choix du chiffre du nbr de joueur et bien il me met qu'il y a une erreur de syntaxe
apres rand(1,E)=>B
il cible la parenthèse est ce que qqn pourrait m'aider sil vous plait merci

  Haut de page Bas de page 
 
Sangohan38



Autorisation : Membre
Nb de messages : 3370
Inscrit le : Sam 31 Déc 2005, 19:48
Posté le : Sam 18 Oct 2008, 17:36   Citer 

entaléat est intrand( sur une ti-82 stats.
Si ce n'est pas une stats, il faut écrire int(rand8+1->B

Sangohan38

 Adresse email Haut de page Bas de page 
 
olivier
Invité
Posté le : Sam 18 Oct 2008, 18:32   Citer 

Merci au niveau de sa c super sa a fonctionner
pblm j'avais lu quon pouvvait raccourcir les then if end
et j'ai trop raccourci lol
mai c bon la sa marche juste comment sa fonctionne a deux j'ai pas comprix ???
encore merci sangohan

  Haut de page Bas de page 
 
Sel666



Autorisation : Membre
Nb de messages : 23
Inscrit le : Mar 14 Oct 2008, 18:26
Posté le : Dim 19 Oct 2008, 16:16   Citer 

Et pour moi ?

 Adresse email Haut de page Bas de page 
 
X
Invité
Posté le : Mar 30 Oct 2012, 17:35   Citer 

Bonjour,
j'ai un problème, ma calculette m'affiche "err:etiquette" lorsque je veux effectuer le programme, et je ne comprends pas pourquoi ! (je me suis servie du programme avec les différents menus que j'ai écourté au niveaux des possibilités de choisir un nombre entre 1 à 10, 1 à 100 et 1 à 100000 qui ne m'interressaient pas)
Pourriez vous m'aider sivousplé?!

  Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mar 30 Oct 2012, 18:31   Citer 

Tu as supprimmé/modifié un Lbl qu'il ne fallait pas toucher.
Je ne peux pas te dire lequel.
Tu peux à la rigueure ajoûter des affichages ou des assignations de variables pour repérer l'endroit du programme où se trouve le goto/menu qui plante. En effet un goto/menu qui pointe vers un label innexistant plante.

----------------------
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 
 
Poster un nouveau sujet Poster une réponse





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