|
13 | 13 |
|
14 | 14 |
|
15 | 15 | class Main: |
| 16 | + |
16 | 17 | def __init__(self): |
17 | 18 | cfunc.ajustes_iniciais() |
18 | | - self.tela_inicial() |
19 | | - |
20 | | - if csave.carregar_jogo(): |
21 | | - self.gato, self.gela, self.bau = csave.carregar_jogo() |
22 | | - cfunc.janela_carregar() |
23 | | - sleep(1) |
24 | | - |
| 19 | + op = self.tela_inicial() |
| 20 | + self.voltar = False |
| 21 | + |
| 22 | + if op == '1': |
| 23 | + objs = self.novo_gato() |
| 24 | + elif op == '2': |
| 25 | + objs = self.tela_carregar_gato() |
| 26 | + elif op == '3': |
| 27 | + exit() |
| 28 | + |
| 29 | + if objs: |
| 30 | + self.gato, self.gela, self.bau = objs |
| 31 | + csave.salvar_jogo([self.gato, self.gela, self.bau]) |
| 32 | + |
25 | 33 | else: |
26 | | - self.gato, self.gela, self.bau = self.novo_gato() |
27 | | - csave.salvar_jogo(self.gato, self.gela, self.bau) |
28 | | - |
| 34 | + self.voltar = True |
| 35 | + |
29 | 36 | self.salvo = True |
30 | 37 |
|
31 | 38 | @staticmethod |
@@ -56,11 +63,69 @@ def tela_inicial(): |
56 | 63 | pass |
57 | 64 |
|
58 | 65 | janela.muda_linha(11, 'O MELHOR JOGO DO MUNDO!') |
59 | | - janela.muda_linha(20, '© RaGhu 2021 ', alin='rjust') |
| 66 | + janela.muda_linha(21, '© RaGhu 2021 ', alin='rjust') |
60 | 67 |
|
61 | 68 | print(janela) |
62 | 69 | input() # para não dar para digitar nada no input além de enter |
63 | | - |
| 70 | + |
| 71 | + janela.muda_linha(15, '(1) Novo Jogo ') |
| 72 | + janela.muda_linha(16, '(2) Carregar Jogo ') |
| 73 | + janela.muda_linha(17, '(3) Sair ') |
| 74 | + |
| 75 | + print(janela) |
| 76 | + op = input('Digite a opção desejada: ') |
| 77 | + |
| 78 | + while op not in ['1', '2', '3']: |
| 79 | + print(janela) |
| 80 | + op = input('Digite uma opção válida: ') |
| 81 | + |
| 82 | + return op |
| 83 | + |
| 84 | + def tela_carregar_gato(self): |
| 85 | + gatos = csave.listar_saves() |
| 86 | + |
| 87 | + if len(gatos) == 0: |
| 88 | + janela = cjane.Janela() |
| 89 | + janela.muda_linha(11, 'Você não possui nenhum gato, deseja criar um? (S)im ou (N)ão') |
| 90 | + |
| 91 | + print(janela) |
| 92 | + |
| 93 | + esc = input('>>> ').lower() |
| 94 | + while esc != 's' and esc != 'n' and esc != 'sim' and esc != 'não' and esc != 'nao': |
| 95 | + janela.muda_linha(12, 'Digite uma opção válida!') |
| 96 | + print(janela) |
| 97 | + esc = input('>>> ').lower() |
| 98 | + |
| 99 | + if 's' in esc: |
| 100 | + return self.novo_gato() |
| 101 | + elif 'n': |
| 102 | + return None |
| 103 | + |
| 104 | + elif len(gatos) == 1: |
| 105 | + save = csave.carregar_jogo(gatos[0].split(".")[0]) |
| 106 | + return save |
| 107 | + |
| 108 | + elif len(gatos) > 1: |
| 109 | + janela = cjane.JanelaTable({'##': 4, 'Gato': 54, 'Idade': 18}) |
| 110 | + gatitos = [] |
| 111 | + |
| 112 | + for i in range(len(gatos)): |
| 113 | + ga, ge, ba = csave.carregar_jogo(gatos[i].split(".")[0]) |
| 114 | + gatitos.append([ga, ge, ba]) |
| 115 | + janela.add_linha([i+1, ga.nome, ga.mostrar_idade()]) |
| 116 | + |
| 117 | + janela.mostrar_janela(False) |
| 118 | + esc = input('Digite o número do gato para carregar (ENTER para voltar): ').lower() |
| 119 | + |
| 120 | + while esc != '' and (not esc.isnumeric() or int(esc) not in range(1, len(gatos)+1)): |
| 121 | + janela.mostrar_janela(False) |
| 122 | + esc = input('Digite uma opção válida: ').lower() |
| 123 | + |
| 124 | + if esc != '': |
| 125 | + return gatitos[int(esc)-1] |
| 126 | + else: |
| 127 | + return None |
| 128 | + |
64 | 129 | @staticmethod |
65 | 130 | def novo_gato(): |
66 | 131 | """Retorna um Gatinho, Geladeira e Bau para um gato inicial.""" |
@@ -215,15 +280,24 @@ def novo_gato(): |
215 | 280 | input('(Aperte ENTER para continuar...)') |
216 | 281 |
|
217 | 282 | l = ga.gens['letra'] |
218 | | - janela.muda_linha(3+v, f' Hora de uma decisão difícil... Qual vai ser o nome d{l} gat{l}?', 'ljust') |
| 283 | + p = ga.gens['pron'] |
| 284 | + janela.muda_linha(3+v, f' Hora de uma decisão difícil... Qual vai ser o nome del{p}?', 'ljust') |
219 | 285 | print(janela) |
220 | 286 | nome = input('>>> ') |
221 | 287 |
|
222 | 288 | while not cfunc.verificar_nome(nome): |
223 | | - janela.muda_linha(4+v, ' Digite um nome válido (e com tamanho menor que 32)!', 'ljust') |
| 289 | + |
| 290 | + if cfunc.existe_save(nome): |
| 291 | + gatolino = csave.carregar_jogo(nome)[0] |
| 292 | + l_antigo = gatolino.gens['letra'] |
| 293 | + p_antigo = gatolino.gens['pron'] |
| 294 | + janela.muda_linha(4+v, f' Ess{p_antigo} gatinh{l_antigo} já existe! Escolha outro nome.', 'ljust') |
| 295 | + else: |
| 296 | + janela.muda_linha(4+v, ' Digite um nome válido (e com tamanho menor que 32)!', 'ljust') |
| 297 | + |
224 | 298 | print(janela) |
225 | 299 | nome = input('>>> ') |
226 | | - |
| 300 | + |
227 | 301 | ga.nome = nome |
228 | 302 | ge = ogela.Geladeira() |
229 | 303 | ba = obau.Bau() |
@@ -403,7 +477,7 @@ def run_game(self): |
403 | 477 | elif esc == '5': |
404 | 478 | # Salvar jogo |
405 | 479 | cfunc.limpar_tela() |
406 | | - csave.salvar_jogo(self.gato, self.gela, self.bau) |
| 480 | + csave.salvar_jogo([self.gato, self.gela, self.bau]) |
407 | 481 |
|
408 | 482 | self.salvo = True |
409 | 483 | cfunc.janela_salvar() |
@@ -432,4 +506,7 @@ def run_game(self): |
432 | 506 | if __name__ == '__main__': |
433 | 507 |
|
434 | 508 | game = Main() |
| 509 | + while game.voltar: |
| 510 | + game = Main() |
| 511 | + |
435 | 512 | game.run_game() |
0 commit comments