Autorisation : Membre
Nb de messages : 2
Inscrit le : Mar 23 Mai 2017, 10:23
Posté le : Mar 23 Mai 2017, 10:50
Bonjour,
j'ai fait un programme sur ma TI83 pour le jeu du plus ou du moins, je suis ouvert à toute critique, tant qu'elle est constructive.
Enjoy !
Code
ClrHome
Disp "ENTRER UN NOMBRE"
Disp "ENTRE 1 ET 1000"
Disp "VOUS AVEZ 10"
Disp "ESSAIS"
randInt(1,1000)->N
0->A
0->I
While A=0 and I =!10 //Je n'ai pas trouvé le symbole "différent" sur clavier
Input "NOMBRE :",P
If P=N
Then
1->A
Else
If P>N
Then
Disp "C EST MOINS"
Else
Disp "C EST PLUS"
End
End
I+1->I
End
If I<10
Then
Disp "BRAVO",N
Disp "NBRE ESSAIS",I
Else
Disp "PERDU"
Disp "LE NOMBRE A"
Disp "DEVINER ETAIT",N
Autorisation : Membre
Nb de messages : 33
Inscrit le : Sam 22 Avr 2017, 16:00
Posté le : Mar 23 Mai 2017, 11:46
Salut à toi !
Aaaah, le plus ou moins <3 LE premier programme à faire quand on se lance :3
Ca me rappelle tellement de souvenirs
Bref, pour progresser, rien de mieux que de montrer son travail aux gens et d'attendre les critiques, ainsi que les améliorations ! Je commence donc.
(Si jamais il y a quelque chose que j'explique mal, n'hésite pas à me redemander <3)
Code
Disp "ENTRER UN NOMBRE"
Disp "ENTRE 1 ET 1000"
Disp "VOUS AVEZ 10"
Disp "ESSAIS"
Il faut savoir que tu peux tout mettre dans un seul Disp, en séprant tes phrases avec une virgule. De plus, à la fin d'une ligne ou avant un sto (->) Tu n'as pas besoin de fermer les guillemets ou de fermer une parenthèse.
Le code sera donc ici :
Code
Disp "ENTRER UN NOMBRE","ENTRE 1 ET 1000","VOUS AVEZ 10","ESSAIS
Ici, tu peux remplacer les "0->Variable" par "Effvar Variable, sachant qu'après cette ligne tu n'as pas besoin de passer une ligne, tu peux tout simplement mettre directement à la suite la prochaine. (Fais tout de même attention avec un début de boucle, ça peut faire n'importe quoi. Ici donc ton code donnera :
Code
EffVar AEFFvar IrandInt(1,1000->N //toujours la parenthèse qu'on peut enlever avant un sto (->)
While A=0 and I =!10 //Je n'ai pas trouvé le symbole "différent" sur clavier
Pourquoi au lieu d'utiliser la variable A, tu ne lui demande pas tout simplement "Si P=N"?
Il y a une fonction qui permet de lire une fois la boucle avant de regarder la condition d'arrêt. Cette fonction s'appelle Repeat. Pour savoir quoi mettre dedans, il faut se dire : "La fonction Répète le code jusqu'à ce que..." Donc ici, ce ne sera pas "tant que", "P!=N and I =!10" devient donc "P=N ou I =10".
Du coup, pas besoin de variable A, ni d'initialiser la Variable P. Le début de ton code devient donc :
Code
ClrHome
Disp "ENTRER UN NOMBRE","ENTRE 1 ET 1000","VOUS AVEZ 10","ESSAIS
EffVar IrandInt(1,1000->N
Repeat P=N or I =10
If P=N
Then
1->A
Else
If P>N
Then
Disp "C EST MOINS"
Else
Disp "C EST PLUS"
End
End
Ici, il faut savoir qu'après un If, tu n'as pas besoin de Then et End si il n'y a qu'une seule ligne à executer.
Du coup, le code devient, en enlevant aussi le If P=N vu qu'on l'a mis dans la boucle Repeat :
Pour la fin de ton programme, attention, tu n'as pas mis de End pour fermer le If/then, ici ça ne posera pas de problème comme c'est la fin du programme, mais ça peut gêner si tu commences à le modifier, par exemple en mettant un menu
Tu peux comme avant rassembler les Disp :
Code
If I<10
Then
Disp "BRAVO",N,"NBRE ESSAIS",I
Else
Disp "PERDU","LE NOMBRE A","DEVINER ETAIT",N
End
ClrHome
Disp "ENTRER UN NOMBRE","ENTRE 1 ET 1000","VOUS AVEZ 10","ESSAIS
EFFvar IrandInt(1,1000->N
Repeat P=N or I =10
Input "NOMBRE :",P
If P>N
Disp "C'EST MOINS
If P<N
Disp "C'EST PLUS
I+1->I
End
If I<10
Then
Disp "BRAVO",N,"NBRE ESSAIS",I
Else
Disp "PERDU","LE NOMBRE A","DEVINER ETAIT",N
End
Voilà voilà, j'espère t'avoir appris quelques techniques pour commencer, n'hésite pas à améliorer ton programme, rajouter un menu, demander au joueur entre quel nombre et quel nombre il veut rechercher, mettre un menu Facile, moyen difficile, avec un nombre plus grand et/ou moins de vie, etc
Et hésite pas non plus à poster tes programmes sur le forum <3
Autorisation : Membre
Nb de messages : 30
Inscrit le : Ven 06 Nov 2015, 14:08
Posté le : Sam 01 Juil 2017, 14:17
Je remonte un peu le sujet, mais il y a une erreur dans le code d'Homer_Dalor. Si on trouve le nombre au dixième essai, on obtient "perdu". Pour corriger ça, il faut remplacer cette ligne :