Autorisation : Membre
Nb de messages : 17
Inscrit le : Jeu 24 Nov 2011, 15:38
Posté le : Mar 29 Nov 2011, 22:36
salut tous le monde voila comme le nom l'indique je vien de finir mon black jack donner moi vos avis dessus et armer vous de patiente et de courage pour le lire car il est loooong
:lbl C
:100=>S
:14=>N
:effecr
:ouput(5,4,"black jack!
:pause
:ouput(1,1,"fais ta fortune
:pause
:ouput(1,1,"...
:pause
:ouput(1,1,"ou ta ruine!
:pause
:effecr
:menu("menu","regles",A,"jeu",B
:lblA
:ouput(1,1,"le but du jeu est de faire un meilleur score que son adversaire sans toutefois dépasser 21 sinon cest une defaite immediate"
"on distribue 2 cartes (1er et 2nd chiffre) dont on calcule le total (3ème chiffre)"
:pause
:ouput(1,1,"vous pouvez alors rajouter jusqu'a 5 cartes (sachant que les chiffres sont les cartes dans l'ordre ou elles sont tiré et le dernier chiffre est le total
:pause
:effecr
:goto C
:lbl B
:int (rand*10+1)=>A
:int (rand*10+1)=>B
:A+B=>X
:disp A,B,X
:pause
:effecr
:menu("choix","miser",U,
:lbl U
:K=>U
:S-K=>S
:menu("choix","rajouter",2,"s’arrêter",1
:lbl 2
:int (rand*10+1)=>C
:X+C=>X
:disp A,B,C,X
:pause
:effecr
:if X>=21
:then
:goto 1
:end
:menu("choix","rajouter",3,"s'arreter",1
:lbl 3
:int (rand*10+1)=>D
:X+D=>X
:disp A,B,C,D,X
:pause
:effecr
:if X>=21
:then
:goto 1
:end
:menu("choix","rajouter",4,"s'arreter",1
:lbl 4
:int (rand*10+1)=>E
:X+E=>X
:disp A,B,C,D,E,X
:pause
:effecr
:goto 1
:lbl 1
:int (rand*10+1)=>A
:int (rand*10+1)=>B
:A+B=>Y
:disp A,B,Y
:pause
:effecr
:if Y>=N
:then
:goto E
:end
:int (rand*10+1)=>C
:Y+C=>Y
:effecr
:disp A,B,C,Y
:pause
:effecr
:if Y>=N
:then
:goto E
:end
:int (rand*10+1)=>D
:Y+D=>Y
:effecr
:disp A,B,C,D,Y
:pause
:effecr
:if Y>=N
:then
:goto E
:end
:int (rand*10+1)=>E
:Y+E=>Y
:effecr
:disp A,B,C,D,E,Y
:pause
:effecr
:lbl E
:if X>=22 ou :if X<=21 and Y<=21 and X<Y
:then
:disp "perdu
:S-K=>S
:disp "somme=
:disp S
:pause
:effecr
:end
:if X<=21 and Y>=22 ou :if X<=21 and Y<=21 and X>Y
:then
:disp "gagner
:S+K*2,5=>S
:disp "somme=
:disp S
:pause
:effecr
:end
:if x<=21 and Y<=21 and X=Y
:then
:disp "egalité
S=S
disp "somme=
:disp S
:pause
:effecr
:end
:if S=0
:then
:disp "somme=
:disp S
:pause
:effecr
:disp "tu est ruiné !!!
:goto C
:end
:if S=1000
:then
:ouput (1,1,"tu es milliardaire
:pause
:effecr
:18=>N
:end
:if S=3000
:then
:ouput (1,1,"stp sort du casino
:16=>N
:end
:goto B
voili voulou il est a moi et vous avez le droit dy jouer et de me donner vos avis surtout
---------------------- i love my TI 82 stats.fr but i prefere the other
Autorisation : Membre
Nb de messages : 121
Inscrit le : Dim 13 Nov 2011, 14:26
Posté le : Mar 29 Nov 2011, 22:47
Y jouer, je sais pas, parce qu'il est vraiment très long, et à recopier, ça prendrait beaucoup de temps... ^^
Déja, il me semble que tu dois avoir des erreurs syntaxe à cette ligne (elle y est deux fois vers la fin)
Code
:if X>=22 ou :if X<=21 and Y<=21 and X<Y
A cause des deux points après le "ou".
Néanmoins, deux trucs me chagrinent :
- Les probabilités ne sont pas respectées : Tu utilise des entiers entre 1 et 10 alors que tu devrais aller jusqu'à 13
- L'exception de l'as n'est pas gérée. (c'est normalement la partie la plus complexe du code)
Je te propose plusieurs trucs pour améliorer ton code, une fois que tu aura réglé tout ça:
- Remplacer les "Disp" Par des "Output", c'est plus long, mais ça rend mieux
- Effectuer un affichage graphique avec les cartes, ou les figures sont gérées
- Utiliser les listes pour simplifier le code (avec la fonction Somme( par exemple
- Enlever ces label de partout, on s'y retrouve plus !
----------------------
Citer
Le temps est une variable dans une boucle infinie, qu'on ne cesse d'incrémenter.
Autorisation : Membre
Nb de messages : 17
Inscrit le : Jeu 24 Nov 2011, 15:38
Posté le : Mer 30 Nov 2011, 0:08
pour lerreur syntaxe desoler faute de copier coller et pour les autres chose du blackjack cest un tout autre niveau mais jy travaillerai
ensuite les proba et ten donner quil y a seulment 4 carte avec la mm valeur je voix pas ou on a un probleme
---------------------- i love my TI 82 stats.fr but i prefere the other
Autorisation : Membre
Nb de messages : 121
Inscrit le : Dim 13 Nov 2011, 14:26
Posté le : Jeu 01 Déc 2011, 11:50
Un jeu de cartes normal est composé de 52 cartes. Dans celles ci, on y retrouve 13 cartes, chacune en 4 exemplaire (une par couleur)
Ainsi, tu peux trouver quatre 2. La probabilité de tomber sur un 2 est donc de
4/52, soit 1/13=0.08=8%
Au blackJack, les cartes 10, J, Q, K peuvent compter pour 10 points.
On retrouve dans un jeu 4 exemplaire de chacune de ces 4 cartes.
La probabilité est donc de (4x4)/52 = 4/13 = 0.31 = 31%
Dans ton programme, cette partie du code est gérée par EntAléat(1,10)=>D
On a donc 10% de chance d'obtenir chacun des chiffres, entre 1 et 10, ce qui ne respecte pas les probabilités démontrées plus haut !
Pour respecter ces probabilités, il faudrait donc faire
Code
:EntAléat(1,13)=>D
:If D>10:10=>D
Qui est simplifiable par
Code
:EntAléat(1,13)=>D
:10(D>13)+(D=<10)D=>D
CQFD.
----------------------
Citer
Le temps est une variable dans une boucle infinie, qu'on ne cesse d'incrémenter.
Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Jeu 01 Déc 2011, 17:03
Tu as oublié d'écrire 13 lors de ton copier/coller. (ça porte malheur ? )
De plus :
Code
:min(10,EntAléat(1,13)=>D
Remplace avantageusement ton code bien que je ne voie pas l'intérêt de la manipulation.
---------------------- ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)