[PYTHON] Berechnete den Saldo der Grand Tour of Poker Stars

Was ist Pokerstars?

Pokerseite, auf der Sie online spielen können ist die größte in der Nachbarschaft. Es gibt auch viele verwandte Support-Tools.

Warum?

Wie oben erwähnt, gibt es viele Support-Tools, und im Grunde können Sie die Bilanzberechnung dem Tool überlassen. Die Grand Tour, die ich neulich spielen konnte, schien jedoch nicht von Holdem Manager 3 berechnet zu werden (siehe Foto unten). Ich denke, es wird bald hinzugefügt. Übrigens ist die aktuelle Situation so flach (es tut mir leid, dass es schwer zu verstehen ist, weil ich in der Zwischenzeit an einem anderen Turnier teilgenommen habe). HM3tp.png

Code

Klicken Sie hier für Github (https://github.com/na-sudo/pokerstarts_analyze)

git clone https://github.com/na-sudo/pokerstarts_analyze.git

Benötigt numpy. Die Testumgebung ist Python 3.8.5.

Ich kenne git nicht! Klicken Sie hier für diejenigen, die sagen.

grand_tour.py


import os,glob,sys
import json
import numpy as np

user = 'username'
srcdir = [
    'path to hand history1',
    'path to hand history2'
]

def make_pathlist(list_):
    li = []
    for path in list_:
        li += glob.glob(os.path.join(path, '**', '*Varied.txt'), recursive=True)
    return sorted(li)

def getNearestValue(list, num):
    """
    https://qiita.com/icchi_h/items/fc0df3abb02b51f81657
Überblick:Eine Funktion, die den Wert zurückgibt, der einem Wert aus der Liste am nächsten kommt
    @param list:Datenarray
    @param num:Zielwert
    @return Der Wert, der dem Zielwert am nächsten kommt
    """
    #Berechnen Sie die Differenz zwischen dem Listenelement und dem Zielwert und erhalten Sie den Index des Mindestwerts
    idx = np.abs(np.asarray(list) - num).argmin()
    return list[idx]

user_prize = user + ' wins $'
user_win = user + ' wins the tournament'
user_lose = user + ' finished the tournament'
pathlist = make_pathlist(srcdir)
game = [0]*6
debug = [0]*6
debug_diff = 0
cost = 0
prize = 0
buyin_list = [1, 2, 5, 12, 25, 60]
completed = 0

for path in pathlist:
    with open(path, 'r', encoding='utf-8')as f:
        txt = f.read().split('\n')
    buyin = 100
    for line in txt[2:6]:
        for word in line.split(' ')[::-1]:
            if '$' in word:
                buyin = min(buyin, float(word.replace('$','')))
                break
    buyin = getNearestValue(buyin_list, buyin/0.9)
    index = buyin_list.index(buyin)
    game[index] += 1
    cost += buyin
    for line in txt:
        if user_prize in line:
            prize += float(line.split(' ')[2].replace('$', ''))
        elif user_win in line:
            if buyin!=len(buyin_list):
                cost -= buyin_list[index+1]
            else:
                completed += 1
        elif user_lose in line:
            pass
        else:
            pass

    #print(game, cost, buyin)
#print(game, cost, prize, completed)
print('net prize :', round(prize - cost, 3))

Bitte kopieren und verwenden

Wie benutzt man

Öffnen Sie grand_tour.py mit einem Editor und geben Sie Ihren Pfad in user oder srcdir ein und führen Sie ihn aus. Da es rekursiv sucht, ist es in Ordnung, wenn Sie das übergeordnete Verzeichnis angeben.

user = 'username'← Meine Sterne ID
srcdir = [
    'path to hand history1',← Ort in der Pokerstars-App festgelegt
    'path to hand history2'← Wenn Sie HM3 usw. verwenden, löschen Sie es bitte, wenn Sie diesen Pfad nicht verwenden.
]

Es scheint unten auf der offiziellen Seite zu sein. C:\Users\YourUsername\AppData\Local\PokerStars\HandHistory\

Das Ergebnis sieht so aus

& python grand_tour.py
net prize : 22.54

Ich bin wie ein "$ 22.54" plus! Normalerweise verliere ich bei 5nlz, daher kann die Grand Tour köstlich sein!

Übrigens, wenn Sie in Zeile 68 (zweite Zeile von unten) einen Kommentar abgeben, werden Details angezeigt.

& python grand_tour.py
[109, 36, 13, 3, 1, 0] 109 131.54 0
net prize : 22.54

[Herausforderungsphase], Kosten, Preis, abgeschlossen Wird gedruckt. Die Kosten sind das gesamte Buy-In, der Preis ist der Gesamtpreis und die Anzahl der abgeschlossenen Abschlüsse. Die herausgeforderte Phase hat ein Buy-In von "[$ 1, $ 2, $ 5, $ 12, $ 25, $ 60]". Ich habe $ 1 109 Mal ausprobiert, aber ich habe es noch nicht ausprobiert, weil $ 60 0 ist. Ich denke, selbst wenn Sie es mit "$ 5" oder so versuchen, wird es richtig berechnet.

Schließlich

Dies ist mein erstes Mal mit Qiita und Github, also würde ich mich freuen, wenn Sie auf verschiedene Dinge hinweisen könnten!

Referenz (im Code verwendet)

Rufen Sie einen Wert aus einem Python-Listenelement (Qiita) ab, der einem Wert am nächsten kommt

Recommended Posts

Berechnete den Saldo der Grand Tour of Poker Stars
Der Beginn von cif2cell
Die Bedeutung des Selbst
der Zen von Python
Die Geschichte von sys.path.append ()
Rache der Typen: Rache der Typen
AtCoder Grand Contest 046: A --Takahashikun, The Strider Animationszeichnung