Poster un nouveau sujet Poster une réponse
Allumettes
Auteur Message
Ganji
Invité
Posté le : Lun 02 Nov 2009, 8:43   Citer 

Bonjour, j'ai reçu un DM avec un algorithme à faire.
Voici le sujet :

On dispose de 72 allumettes, à tour de rôle deux joueurs prennent 1,2 ou 3 allumettes.
Le gagnant est celui qui prend les dernières allumettes se trouvant sur la table.
Trouver une stratégie permettant au joueur qui joue le deuxième de gagner à tous les coups !
Ecrire un algorithme qui utilise cette stratégie
Puis, écrire un programme tel que si la calculette joue en 2ème, elle gagne à tous les coups (on suppose que personne ne triche)
Si vous avez un programme qui fonctionne, transformez le pour que personne ne triche (?)

J'ai essayé d'écrire l'algorithme et voici ce que j'ai : crazy.gif

Algorithme utilisant cette stratégie

N, A et B sont des entiers

N = 72
Tant que N > 0
Afficher « Joueur 1, combien prenez vous d'allumettes (1, 2 ou 3) ? »
Entrer A
Si 1 ≤ A ≤ 3
N = N-A
Sinon
Afficher « Incorrect, entrer 1, 2 ou 3 »
Aller à instruction « Entrer A »
Fin
Afficher « Il reste N allumettes »
Si N = 0
Afficher « Joueur 1 a gagné »
Fin
B = 4 – A
N = N – B
Afficher « CPU retire B allumettes, il en reste N »
Si N = 0
Afficher « CPU gagne »
Fin
Fin

Mais je n'arrive pas à l'écrire en TI BASIC car je n'ai pas vu les instruction nécessaires, j'ai tenté un truc mais ça m'affiche une belle "SYNTAX ERROR"

J'aurais besoin d'aide et je vous remercie de votre patience et j'espère pouvoir résoudre ce problème

Bonne journée à tous et à toutes !

  Haut de page Bas de page 
 
Rézus



Autorisation : Membre
Nb de messages : 835
Inscrit le : Sam 20 Jui 2009, 20:35
Posté le : Lun 02 Nov 2009, 12:36   Citer 


Code
:72->N
:Lbl1
:While N>0
:Disp "JOUEUR 1,COMBIEN","D'ALLUMETTES
:Input "(1,2 ou 3) ? ",A
:If A<1 ou A>3 ou partDéc(A)[différent de]0
:Goto 1
:N-A->N
:Disp "IL RESTE",N,"ALLUMETTES
:Pause
:If N[inférieur ou égal à]0
:Then
:Disp "LE JOUEUR 1 A","GAGNE
:Stop
:End
:4-A->B
:N-B->N
:Disp "CPU RETIRE",B,"ALLUMETTES","IL EN RESTE",N
:If N[inférieur ou égal à]0
:Then
:Disp "CPU GAGNE
:Stop
:End:End



Voilà,ça doit marcher.

 Adresse email Haut de page Bas de page 
 
Ganji
Invité
Posté le : Lun 02 Nov 2009, 14:04   Citer 

Bonjour, merci pour votre aide. bigmouth.gif
Quelle est la syntaxe à employer pour la ligne "If A<1 ou A>3 ou partDéc(A)[différent de]0", j'ai essayé d'employer des virgules pour séparer les conditions mais ça ne marche pas

Merci

  Haut de page Bas de page 
 
sypotu
Avatar

Autorisation : Membre
Nb de messages : 651
Inscrit le : Dim 13 Sep 2009, 8:27
Posté le : Lun 02 Nov 2009, 14:08   Citer 

non tu doit juste mettre le ou ([2nde]+[math]+[flèche droite]) winkle.gif

----------------------
Ti-83+.fr
Passe en 1ère S


Foire Aux Questions__________Traduction des fonctions Anglais/Français
Emplacement des fonctions____Lexique
Liste des jeux
Ouvrir, éditer et créer des .82p ou .83p sans télécharger de logiciel
Logiciel pour prendre des screenshot animés
Hebergeur pour vos .83p
 Adresse email Haut de page Bas de page 
 
Ganji
Invité
Posté le : Lun 02 Nov 2009, 14:11   Citer 

Je vous remercie tout fonctionne parfaitement, et je suis heureux de pouvoir comparer mon code avec le bon (je précise que je n'étais pas si loin de la vérité :p)
Merci à tous

  Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse





  Page générée en 9 requêtes