-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathJogo_da_velha.py
134 lines (95 loc) · 3.96 KB
/
Jogo_da_velha.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
import random
import os
def printar_tabuleiro(tabuleiro):
print(' | | ')
print(f' {tabuleiro[1]} | {tabuleiro[2]} | {tabuleiro[3]}')
print(' | | ')
print('------------------')
print(' | | ')
print(f' {tabuleiro[4]} | {tabuleiro[5]} | {tabuleiro[6]}')
print(' | | ')
print('------------------')
print(' | | ')
print(f' {tabuleiro[7]} | {tabuleiro[8]} | {tabuleiro[9]}')
print(' | | ')
def escolher_marcador():
marcador = ''
while not (marcador == 'X' or marcador == 'O'):
marcador = input('Player 1: Você quer ser X ou O? ').upper()
if marcador == 'X':
return ('X', 'O')
else:
return ('O', 'X')
def marcar_posicao(tabuleiro, marcador, posicao):
tabuleiro[posicao] = marcador
def checar_vitoria(tabuleiro, marcador):
return (
(tabuleiro[1] == marcador and tabuleiro[2] == marcador and tabuleiro[3] == marcador) or
(tabuleiro[4] == marcador and tabuleiro[5] == marcador and tabuleiro[6] == marcador) or
(tabuleiro[7] == marcador and tabuleiro[8] == marcador and tabuleiro[9] == marcador) or
(tabuleiro[1] == marcador and tabuleiro[4] == marcador and tabuleiro[7] == marcador) or
(tabuleiro[2] == marcador and tabuleiro[5] == marcador and tabuleiro[8] == marcador) or
(tabuleiro[3] == marcador and tabuleiro[6] == marcador and tabuleiro[9] == marcador) or
(tabuleiro[1] == marcador and tabuleiro[5] == marcador and tabuleiro[9] == marcador) or
(tabuleiro[7] == marcador and tabuleiro[5] == marcador and tabuleiro[3] == marcador)
)
def primeiro_jogar():
if random.randint(0, 1) == 0:
return 'Jogador 1'
else:
return 'Jogador 2'
def checar_espaco(tabuleiro, posicao):
return tabuleiro[posicao] == ' '
def checagem_empate(tabuleiro):
for i in range(1, 10):
if checar_espaco(tabuleiro, i):
return False
return True
def escolha_jogada(tabuleiro, jogador):
posicao = ' '
while posicao not in '1 2 3 4 5 6 7 8 9'.split() or not checar_espaco(tabuleiro, int(posicao)):
posicao = input(f'{jogador} - escolha sua jogada entre 1-9: ')
return int(posicao)
def replay():
return input('Você quer jogar novamente? SIM ou NÃO? ').lower().startswith('s')
while True:
os.system('cls' if os.name == 'nt' else 'clear')
print('Bem vindo ao jogo da velha!')
tabuleiro = [' '] * 10
jogador_1, jogador_2 = escolher_marcador()
turno_jogador = primeiro_jogar()
print(turno_jogador, 'começa!')
status_jogo = True
while status_jogo:
if turno_jogador == 'Jogador 1':
printar_tabuleiro(tabuleiro)
posicao_jogada = escolha_jogada(tabuleiro, turno_jogador)
marcar_posicao(tabuleiro, jogador_1, posicao_jogada)
if checar_vitoria(tabuleiro, jogador_1):
printar_tabuleiro(tabuleiro)
print("Parabéns você ganhou a partida!")
status_jogo = False
else:
if checagem_empate(tabuleiro):
printar_tabuleiro(tabuleiro)
print("O jogo empatou !!!")
break
else:
turno_jogador = 'Jogador 2'
else:
printar_tabuleiro(tabuleiro)
posicao_jogada = escolha_jogada(tabuleiro, turno_jogador)
marcar_posicao(tabuleiro, jogador_2, posicao_jogada)
if checar_vitoria(tabuleiro, jogador_2):
printar_tabuleiro(tabuleiro)
print("Parabéns você ganhou a partida!")
status_jogo = False
else:
if checagem_empate(tabuleiro):
printar_tabuleiro(tabuleiro)
print("O jogo empatou !!!")
break
else:
turno_jogador = 'Jogador 1'
if not replay():
break