π
<-

Programmation du "jeu" de la roulette russe

Programmation du "jeu" de la roulette russe

Message non lude 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: Tout sélectionner
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...
Avatar de l’utilisateur
Andrei210
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Prochain niv.: 16%
 
Messages: 19
Inscription: 15 Sep 2010, 00:00
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: 1ere S

Re: Programmation du "jeu" de la roulette russe

Message non lude 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: Tout sélectionner
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: Tout sélectionner
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: Tout sélectionner
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 !
Avatar de l’utilisateur
kindermoumouteProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 2.6%
 
Messages: 849
Inscription: 30 Sep 2009, 00:00
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Ecole d'ingénieur informatique et industriel

Re: Programmation du "jeu" de la roulette russe

Message non lude Marco » 15 Sep 2010, 18:21

Ou plutôt, "si x différent de 6"
Code: Tout sélectionner
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
Avatar de l’utilisateur
Marco
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 27.8%
 
Messages: 1259
Inscription: 22 Mar 2009, 00:00
Localisation: 78
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Programmation du "jeu" de la roulette russe

Message non lude kindermoumoute » 15 Sep 2010, 18:28

exacte ^^ donc récapitulatif :
Code: Tout sélectionner
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 !
Avatar de l’utilisateur
kindermoumouteProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 2.6%
 
Messages: 849
Inscription: 30 Sep 2009, 00:00
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Ecole d'ingénieur informatique et industriel

Re: Programmation du "jeu" de la roulette russe

Message non lude 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"
Avatar de l’utilisateur
Andrei210
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Prochain niv.: 16%
 
Messages: 19
Inscription: 15 Sep 2010, 00:00
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: 1ere S

Re: Programmation du "jeu" de la roulette russe

Message non lude 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
Avatar de l’utilisateur
Marco
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 27.8%
 
Messages: 1259
Inscription: 22 Mar 2009, 00:00
Localisation: 78
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Programmation du "jeu" de la roulette russe

Message non lude critor » 15 Sep 2010, 19:27

Andrei210 a écrit: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
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 54.5%
 
Messages: 42500
Images: 17353
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Programmation du "jeu" de la roulette russe

Message non lude kindermoumoute » 15 Sep 2010, 19:43

Andrei210 a écrit: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 !
Avatar de l’utilisateur
kindermoumouteProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 2.6%
 
Messages: 849
Inscription: 30 Sep 2009, 00:00
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Ecole d'ingénieur informatique et industriel

Re: Programmation du "jeu" de la roulette russe

Message non lude 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: Tout sélectionner
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.
Avatar de l’utilisateur
Andrei210
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Prochain niv.: 16%
 
Messages: 19
Inscription: 15 Sep 2010, 00:00
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: 1ere S

Re: Programmation du "jeu" de la roulette russe

Message non lude 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 !
Avatar de l’utilisateur
kindermoumouteProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 2.6%
 
Messages: 849
Inscription: 30 Sep 2009, 00:00
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Ecole d'ingénieur informatique et industriel

Suivante

Retourner vers TI-Basic

Qui est en ligne

Utilisateurs parcourant ce forum: ClaudeBot [spider] et 58 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
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
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1767 utilisateurs:
>1746 invités
>15 membres
>6 robots
Record simultané (sur 6 mois):
43991 utilisateurs (le 10/09/2025)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)