Math forum

Soutien scolaire en maths

Cours de mathématiques et soutien scolaire dans toute la France, pour tous les niveaux

Contactez nos professeurs expérimentés ou utilisez nos services en ligne !

Les maths ont leur forum !

Demander un devis pour du soutien scolaire Abonnez-vous au service de révision en ligne
RUBRIQUES

 
Cours & Math-fiches

 
Math foru' sur Facebook


 
Rechercher dans les forums Derniers messages S'inscrire pour poster des messages S'inscrire pour poster des messages
vers le sujet précédent vers le sujet suivant
Modéré par: Thierry
Fin 

Texas Instrumens "pierre-feuille-ciseaux" sur TI-82

- classé dans : Texas Instruments

Envoyé: 12.06.2017, 14:00

Oniiknil

enregistré depuis: juin. 2017
Messages: 3

Status: hors ligne
dernière visite: 15.06.17
Bonjour, j'essaie de créer un algorithme pour jouer a pierre-feuille-ciseaux pour deux joueurs,sur un même appareil, jusqu’à ce qu'un des deux obtienne 5 points(je sais, ça ne sert pas à grand chose, mais j'ai vraiment envie d'en finir...), mais une partie de l'algorithme ne marche pas. Le voici:
:0→A
:0→B
:While A≠5 ou B≠5
:Imput X
:Disp " "
:Disp " "
:Disp " "
:Disp " " }tout ces espaces sont pour éviter qu'un joueur voit ce qu'a choisi l'autre joueur
:Disp " "
:Disp " "
:Disp " "
:Imput Y
:If X=1
:Disp "X:PIERRE"
:If X=2
:Disp "X:FEUILLE"
:If X=3
:Disp "X:CISEAUX"
:If Y=1
:Disp "Y:PIERRE"
:If Y=2
:Disp "Y:FEUILLE"
:If Y=3
:Disp "Y:CISEAUX"
:If X=1 et Y=1
:Disp "EGALITE"
:If X=1 et Y=2
:Disp "Y:GAGNE"
:B+1→B
:If X=1 et Y=3
:Disp "X:GAGNE"
:A+1→A
:If X=2 et Y=1
:Disp "X:GAGNE"
:A+1→A
If X=2 et Y=2
:Disp "EGALITE"
:If X=2 et Y=3
:Disp "Y:GAGNE"
:B+1→B
:If X=3 et Y=1
:Disp "Y:GAGNE"
:B+1→B
:If X=3 et Y=2
:Disp "X:GAGNE"
:A+1→A
If X=3 et Y=3
:Disp "EGALITE"
:End
:If A=5
:Disp "X:GAGNE(fin)"
:If B=5
:Disp "Y:GAGNE(fin)"

Il y a surement une façon plus simple que celle que j'ai utilisé, mais j'ai du faire avec mes maigres connaissances(et internet, mais ça aide pas beaucoup!). Tout marche, sauf au moment où un joueur a 5 fois, la partie continue comme si A ou B n'était jamais égales à 5, ou que si mais que la boucle recommençait indéfiniment. j'essaie depuis plusieurs jours de résoudre ce problème mais aucunes solution ne me vient, alors si vous avez une idée ou besoin d'explication n’hésitez pas, merci!


(et désolé pour les fautes d'orthographes, je fait de mon mieux)

modifié par : mtschoon, 14 Jn 2017 - 11:59
Top 
 

Soutien scolaire en maths

Cours de mathématiques et soutien scolaire dans toute la France, pour tous les niveaux

Contactez nos professeurs expérimentés ou utilisez nos services en ligne !

Demander un devis pour du soutien scolaire Abonnez-vous au service de révision en ligne
Envoyé: 12.06.2017, 16:28

Modératrice


enregistré depuis: févr.. 2011
Messages: 9157

Status: hors ligne
dernière visite: 23.09.17
Bonjour,

Je ne vais guère t'aider vu que je n'ai pas de TI 82.

Je regarde seulement ce que tu as indiqué.

La 3ème ligne ne va pas.

Tu as écrit
Citation
:While A≠5 ou B≠5


Le "ou" ne convient pas car le programme doit tourner tant que A et B sont différents de 5

C'est A≠5 AND B≠5 qu'il faut mettre car je suppose de ta calculette parle anglais, sinon, en français, il faudrait même ET.

Tu peux déjà rectifier cette erreur.

Quelque chose me parait bizarre vers la fin, à partir de If A=5

En logique informatique, on utilise If...Then...Else ...et on termine par End.

Je me demande comprend bien ce que tu veux dire...
Je te conseille de revoir cela avec la notice de ta TI82.

J'espère qu'un propriétaire de TI82 passera pas là.

modifié par : mtschoon, 12 Jn 2017 - 16:29
Top 
Envoyé: 14.06.2017, 11:14

Oniiknil

enregistré depuis: juin. 2017
Messages: 3

Status: hors ligne
dernière visite: 15.06.17
Bonjour, j'ai remplacé le "ou" par "et", puis modifié la fin, voila ce que ça donne:
:0→A
:0→B
:While A≠5 et B≠5
:Imput X
:Disp " "
:Disp " "
:Disp " "
:Disp " " }tout ces espaces sont pour éviter qu'un joueur voit ce qu'a choisi l'autre joueur
:Disp " "
:Disp " "
:Disp " "
:Imput Y
:If X=1
:Disp "X:PIERRE"
:If X=2
:Disp "X:FEUILLE"
:If X=3
:Disp "X:CISEAUX"
:If Y=1
:Disp "Y:PIERRE"
:If Y=2
:Disp "Y:FEUILLE"
:If Y=3
:Disp "Y:CISEAUX"
:If X=1 et Y=1
:Disp "EGALITE"
:If X=1 et Y=2
:Disp "Y:GAGNE"
:B+1→B
:If X=1 et Y=3
:Disp "X:GAGNE"
:A+1→A
:If X=2 et Y=1
:Disp "X:GAGNE"
:A+1→A
If X=2 et Y=2
:Disp "EGALITE"
:If X=2 et Y=3
:Disp "Y:GAGNE"
:B+1→B
:If X=3 et Y=1
:Disp "Y:GAGNE"
:B+1→B
:If X=3 et Y=2
:Disp "X:GAGNE"
:A+1→A
If X=3 et Y=3
:Disp "EGALITE"
:End
:If A=5
:Then
:Disp "X:GAGNE(FIN)"
:Else
:Disp "Y:GAGNE(FIN)"
:End

J'ai essayé aussi plusieurs formations de la dernière boucle, mais rien ne change...
Mais merci quand même de m'avoir aidé.
Top 
Envoyé: 14.06.2017, 11:56

Modératrice


enregistré depuis: févr.. 2011
Messages: 9157

Status: hors ligne
dernière visite: 23.09.17
Attention : Il faut que tu remplaces OU par AND (qui veut dire "et" en anglais)

Tu dois écrire

: While A≠5 and B≠5

La fin me parait bonne maintenant.

Par contre, j'ignore si ta calculette comprend tous ces"If"successifs...
Top 
Envoyé: 15.06.2017, 11:05

Oniiknil

enregistré depuis: juin. 2017
Messages: 3

Status: hors ligne
dernière visite: 15.06.17
J'ai déjà remplacé Ou par Et, et pour tout les If, j'ai déjà fait plusieurs algorithme avec des tonnes de If, Then, et autre et je n'ai eu aucun problème.

Je me demandais aussi d’où venait le problème, si c’était que A ou B n'avaient jamais la valeur 5, ou que lorsqu'ils l'avaient, la fin de l'algorithme ne se déclenchait pas.

J'ai ajouté un :Disp A quand X gagne ( quand X=1 et Y=3) pour voir ce qu'il ce passait,et il ne s'affichait plus que ce qu'avait choisis les deux joueurs(soit X:PIERRE et Y:CISEAU) mais pas le X:GAGNE, et ensuite A s'affichait, donc il y avait écrit 1. La deuxième Tout était pareil sauf que A était égal a 4, et la troisième fois a 7

Au moins maintenant je sais quels problèmes je dois résoudre: A et B ne sont jamais égales a 5, car lorsque 1 doit s'ajouter a la valeur de A ou B, ça ne marche pas toujours (et au passage que le X:GAGNE et le Y:GAGNE disparaissent on ne sais ou...)
Et voila la petite modification que j'ai faite pour afficher A(commence à la ligne 30):

:If X=1 et Y=3
:Disp "X:GAGNE"
:A+1→A
:Disp A
:if .....
Top 


    Parmi les cours de Math foru' et du Math Annuaire :

Boîte de connexion

 Bienvenue invité
Inscris-toi c'est gratuit !



Rejoins-nous afin de poser tes questions dans les forums de Math foru' :

 Crée ton compte
 Connexion :
Pseudo :


Mot de passe :


Retenir


Identifiants perdus ?
Membres
Dernier Nouveaux aujourd'hui2
Dernier Nouveaux hier2
Dernier Total13494
Dernier Dernier
Alice0509
 
Liens commerciaux