π
<-

Programmation du "jeu" de la roulette russe

Programmation du "jeu" de la roulette russe

Postby Andrei210 » 15 Sep 2010, 17:52

Bonjour, j'ai un problème avec la programmation d'une roulette russe.

[ Mon niveau est celui d'un débutant car cela fait 5 jours que je connait le mot algorithme et 2 jours que j'ai commencé la programmation su TI. (Il y a 5 jours c'était sr AlgoBox 0.5 qui nous a été fourni par le lycée) ]

Le principe de la roulette russe ( on sait jamais p-ê que certains ne connaissent pas) : Un pistolet 6 coups, on met une seule balle dedans et un fait tourner UNE SEULE FOIS le barillet. Ensuite chacun son tour on pointe l'arme sur sa tête et on tire une fois. Celui qui se prend la balle est mort et a, par conséquent, perdu.

Principe de mon code (mon idée de base):-calculatrice choisi un nombre entier X entre 1 et 6
-si X=1 ; montrer PAN !
-Pause / correspond au passage de la calculatrice (le revolver imaginaire) en attendant que le prochain joueur appuie sur "exe" (la détente imaginaire)
-si X=2 ; montrer PAN !
-Pause
-si X=3 ; montrer PAN !
-Pause
-si X=4 ; montrer PAN !
-Pause
-si X=5 ; montrer PAN !
-Pause
-si X=6 ; montrer PAN !

Mon Code (Avec au moins une erreur) :
Code: Select all
entAléat(1,6)-X
If X=1
Disp X
Pause
If X=2
Disp X
Pause
If X=3
Disp X
Pause
If X=4
Disp X
Pause
If X=5
Disp X
Pause
If X=6
Disp X
Pause


1°) Lorsque je le lance il m'affiche erreur : syntaxe. Quel est cette faute ?
2°) Comment utilise t-on la fonction texte( ?car après plusieurs essaies je n'ai pas trouver...
User avatar
Andrei210
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Level up: 16%
 
Posts: 19
Joined: 15 Sep 2010, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: 1ere S

Re: Programmation du "jeu" de la roulette russe

Postby kindermoumoute » 15 Sep 2010, 18:09

Tout d'abord tu utilisa mal la syntaxe (voir wikipedia) d'une condition (If).
Toi tu fait :
If condition
code


Et la syntaxe est :
If condition
Then
Code
End

ensuite une condition peut être un peu plus développé que (si X=1 alors code fin), je te propose donc de regrouper tous dans une seule condition :
Code: Select all
entAléat(1,6)-X
If X=1 or X=2 or X=3 or X=4 or X=5
Then
Disp "Tu est sauvé"
End
If X=6
Then
Disp "PAN"
// et d'autres choses si tu veut
End

mieux encore :
Code: Select all
entAléat(1,6)→X
If X=1 or X=2 or X=3 or X=4 or X=5
Then
Disp "Tu est sauvé"
Else
Disp "PAN"
// et d'autres choses si tu veut
End


PS : If = si, then = alors, End = fin, else = sinon.

EDIT : Le problème avec la roulette russe est qu'il y a 6 coup maximum, alors qu'avec la fonction rand (Aleat en français) des calculatrice, il peut très bien se passer 7 coup dans X=6, donc ça donnera plutôt une boucle incrémenté :
Syntaxe de repeat :
Repeat condition
code
End

Code: Select all
0→I
Repeat I=6       // début de la boucle qui s’arrêtera si I est égale à 6
Pause // on attend que le joueur soit près pour le tir suivant
entAléat(1,6)→X
If X=1 or X=2 or X=3 or X=4 or X=5      // si le nombre aléatoire X n'est pas 6
Then
Disp "Tu est sauvé"
Else            // si le nombre aléatoire X est 6
5=I          // alors on met 5 sur I
End
I+1→I // ici on rajoute 1 à I à chaque boucle
End       // fin de la boucle, I est égale à 6
Disp "PAN" // soit il est mort parce que c'était le dernier coup (I=6), soit parce que X était égale à 6
// et d'autres choses si tu veut
Tutoriel sur l'axe parser, un langage de programmation pour z80 ultra rapide et beaucoup plus facile que l'ASM !
User avatar
kindermoumouteProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 2.6%
 
Posts: 849
Joined: 30 Sep 2009, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: Ecole d'ingénieur informatique et industriel

Re: Programmation du "jeu" de la roulette russe

Postby Marco » 15 Sep 2010, 18:21

Ou plutôt, "si x différent de 6"
Code: Select all
entAléat(1,6)-X
If X≠6
Then
Disp "Tu est sauvé"
Else
Disp "PAN"
// et d'autres choses si tu veut
End
Image
User avatar
Marco
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 27.8%
 
Posts: 1259
Joined: 22 Mar 2009, 00:00
Location: 78
Gender: Male
Calculator(s):
MyCalcs profile

Re: Programmation du "jeu" de la roulette russe

Postby kindermoumoute » 15 Sep 2010, 18:28

exacte ^^ donc récapitulatif :
Code: Select all
0→I
Repeat I=6      // début de la boucle qui s’arrêtera si I est égale à 6
Pause // on attend que le joueur soit près pour le tir suivant
entAléat(1,6)→X
If X≠6      // si le nombre aléatoire X n'est pas 6
Then
Disp "Tu est sauvé"
Else            // si le nombre aléatoire X est 6
5=I          // alors on met 5 sur I
End
I+1→I // ici on rajoute 1 à I à chaque boucle
End      // fin de la boucle, I est égale à 6
Disp "PAN" // soit il est mort parce que c'était le dernier coup (I=6), soit parce que X était égale à 6
// et d'autres choses si tu veut


EDIT : ça doit être un peu dure à assimiler au début, donc répond nous quand tu a repris conscience et compris ce code =D
Tutoriel sur l'axe parser, un langage de programmation pour z80 ultra rapide et beaucoup plus facile que l'ASM !
User avatar
kindermoumouteProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 2.6%
 
Posts: 849
Joined: 30 Sep 2009, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: Ecole d'ingénieur informatique et industriel

Re: Programmation du "jeu" de la roulette russe

Postby Andrei210 » 15 Sep 2010, 19:01

Merci Kindermoumoute et Marco de vos réponses ! [a été édité - @ Kindermoumoute : Mais qu'est ce que tu raconte voyons ? je t'ai jamais appelé autrement que par ton pseudo xD]
je crois avoir compris mes erreurs.

Connaissez vous un site récapitulant les fonction et la manière de les utiliser (avec si possible un exemple) ? Car les seuls types de ce types que j'ai trouver n'en expliquait que quelque uns.

Edit : on en a oublié ma 2e question : comment utiliser "texte(" et j'ajoute quelle est sa différence avec disp "texte que je veux"
User avatar
Andrei210
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Level up: 16%
 
Posts: 19
Joined: 15 Sep 2010, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: 1ere S

Re: Programmation du "jeu" de la roulette russe

Postby Marco » 15 Sep 2010, 19:08

Le manuel d'utilisation. http://education.ti.com/downloads/guide ... ok-fra.pdf
Personnellement, je préfère l'ancienne version qui était fournie en papier autrefois, mais le contenu doit être normalement le même.
Image
User avatar
Marco
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 27.8%
 
Posts: 1259
Joined: 22 Mar 2009, 00:00
Location: 78
Gender: Male
Calculator(s):
MyCalcs profile

Re: Programmation du "jeu" de la roulette russe

Postby critor » 15 Sep 2010, 19:27

Andrei210 wrote:Edit : on en a oublié ma 2e question : comment utiliser "texte(" et j'ajoute quelle est sa différence avec disp "texte que je veux"


"Disp" affiche en police 12 sur l'écran de calculs.
"Text(" affiche en police 8 sur l'écran graphique.

L'écran graphique permet de mélanger textes et dessins, contrairement à l'écran de calcul, et de faire rentrer plus de choses (police 8).


Pour l'utiliser:
Text(L,C,"texte que je veux")
où L est le numéro de la ligne de pixels en partant de 0 en haut
et C est le numéro de la colonne de pixels en partant de 0 à gauche
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 54.5%
 
Posts: 42499
Images: 17341
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Programmation du "jeu" de la roulette russe

Postby kindermoumoute » 15 Sep 2010, 19:43

Andrei210 wrote:Merci Elite et Marco de vos réponses !


Si tu lit bien mon pseudo est "kindermoumoute" ^^
Tutoriel sur l'axe parser, un langage de programmation pour z80 ultra rapide et beaucoup plus facile que l'ASM !
User avatar
kindermoumouteProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 2.6%
 
Posts: 849
Joined: 30 Sep 2009, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: Ecole d'ingénieur informatique et industriel

Re: Programmation du "jeu" de la roulette russe

Postby Andrei210 » 15 Sep 2010, 19:58

Kindermoumoute : quelque chose me chiffonne dans ton code.

La fonction entAléat est située A L'INTÉRIEURE de la boucle ce qui veut dire qu'un nouveau chiffre est choisi au hasard a chaque boucle non ?
Or tu rajoute 1 a I a chaque boucle donc comme lorsque I = 6 il y a donc plus de chance que le "pan" s'affiche au 6e coup que pendant un autre.

En reel sa donnerai ça :
-Si on tourne le barillet du "six coups" avant chaque tir ( comme dans ton code), le jeu devrais pouvoir durer indéfiniment alors que dans ton code il tire forcement dans son 6e coup même si la balle n'était pas au bon endroit.

J'aimerais que le barillet ne sois tourné qu'une seule fois. Ce code marcherais t il ?
Code: Select all
0-I
entAléat(1,6)-X
Repeat C=I+1
Pause
I+1=I
Disp "Tu es sauvé"
End
Pause
Disp "Pan"


En plus je me rend compte que je n'avais pas besoins de if/then/else dqui prend beaucoup de lignes et dont je ne comprenais pas tout a fait le fonctionnement.
User avatar
Andrei210
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Level up: 16%
 
Posts: 19
Joined: 15 Sep 2010, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: 1ere S

Re: Programmation du "jeu" de la roulette russe

Postby kindermoumoute » 16 Sep 2010, 07:30

Je me base sur le fait qu'un pistolet a 6 coup, et que si il y a une balle dans les 6, et que 5 coup ont été tirés sans effet, le 6 ème est le bon. Et il faut à chaques tour ce boucle recréer un nombre entier aléatoire entre 1-6.

Ps : je ne comprend pas ton code.
Tutoriel sur l'axe parser, un langage de programmation pour z80 ultra rapide et beaucoup plus facile que l'ASM !
User avatar
kindermoumouteProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 2.6%
 
Posts: 849
Joined: 30 Sep 2009, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: Ecole d'ingénieur informatique et industriel

Next

Return to TI-Basic

Who is online

Users browsing this forum: ClaudeBot [spider] and 5 guests

-
Search
-
Social TI-Planet
-
Featured topics
Ndless for CX 4.5.5 / CX II 6.2.0
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
12345
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
3386 utilisateurs:
>3361 invités
>17 membres
>8 robots
Record simultané (sur 6 mois):
32248 utilisateurs (le 01/09/2025)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)