-
Notifications
You must be signed in to change notification settings - Fork 0
/
poker.py
148 lines (111 loc) · 4.09 KB
/
poker.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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
import random
import collections
PINTA=["pica","corazon","trebol","diamante"]
VALOR=[1,2,3,4,5,6,7,8,9,10,11,12,13]
manos=[]
def crear_baraja():
barajas=[]
for pinta in PINTA:
for valor in VALOR:
barajas.append((pinta,valor))
return barajas
def obtener_mano(barajas, tamano_mano):
mano= random.sample(barajas,tamano_mano)
return mano
def can_manos(intentos):
for _ in range(intentos):
mano=obtener_mano(barajas,tamano_mano)
manos.append(mano)
def main(manos):
doble_par=0
pares=0
trio=0
poker=0
full_house=0
escalera=0
escaleram=0
color=0
escalera_color=0
escalera_real=0
for mano in manos:
valores=[]
pintas=[]
for carta in mano:
valores.append(carta[1])
pintas.append(carta[0])
counter= dict(collections.Counter(valores))
counter_pintas=dict(collections.Counter(pintas))
minando_escalera=sorted(list(dict(collections.Counter(valores)).keys()))
def escalera_funcion(minando_escalera):
esc=False
escr=False
# Identificando si tenemos escapera
if len(minando_escalera)==5:
if (abs(minando_escalera[0]-minando_escalera[4])==4):
esc=True
if (minando_escalera[0]==1):
if (minando_escalera[1]==10)&(abs(minando_escalera[1]-minando_escalera[4])==3):
escr=True
return esc,escr
def color_funcion(counter_pintas):
# Identificando si hay Color
cr=False
if len(counter_pintas)==1:
cr=True
return cr
def valor_pareja(counter):
# Funcion que Clasifica Los Valores par, doble par, Trio, Poker y Full House
c=False
dob_par=False
par=False
pok=False
tr=False
fh=False
for val in counter.values():
# Clasificando Poker
if val==4:
pok=True
# Clasificando Trio
if val==3:
tr=True
# Clasificando Doble Par
if (val==2)&(c==True):
dob_par=True
# Clasificando Par
if (val==2)&(c==False):
par=True
c=True
# Clasificando Full House
if (tr==True)&(c==True):
fh=True
return pok,fh,tr,par, dob_par
# contadores de pares, poker, doble, trio, full house
counter_pares=valor_pareja(counter)
doble_par=doble_par+counter_pares[4]
pares=pares+counter_pares[3]
trio=trio+counter_pares[2]
full_house=full_house+counter_pares[1]
poker=poker+counter_pares[0]
# contadores escalera
contador_escaleras=escalera_funcion(minando_escalera)
escalera=escalera+contador_escaleras[0]+contador_escaleras[1]
# # contador Color
contado_color=color_funcion(counter_pintas)
color=color+contado_color
# Indentificando Escalera Real
if (contador_escaleras[1]==True)&(contado_color==True):
escalera_real+=1
print(f"Aparecio la mano Milagrosa {mano}")
if (contador_escaleras[0]==True)&(contado_color==True):
escalera_color+=1
print(f"Escalera color {mano}")
return pares, doble_par, trio,poker,full_house,color,escalera,escalera_color,escalera_real
if __name__=="__main__":
tamano_mano=5
intentos=int(input("cuantos numeros de intentos: "))
barajas=crear_baraja()
manos_1=can_manos(intentos)
probabilidades=main(manos)
j=["Par","Doble Par","Trio","Poker","Full House","Color","Escalera","Escalera Color","Escalera_Real"]
for i in range(len(probabilidades)):
print(f"Probabilidad de {j[i]}: {probabilidades[i]/intentos}")