-
Notifications
You must be signed in to change notification settings - Fork 0
/
Points.py
83 lines (63 loc) · 1.8 KB
/
Points.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
import Cardclasses as cc
import itertools
import matplotlib.pyplot as plt
import numpy as np
def sumtest(ls):
sum = 0
x = []
total = []
if len(ls) == 1:
return [-1]
for el in ls:
sum = sum + el.value
if sum == 15:
for el in ls:
x.append(el.toStr())
return[x]
for i in range(0,len(ls)):
temp = []
for j in range(0,len(ls)):
if(j != i):
temp.append(ls[j])
total = total + sumtest(temp)
return total
d = cc.Deck()
#d.shuffle()
fcards = itertools.combinations(d.cards,5)
fcards = list(itertools.islice(fcards,0,None))
def getData(type,cardcombs):
pointsFour = []
for el in fcards:
el = (cc.Hand(el,5))
if (type != "None"):
for card in el.cards:
if(card.name == type):
pointsFour.append(el.count(None))
if (type == "None"):
pointsFour.append(el.count(None))
return pointsFour
types = ["Ace","Two","Three","Four","Five","Six","Seven","Eight","Nine","Ten","Jack","Queen","King"]
for type in types:
cardType = type
result = getData(cardType,fcards)
histlist = [0]*40
for el in result:
histlist[el] = histlist[el] + 1
x = np.arange(0,40)
ticks = []
for el in x:
ticks.append(str(el))
print(type)
print("Raw numbers")
print(histlist)
print("Average points")
print(sum(result)/len(result))
print("Percentage of hands worth Zero")
print(histlist[0]/sum(histlist[1:])*100)
print()
fig, ax = plt.subplots()
ax.bar(x,histlist,tick_label=ticks,width=1.2,edgecolor= "black")
ax.set_ylabel("Number of Hands")
ax.set_xlabel("Hand Value")
ax.set_title("Card Type: " + cardType)
plt.show()