POKER - CALCUL DE PROBABILITES POUR VOS MAINS EN VB.NET

Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 - 9 août 2010 à 19:29
lexsty Messages postés 169 Date d'inscription samedi 10 décembre 2005 Statut Membre Dernière intervention 18 juin 2017 - 1 sept. 2011 à 03:07
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/52158-poker-calcul-de-probabilites-pour-vos-mains-en-vb-net

lexsty Messages postés 169 Date d'inscription samedi 10 décembre 2005 Statut Membre Dernière intervention 18 juin 2017
1 sept. 2011 à 03:07
Bonjour us_30.
Je pense que VB6 est déjà très puissant et je suis sûr que je suis très loin de le connaître vraiment. Dans mon cas j'ai donc jugé que VB.NET n'était pas ma priorité.
Bon courage pour ton projet d'interface de jeu pour le Poker.
Bien que n'étant pas un joueur de Poker (je suis plus intéressé par les probabilités), je viendrais de temps en temps suivre ton travail.
A plus
JP.
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
31 août 2011 à 16:46
Bonjour Lexsty,

Merci pour ton commentaire. Décidément plus personne programme en VB.NET ^^... bah, il va falloir je me remettre à VB6 alors... :-);

Je pense faire une petite interface de jeu pour le poker, mais ne possédant pas directement "d'intelligence artificielle". Juste l'interface. Les "IA" communieront avec l'interface pour jouer, et donc seront autonomes en quelques sortes... Ainsi, ils pourront être programmés dans n'importe quelle langage (dont VB6). Ensuite, on pourra lancer des concours du meilleur "IA poker" (et faire de nombreux tests). Je pense également, laisser la possibilité à un humain de jouer contre les IA.

Amicalement,
Us.
lexsty Messages postés 169 Date d'inscription samedi 10 décembre 2005 Statut Membre Dernière intervention 18 juin 2017
29 août 2011 à 22:38
Bonjour us_30
Je viens de découvrir cette source très bien commentée.
Le sujet est très intéressant.
Dommage pour moi qu'elle ne soit pas sous VB6.
Comme je ne peux pas la tester, je ne peux pas la noter, mais pour le sujet et les commentaires c'était bien parti pour un 10/10
Sur ton site il y a aussi pas mal de sujets traités qui ne manquent pas d'intérêt.
Bonne continuation pour ton travail et à plus.
JP F.
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
25 févr. 2011 à 16:47
Bonjour,

Utiliser VB2010 !

Amicalement,
Us.
sniperone1310 Messages postés 1 Date d'inscription samedi 24 avril 2010 Statut Membre Dernière intervention 1 février 2011
1 févr. 2011 à 14:15
Bonjour,

comment fait on pour ouvrir votre appli ?

Merci d'avance
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
10 oct. 2010 à 11:41
Bonjour,

'conversation' va s'y ! On peut utiliser cette espace pour échanger des idées... pas de problème !

Amicalement,
Us.
sloshy Messages postés 1 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 26 septembre 2010
26 sept. 2010 à 13:59
Bonjour,
Un peu en retard j'avoue mais j'aime beaucoup ta source. (j'ai un peu de mal avec le .NET mais ca reste compréhensible).
Je travaille sur le même projet (en C ceci dit) et j'aimerai savoir si tu pouvais être intéressé par une conversation ou l'autre sur le sujet (je pense que ton expérience doit profitable pour des personnes comme moi).
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
23 août 2010 à 19:15
Bonjour,

Si je puis me permettre une remarque sur les notations d'une source, c'est d'essayer de noter à bon escient. Elle doit refléter une certaine appréciation après avoir tester la source.

Hélas, sur code-source on ne peut plus mettre de code exécutable pour éviter les abus (ou la propagation) des virus. Donc, hélas, Chrysostome, je ne peux pas te satisfaire. Comme toutes mes sources sont temporaires, elle finira par disparaître de code-source, mais probablement elle sera mise sur mon modeste site perso avec son EXE. Mais d'ici là...

Amicalement,
Us.
cs_Chrysostome Messages postés 40 Date d'inscription vendredi 17 octobre 2003 Statut Membre Dernière intervention 8 juillet 2013
23 août 2010 à 11:58
Salut, je suis moi-même joueur de poker (sur Everest) et développeur. J'ai un pb d'installation de VB2010, je n'ai plus assez de place sur C:, est-ce que tu peux compiler ton programme en .exe, ou en VB5, ou en VB2005. Je pense que je pourrais t'apporter peut-être quelques chemins de travail supplémentaires. Merci.
guitariste82 Messages postés 3 Date d'inscription mercredi 3 janvier 2007 Statut Membre Dernière intervention 20 août 2010
20 août 2010 à 13:45
C'est une erreur, ca mérite par rapport à mon niveau de programmation 10,
Toutes mes excuses pour cette erreur
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
19 août 2010 à 14:52
Bonjour,

PokerUs est fait sous VB2010 Express (gratuit comme VB2008 Express), et utilise le framework 4.0 obligatoire sous VB2010.

Pour jouer avec, il ne faut pas donner plus d'importance qu'il ne faut à la mesure de probabilité. Elle n'est qu'un guide "relatif" pour deux raisons.

La 1er raison la moins importante :

- c'est que le calcul n'est qu'approximatif puisque simulé. La différence pouvant parfois atteindre au moins 5 ou 6% avec un calcul plus précis. Cela peut faire la différence si vous basez vos décisions dessus. Par exemple, quand il y a que 48% de chance de gagner ou d'être en égalité, en réalité cela peut-être plutôt 48-5=43% ou 48+5=53%... et dans ce cas, où on est sur la limite "je gagne en moyenne et à la longue" ou "je perds en moyenne à la longue" doit appeler à réflexion.

La 2ième raison plus fondamentale :

- Arrivé à la river, les joueurs restants sont ceux qui ont souvent un "jeu" en main. En clair, il est rare de voir à l'abattage des cartes une "bataille" avec une carte la plus haute (c'est à dire aucune combinaison). Ceci est d'autant plus vrai quand il y a eu des enchères assez forts. Logique, êtes-vous prêt à miser fort sans rien ? Non, bien sur... surtout si vous êtes au Turn, où il y a peu de chance d'améliorer encore son jeu. Et en cas de mise assez fort, le Bluff serait suicidaire (du moins à un moment ou l'autre). Il est préférable de passer, bien évidemment. Or, le calcul de probabilité ici ne tient pas compte de l'information supplémentaire qu'on peut considérer comme réalisé à la River : "Les adversaires (restants) non pas de carte les plus hautes".
Qu'est-ce que cela change ? Simple, imaginer que votre probabilité (à priori) de gagner est de 70% avec une paire... Pas trop mal, donc on peut penser payer pour voir. Mais si les cartes les plus hautes représentent 20% des cas, en réalité, la mesure de probabilité de gagner serait plutôt aux alentours de (70-20)/(100-20) 50/80 62,5% ... C'est déjà beaucoup moins intéressant, surtout si la mise pour voir est forte..

Je forme actuellement une autre version de pokerus beaucoup plus améliorée, en tenant compte de bien plus de critère donc celui-ci... mais je pense pas la communiquer...

Néanmoins, juste en rajoutant à cette version un calcul tout bête du rapport : Proba Favorable / (Proba Perdre/Nb adversaire) et transformer ce rapport en "cote" (donc c'est une "cote" appliqué aux probas), on peut déjà prendre quelques décisions simples dans de nombreux cas.
Par exemple, si cette cote dépasse 1/1.5, laisser tombé. Si cette cote commence à atteindre 2/1 poursuivre. Bien sur, cette mesure devient intéressante surtout après le Flop.
Pour ma part, sur Winamax en argent fictif, en jouant systématique (hormis quelques rares cas ou des dérangés misent ALL-IN d'entrée de jeu) jusqu'au FLOP, puis en considérant cette cote, je suis passé de 50 à 200, en jouant environ une centaine de partie...

Pour tout dire, j'ai évidemment "recavé" quelques fois pour faire des tests, et comprendre comment faire simple et efficace... Actuellement je baisse (144), tout simplement car je teste le jeu des adversaires à la River, car je tente de comprendre statistiquement le Bluff... Ce qui me permet d'ailleurs de vous faire le commentaire de la "La 2ième raison"...

Si vous avez de bonne suggestion d'amélioration intéressante + "efficace" + simple à mettre en oeuvre (il est primordial d'avoir peu de chose à saisir), n'hésitez pas !

JE recherche notamment à augmenter la précision de calcul. J'ai une bonne piste, mais c'est plutôt un peu hard...

Amicalement,
Us.

PS : guitariste82 : 5/10 ! tu es du genre exigent...
guitariste82 Messages postés 3 Date d'inscription mercredi 3 janvier 2007 Statut Membre Dernière intervention 20 août 2010
18 août 2010 à 18:17
Merci GW74372 , Effectivement après avoir supprimé la référence :'System', je l'ai ré-importé et
je n'ai plus d'erreur à la compilation.

Je vais tester le programme sur Winamax ce weekend car même si Bruel dit "Qu'importe les cartes c'est ce
qu'on en fait qui est important" quelques Stats ne font pas de mal :-),

En tous les cas Bravo Us_30, car c'est moins évident qu'il n'y parait....
GW74372 Messages postés 6 Date d'inscription mercredi 24 septembre 2008 Statut Membre Dernière intervention 31 mars 2010
17 août 2010 à 23:31
Bonjour,

Félicitation, US_30, c'est une source de qualiter pour ce qui est de l'algo.
J'avoue avoir voulue tenter l'aventure, mais le courage m'as manqué.

Un peu de modelisation n'aurait pas ternie la chose par contre mais bon!!

Pour guitariste82, c'est compatible à condition de supprimer dans les références du projet les dll du framework 2.0 et de les remettre à la main!!
guitariste82 Messages postés 3 Date d'inscription mercredi 3 janvier 2007 Statut Membre Dernière intervention 20 août 2010
17 août 2010 à 16:51
Bonjour,

Joueur de poker passionné, ton appli m'intéresse fortement.
Juste une petite info c'est une appli compatible avec visual studio express 2008 ? car j'ai des erreurs à la compilation.....

Mais bon je suis meilleur joueur de poker que programmeur :-)
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
10 août 2010 à 23:15
Salut ADN56,

Avec la mise à jour, le programme fonctionne correctement. J'avais commis une bévue sur le calcul pour la couleur...

Pour info, pour obtenir une précision des résultats assez stable, il faut faire pas moins de 200 000 simulations en tout. Ce qui est un peu lent au final, forcément...

Je réfléchi pour optimiser l'algo de simulation. En effet, ce que j'ai fait est juste, mais naïf. A chaque simulation, on retire les cartes manquantes, ce qui est forcément pénalisant. En réalité, il me semble qu'on peut très bien tirer les cartes du tapis manquant, d'une part, et simuler les différents mains avec ce tapis, puis seulement après avoir obtenu une proba assez sur, refaire un tirage du tapis... En terme de proba cela ne devrait rien changé, mais en terme d'algorithme, il y a beaucoup à gagner, car on réalise moins d'opérations (en quelque sorte) en commençant par moins tirer de carte... Enfin, bref.

Merci pour ton encouragement,

Amicalement,
Us.

PS : "pense tu vraiment faire autant de partie ?"... Ben, si je fais une LONG partie ! (bien vu...)
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
10 août 2010 à 17:56
pi tiens 9/10 (pas 10/10 parceque je sais pas dire s'il marche ton code :D)
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
10 août 2010 à 17:54
US_30 je suis bien incapable de te corriger quoi que soit !
C'est plutôt toi qui m'a appris des choses, grace notament à ce tuto toujours utile à garder sous le coude :
http://www.vbfrance.com/tutoriaux/GRANDEUR-DECADENCE-VB2008_891.aspx
TOut y est dans ton code, utilisation des sender, handles, TypeOf Lab Is Label. nan sérieux c'est bien mieux que ce que j'aurais fais !
C'est d'ailleurs peut être du second degrée du coup ??? missant ^^

A si tiens juste pour la form(e) ^^
NomMain = NomMain & " de hauteur " & NomCarte(ValeurCarte(5))
rhooo et le &= alors :) et le stringbuilder :)
Allez je te taquine un peu : pense tu vraiment faire autant de partie ?
Dim Gagne As Long = 0 ' Compte du nb de partie gagnante
Dim Egalite As Long = 0
Dim Perdu As Long = 0 ' LOL
Continu c'est la premiére source que lis de toi et ça un pti gout de reviens vite. SAlut et bonne prog.
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
10 août 2010 à 14:37
Salut,

Okay j'vas rajouter les deux jokers, mais si ça bug après, qu'on ne vienne pas me chercher... :);

ADN56, c'est bien dommage que ton œil avisé ne veille pas voir... Le poker est un jeu assez basique, voir très simple... Mais il est vrai que les présentations qu'on trouve sur internet sont souvent rebutantes. Ceci dit, l'optimisation de la programmation n'a pas nécessairement besoin qu'on connaisse parfaitement le jeu.

Merci pour vos encouragements,

Amicalement,
Us.
e_NeX Messages postés 104 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 30 novembre 2009
9 août 2010 à 23:43
et les deux jokers... il sont ou ...

lol.. ok ok!

sympa ^^
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
9 août 2010 à 19:29
ah ben ça nous change ! enfin un code qui demande réflexion ^^
bon perso j'y connais rien au poker, mais bon cela fait plaisir à lire !
++ us_30
Rejoignez-nous