Poster un nouveau sujet Poster une réponse
mon blackjack
Auteur Message
kaiser38



Autorisation : Membre
Nb de messages : 17
Inscrit le : Jeu 24 Nov 2011, 15:38
Posté le : Mar 29 Nov 2011, 22:36   Citer 

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
 Adresse email Haut de page Bas de page 
 
Polymorph



Autorisation : Membre
Nb de messages : 121
Inscrit le : Dim 13 Nov 2011, 14:26
Posté le : Mar 29 Nov 2011, 22:47   Citer 

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.


Polymorph, 23/11/2011
Snake!
 Adresse email Haut de page Bas de page 
 
kaiser38



Autorisation : Membre
Nb de messages : 17
Inscrit le : Jeu 24 Nov 2011, 15:38
Posté le : Mer 30 Nov 2011, 0:08   Citer 

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
 Adresse email Haut de page Bas de page 
 
Polymorph



Autorisation : Membre
Nb de messages : 121
Inscrit le : Dim 13 Nov 2011, 14:26
Posté le : Mer 30 Nov 2011, 17:52   Citer 

Ben y'a 4x plus de chance de tomber sur une carte à 10

Soit 4x1/13 = 4/13 = 0,22... 22%
Alors que toi tu a une chance sur 10, soit 0,1, soit 10%

C'est deux fois moins.

----------------------

Citer
Le temps est une variable dans une boucle infinie, qu'on ne cesse d'incrémenter.


Polymorph, 23/11/2011
Snake!
 Adresse email Haut de page Bas de page 
 
kaiser38



Autorisation : Membre
Nb de messages : 17
Inscrit le : Jeu 24 Nov 2011, 15:38
Posté le : Jeu 01 Déc 2011, 5:35   Citer 

mais il y a 4 rois 4 dames4 valet 4 10 etc ... donc on a autant de chance de tomber sur l'un que sur l'autre

----------------------
i love my TI 82 stats.fr but i prefere the other
 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
Polymorph



Autorisation : Membre
Nb de messages : 121
Inscrit le : Dim 13 Nov 2011, 14:26
Posté le : Jeu 01 Déc 2011, 11:50   Citer 

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.


Polymorph, 23/11/2011
Snake!
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Jeu 01 Déc 2011, 17:03   Citer 

Tu as oublié d'écrire 13 lors de ton copier/coller. (ça porte malheur ? godgrace.gif)
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)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Polymorph



Autorisation : Membre
Nb de messages : 121
Inscrit le : Dim 13 Nov 2011, 14:26
Posté le : Jeu 01 Déc 2011, 22:37   Citer 

Bien vu >.<
Le principe est simplement de garder les probabilités du vrai Black Jack, ce qui permettra aux puristes d'être bons à ce jeu ^^

----------------------

Citer
Le temps est une variable dans une boucle infinie, qu'on ne cesse d'incrémenter.


Polymorph, 23/11/2011
Snake!
 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
Poster un nouveau sujet Poster une réponse





  Powered by Fire-Soft-Board v1.0.10 © 2004 - 2024 Groupe FSB
Page générée en 9 requêtes
BlackOne par Grimmlink