-
Notifications
You must be signed in to change notification settings - Fork 0
/
game.py
124 lines (98 loc) · 3.64 KB
/
game.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
import random
class Megasena:
def __init__(self, quantidade_de_dezenas=0):
self._quantidade_de_dezenas = quantidade_de_dezenas
self._jogos = []
self._resultado = []
self._total_de_jogos = []
def quantidadeDeDezenas(self):
if self._quantidade_de_dezenas in range(6, 11):
return True
return False
class JogarMegasena:
def __init__(self, megasena):
self.megasena = megasena
self.cartela = []
def getQuantidadeDeDezenas(self):
return self.megasena._quantidade_de_dezenas
def setQuantidadeDeDezenas(self, quantidade_de_dezenas):
self.megasena.quantidade_de_dezenas = quantidade_de_dezenas
def getCartela(self):
return self.cartela
def setCartela(self):
cartelas = self._gerarCartelas(self.getQuantidadeDeDezenas())
self.cartela = cartelas
def setTotalDeJogos(self, total_de_jogos):
self.megasena.total_de_jogos = total_de_jogos
def getTotalDeJogos(self):
return self.megasena.total_de_jogos
def setJogos(self):
self.megasena._jogos.append(self.getCartela())
self.esvaziarCartela()
def getJogos(self):
return self.megasena._jogos
def getTotalJogos(self):
return len(self.megasena._jogos)
def getResultado(self):
return self.megasena._resultado
def setResultado(self, numero):
self.megasena._resultado.append(numero)
self.megasena._resultado.sort()
def getArrayDeDezenas(self):
cartela = []
return cartela
def getQuantidadeDeTotalJogos(self):
return self.megasena.total_de_jogos
def validaQuantidadeDeDezenas(self):
return self.megasena.quantidadeDeDezenas()
def _gerarCartelas(self, qtde_de_dezenas):
nv_cartela = []
cont = 0
while cont < qtde_de_dezenas:
try:
numero = self.gerarNumeros(nv_cartela)
if numero > 0:
nv_cartela.append(numero)
cont += 1
except TypeError:
pass
return nv_cartela
def gerarNumeros(self, cartelas):
numero = random.randint(1, 60)
cartelas.sort()
if numero not in cartelas:
return numero
def gerarJogos(self, quantidade_de_cartela):
for cartela in range(quantidade_de_cartela):
self.setCartela()
self.setJogos()
def sortear(self):
cont = 0
while cont < 6:
try:
numero = self.gerarNumeros(self.getResultado())
if numero > 0:
self.setResultado(numero)
cont += 1
except TypeError:
pass
def esvaziarCartela(self):
self.cartela = []
def resultadoDoSorteio(self):
return self.getResultado()
def confere_cartelas(self, cartelas_jogadas, cartela_sorteada):
jogos_conferidos = []
for nro_da_cartela, cartela in enumerate(cartelas_jogadas):
contar_numeros_acertados = 0
guardar_numeros_acertados = []
for nro_acertados in cartela_sorteada:
if nro_acertados in cartela:
guardar_numeros_acertados.append(nro_acertados)
contar_numeros_acertados += 1
if contar_numeros_acertados > 0:
resultado_em_texto = (
f"Acertou {contar_numeros_acertados} ({guardar_numeros_acertados})"
)
resultado_em_texto += f" número(s) da Cartela-{nro_da_cartela + 1}"
jogos_conferidos.append(resultado_em_texto)
return jogos_conferidos