Aller au contenu
Statuts

Mike_modano

CPiste
  • Messages

    252
  • Inscrit(e) le

  • Dernière visite

  1. [Bilan] Emmanuel Macron : 2017 - 2022

    Ce n'est pas grave EM est tellement bon qu'il n'a pas besoin de beaucoup de monde dans son parti... Juste de quoi faire un gouvernement, un 2/3 d'assemblée...
  2. [RAGGAE/DANCEHALL/ZOUK] Topic unique

    Brand new tune!
  3. [Bilan] Emmanuel Macron : 2017 - 2022

    lol toutes les occasions sont bonnes pour cracher sur Macron... t'es même prêt à utiliser les analyses politiques de quelqu'un que tu devais haïr presque autant que Macron. Oublie-le un peu tu te fais du mal, tu viens ici uniquement poster des articles anti-Macron. De loin, ça ressemble à de l'obsession.... Objectivement, pour le moment j'ai l'impression que les relations sociales n'ont jamais été aussi apaisées... et c'est plutôt bon signe pour moi!
  4. Package poker sur anaconda

    En m'amusant un peu à calculer des équités préflop, je trouve 2 gros défauts à ce code : 1. il ne tient pas compte des égalités Par exemple, la fonction poker(['8C TS KC 9H 4S', '8H TH KD 9D 4C']) renvoi '8H TH KD 9D 4C' mais j'imagine que c'est facilement contournable en comparant 2 tuple 2. le code est lent par rapport aux logiciels existants : Même si mon code est probablement pas du tout optimisé, si on calcule une équité préflop entre 2 mains sur 1 million d'occurences le code met un peu plus d'une 1 min 30 à sortir un résultat... alors qu'avec les logiciels type pokerstove c'est quasiment immédiat.... Cela va s'empirer si on intègre le concept de range... Sais-tu quelle méthode utilise ces logiciels?
  5. Package poker sur anaconda

    Pour les novices sur python comme moi, j'ai découpé tout le code en commentant : #si on prend la main suivante : hand = ['AH','KH','JH','KS','TS'] def score(hand): ranks = '23456789TJQKA' #print(ranks.find('A')) affiche 12 #print(ranks.find('2')) affiche 0 #find récupère le rang de toutes les cartes r dans hand selon le classement de ranks #print(''.join(hand).count('A')) affiche 1 #print(''.join(hand).count('K')) affiche 2 #''.join(hand).count(r) compte le nombre de fois que la carte r apparait dans la main #rcounts1 = {ranks.find(r): ''.join(hand).count(r) for r, _ in hand} #créé des couples (rang de la carte, nombre de fois qu'elle apparait dans hand) pour chaque carte de hand #print(rcounts1) affiche {12: 1, 11: 2, 9: 1, 8: 1} rcounts = {ranks.find(r): ''.join(hand).count(r) for r, _ in hand}.items() #rcounts créé un dictionnaire de couples (rang de chaque carte de hand : nb de fois que la carte apparait dans hand) #print(rcounts) affiche dict_items([(12, 1), (11, 2), (9, 1), (8, 1)]) #ranks1 ={*sorted((cnt, rank) for rank, cnt in rcounts)[::-1]} #print(ranks1) affiche {(1, 8), (2, 11), (1, 9), (1, 12)} #tri par ordre croissant à l'intérieur des couples et les couples entre eux (comment?) #affiche la même chose en ajoutant *sorted et/ou [::-1]?? #print(list(zip(*sorted((cnt, rank) for rank, cnt in rcounts)[::-1]))) affiche [(2, 1, 1, 1), (11, 12, 9, 8)] #tri: carte qui revient le plus souvent (trié par rang si égal) #puis rang des cartes pour les cartes qui ne reviennent qu'une fois score, ranks = zip(*sorted((cnt, rank) for rank, cnt in rcounts)[::-1]) #zip créé un couple (nombre de fois que les cartes appraissent dans hand, rang de chaque carte de hand) #print(score) affiche (2, 1, 1, 1) #print(ranks) affiche (11, 12, 9, 8) if len(score) == 5: #si le nombre de chiffre dans la liste score = 5, soit toutes les cartes sont différentes if ranks[0:2] == (12, 3): #si les 2 premières cartes de ranks sont un A et un 5, c'est une suite au 5 #print(ranks[0:2]) affiche (11, 12) ranks = (3, 2, 1, 0, -1) #on attribue à la main le ranks de suite le plus petit straight = ranks[0] - ranks[4] == 4 #si il y a 4 rangs de différence entre la plus grande et la plus petite carte c'est une suite flush = len({suit for _, suit in hand}) == 1 #len({suit for _, suit in hand}) compte le nombre de couleurs différentes dans hand, si = 1 c'est une flush '''no pair, straight, flush, or straight flush''' score = ([(1,), (3,1,1,1)], [(3,1,1,2), (5,)])[flush][straight] #défini score suivant si la main est no pair (score = 1,), straight (score = 3,1,1,1) #flush (score = 3,1,1,2), or straight flush (score = 5,) return score, ranks #renvoi la liste ((score), (ranks)) de la main entrée dans la fonction #score(['AH', 'KH', 'JH', 'KS', 'TS']) affiche ((2, 1, 1, 1), (11, 12, 9, 8)) #d'autres exemples : #score(['AH', 'KH', 'JH', 'QH', 'TH']) renvoi ((5,), (12, 11, 10, 9, 8)) #score(['9S', 'KH', 'JH', 'QC', 'TH']) renvoi ((3, 1, 1, 1), (11, 10, 9, 8, 7)) #score(['9S', '9H', 'JH', '9C', 'TH']) renvoi ((3, 1, 1), (7, 9, 8)) #score(['9S', '9H', 'JH', 'JC', 'AH']) renvoi ((2, 2, 1), (9, 7, 12)) def poker(hands): scores = [(i, score(hand.split())) for i, hand in enumerate(hands)] #calcule les différents scores de toutes les mains comprises dans la fonction poker #en les découpant sous le format [(indice de la main i, (score(hand))] #si on prend notre main de départ et une autre #print(scores) affiche [(0, ((2, 1, 1, 1), (11, 12, 9, 8))), (1, ((2, 1, 1, 1), (4, 6, 5, 2)))] winner = sorted(scores, key=lambda x: x[1])[-1][0] #tri avec comme critère premier la 2ème valeur de la liste soit la 1ère de la partie score #puis le rang des mains de la partie ranks #toujours avec les 2 mêmes mains : #print(winner) affiche 0 (l'indice de la main gagnante) #print(hands[winner]) affiche AH KH JH KS TS (la main gagnante) return hands[winner] poker(['8C TS KC 9H 4S', '7D 2S 5D 3S AC', '8C AD 8D AC 9C', '7C 5H 8D TD KS']) #affiche '8C AD 8D AC 9C' Il y a quelques parties que je n'ai pas compris et j'espère ne pas avoir écrit trop de conneries... mais il est vrai qu'il est bien foutu ce code. Il faut corriger en : score = ([(1,), (3,1,1,1)], [(3,1,1,2), (5,)])[flush][straight] pour que cela fonctionne. Je vais maintenant utiliser le deck et simuler des rencontres...
  6. [Bilan] Emmanuel Macron : 2017 - 2022

    Non, mais c'est efficace... Du pragmatisme on t'as dit, du pragmatisme....
  7. Package poker sur anaconda

    Cool merci, tu viens de me donner un os à ronger pendant un bon moment....
  8. Package poker sur anaconda

    Merci d'avoir pris un peu de temps pour mon cas, je comprends mieux pourquoi l'évaluation des mains plantait si souvent! Il a pourtant 197 stars sur Github.. ça ne veut rien dire? Oui, si tu as un package de meilleur qualité pour évaluer les mains de poker, je veux bien. PS : J'ai finalement réussi à faire fonctionner tensorflow sur une config python3.5...
  9. Package poker sur anaconda

    J'utilise windows 8.1, anaconda et jupyter. Anaconda3 5.0 et python 3.6 (64-bit) Ce que je ne comprend pas non plus c'est que la commande pip3 install n'est pas reconnue même avec la version 3 de python? J'utilise donc pip install. Les dossiers contenant les packages doivent être renseignées dans la variable systère "Path" pour windows et cela est fait automatiquement lors de l'installation. Il faut tout de même appeler le module dans jupyter avec un "from deuces import Card"... Le package se trouve ici : https://github.com/worldveil/deuces J'ai finalement réussi à installer Deuces en réinstallant la version 2 d'anaconda qui tourne avec la version 2.7 de python. Par contre, depuis impossible de faire tourner tensorflow même en créant un environnement virtuel qui tourne avec la version 3.6 de python.
  10. [Bilan] Emmanuel Macron : 2017 - 2022

    On va dire que depuis trente ans, c'est celui à l'air d'être le plus proche entre promesses de campagnes et réformes réelles!
  11. Package poker sur anaconda

    Salut, Après avoir visionné les vidéos de Tipton, j'ai réussi à faire tourner son programme de résolution de shove/fold en HU... Je souhaite maintenant aller plus loin et installer un package qui calcule la valeur des mains... J'en ai trouvé plusieurs que je peux installer sur python avec la commande pip install mais je n'arrive pas à les installer avec conda install (erreur = "Package missing in current win-64 channels" pour tous) et dès que je souhaite appeler un module sur jupyter j'ai le message d'erreur suivant : "ModuleNotFoundError: No module named 'card'". Je précise que je suis sous windows et que je débute sur ce type de programmation... j'ai évidemment parcouru pas mal de forum sans comprendre le pourquoi du comment et trouver la solution... Merci par avance si une âme charitable veut bien m'aiguiller! PS : l'installation avec pip install créé bien les fichier dans les dossiers d'anaconda :
  12. Le tableau de Nash et ses surprises

    Assez fière de moi d'avoir réussi à faire tourner ce programme!!
  13. [Bilan] Emmanuel Macron : 2017 - 2022

    J'évoquais juste le fait que pour toi ce n'était pas acceptable (+ fort que pas la panacée d'après la définition... ) de créer des emplois précaires pour réduire le chômage lorsque que l'on faisait la promotion du modèle allemand... Et désormais, les travailleurs pauvres ça devient "moins grave" (pas la panacée - fort que c'est pas bien d'après la définition... ) vu que c'est l'état qui créé ces emplois... ça ne me parait pas très cohérent et je me demandais si cela ne proviedrait pas du fait que cette idée (que je ne suis pas en train de défendre) est celle de MACRON le social-libéral que tu hais tant? Sans aucune malhonnêteté intellectuelle, aucune!
  14. [Bilan] Emmanuel Macron : 2017 - 2022

    C'est donc des exceptions, les emplois précaires c'est pas bien sauf si c'est l'état qui les utilise... ou sauf si c'est Macron qui les supprime...
English
Retour en haut de page
×
Winamax : Wam vs CP X
Winamax : Wam vs CP X