Vielen Dank für das Surfen. Es ist pbird gelb.
Dieses Mal habe ich gezählt, wie oft "AA" an "alle 10.000 Hände" verteilt wurde. Es gibt Tage, an denen AA extrem wird und Tage, an denen es überhaupt nicht kommt, aber was ist mit der Realität ...
↓ Analyseergebnis
Wie man diese Tabelle liest ・ Die x-Achse ist alle 10.000 Hände (~ 10000, ~ 20000, ~ 30000, ...) ・ Die y-Achse gibt an, wie oft AA verteilt wurde ist.
Das Maximum ist 67 Mal und das Minimum ist 31 Mal, was ziemlich verteilt ist. .. ..
Ich habe auch KK überprüft. ↓ Analyseergebnis
Unten ist der Quellcode. Das Programm ist ein absoluter Anfänger. Wenn Sie also Ideen haben, wie Sie besseren Code schreiben können, lassen Sie es uns bitte wissen! !!
pokermain.py
from holdcards import Holdcards
from plotgraph import Plotgraph
import os
import glob
import re
path='Schreiben Sie den Pfad hier'
hand = "AA" #Hand, die Sie überprüfen möchten: Kann frei geändert werden
count = 10000 #Für jede Hand, die Sie überprüfen möchten: Kann frei geändert werden
num = lambda val : int(re.sub("\\D", "", val))
filelist = sorted(glob.glob(os.path.join(path,"*.txt"),recursive=True),key = num)
totcards = []
graphdata = []
countdata = []
counthands = []
for item in filelist:
print(item)
with open(item) as f:
data = f.readlines()
card = Holdcards()
h_cards = card.find_holdcards(data)
totcards += h_cards
i = 0
while len(totcards[count*i:count*(i+1)]) == count:
graphdata.append(totcards[count*i:count*(i+1)])
#counthands.append(str(count*i+1)+"~"+str(count*i+len(totcards[count*i:count*(i+1)])))
i += 1
for item in graphdata:
countdata.append(item.count(hand))
print(len(graphdata))
print(countdata)
graph= Plotgraph()
graph.writegraph(countdata,hand,count,len(graphdata)*count)
python:holdcards.py
class Holdcards:
def __init__(self):
self.trump={"A":"14","K":"13","Q":"12","J":"11","T":"10","9":"9","8":"8","7":"7","6":"6","5":"5","4":"4","3":"3","2":"2"}
self.r_trump={"14":"A","13":"K","12":"Q","11":"J","10":"T","9":"9","8":"8","7":"7","6":"6","5":"5","4":"4","3":"3","2":"2"}
self.hands = 0
self.tothands = 0
self.handlist = []
def find_holdcards(self,data):
holdcards = []
for item in data:
if 'Dealt to' in item:
item = item[-7:-2]
if item[1] == item[4]:
if int(self.trump.get(item[0])) > int(self.trump.get(item[3])):
item = item[0] + item[3] + 's'
else:
item = item[3] + item[0] + 's'
else:
if int(self.trump.get(item[0])) > int(self.trump.get(item[3])):
item = item[0] + item[3] + 'o'
elif item[0] == item[3]:
item = item[0] + item[3]
else:
item = item[3] + item[0] + 'o'
holdcards.append(item)
return holdcards
def count_holdcards(self,list):
totlist = []
i = 0
while i < 13:
j=0
rowlist = []
rowhandlist = []
while j < 13:
if i < j:
hand = (self.r_trump.get(str(14-i))+self.r_trump.get(str(14-j))+"s")
count = list.count(hand)
rowlist.append(count)
elif i == j:
hand = (self.r_trump.get(str(14-i))+self.r_trump.get(str(14-j)))
count = list.count(hand)
rowlist.append(count)
else:
hand = (self.r_trump.get(str(14-j))+self.r_trump.get(str(14-i))+"o")
count = list.count(hand)
rowlist.append(count)
self.hands += count
#print(hand + ":" + str(count))
rowhandlist.append(hand)
j += 1
self.handlist.append(rowhandlist)
totlist.append(rowlist)
i += 1
return totlist
plotgraph.py
import numpy as np
import matplotlib.pyplot as plt
class Plotgraph:
def __init__(self):
pass
def writegraph(self,countlist,hand,count,tothands):
x = np.arange(len(countlist))
width = 0.75
rects = plt.bar(x, countlist, width)
plt.xlabel("i × "+str(count)+"hands")
plt.ylabel("count of "+hand)
plt.title("hand = "+hand+" , totalhands = "+str(tothands))
for rect in rects:
height = rect.get_height()
plt.annotate('{}'.format(height),
xy=(rect.get_x() + rect.get_width() / 2, height),
size=7,
xytext=(0, 3),
textcoords="offset points",
ha='center', va='bottom')
plt.show()
Recommended Posts