Skip to content

Commit bb19546

Browse files
authored
Add files via upload
Um jogo da velha com opções para jogar contra um amigo ou contra a máquina.
1 parent 20dfb2b commit bb19546

File tree

1 file changed

+165
-0
lines changed

1 file changed

+165
-0
lines changed

OJogoDaVelha.py

Lines changed: 165 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,165 @@
1+
from random import randint
2+
from time import sleep
3+
4+
def verificar_horizontal():
5+
for i in range (0, 9, 3):
6+
if (tabuleiro[i] == tabuleiro[i+1] == tabuleiro[i+2] != VAZIO):
7+
return True
8+
9+
10+
def verificar_vertical():
11+
for i in range (3):
12+
if (tabuleiro[i] == tabuleiro[i+3] == tabuleiro[i+6] != VAZIO):
13+
return True
14+
15+
16+
def verificar_diagonal():
17+
for i in [0, 2]:
18+
if (tabuleiro[0+i] == tabuleiro[4] == tabuleiro[8-i] != VAZIO):
19+
return True
20+
21+
22+
def verificar_empate():
23+
if not VAZIO in tabuleiro and (verificar_horizontal == verificar_vertical == verificar_diagonal == False):
24+
return True
25+
26+
def mostrar_tabuleiro():
27+
for i in range(0, 9, 3):
28+
print(i, "|", i+1, "|", i+2, " ", tabuleiro[i], "|", tabuleiro[i+1], "|", tabuleiro[i+2])
29+
30+
def casa_invalida():
31+
print("="*30)
32+
print("Escolha um lugar vazio!")
33+
print("="*30)
34+
35+
####Funcao contra o PC####
36+
def contra_pc():
37+
rodada = 0
38+
jogavel = True
39+
vencedor = False
40+
while jogavel:
41+
rodada += 1
42+
if rodada%2 == 1:
43+
print("__{Sua vez!}__")
44+
casa = int(input("Escolha a casa: "))
45+
if tabuleiro[casa] == VAZIO:
46+
tabuleiro[casa] = jogador1
47+
else:
48+
casa_invalida()
49+
else:
50+
print("__{Minha vez!}__")
51+
print("Deixe-me ver...")
52+
sleep(1.5)
53+
casa = randint(0,8)
54+
if tabuleiro[casa] == VAZIO:
55+
tabuleiro[casa] = jogador2
56+
else:
57+
rodada -= 1
58+
casa_invalida()
59+
mostrar_tabuleiro()
60+
61+
#verificar horizontal
62+
if verificar_horizontal():
63+
vencedor = tabuleiro[casa]
64+
65+
#verificar vertical
66+
if verificar_vertical():
67+
vencedor = tabuleiro[casa]
68+
69+
#verificar diagonal
70+
if verificar_diagonal():
71+
vencedor = tabuleiro[casa]
72+
73+
#verificar empate
74+
if verificar_empate():
75+
jogavel = False
76+
print("Jogo empatado! DEU VELHA!")
77+
78+
if vencedor:
79+
jogavel = False
80+
print("Vencedor: ", vencedor)
81+
82+
####Funcao contra amigo####
83+
def contra_amigo():
84+
rodada = 0
85+
jogavel = True
86+
vencedor = False
87+
while jogavel:
88+
rodada += 1
89+
if tabuleiro[casa] == VAZIO:
90+
if rodada%2 == 1:
91+
print("Vez de ", jogador1)
92+
casa = int(input("Escolha a casa: "))
93+
tabuleiro[casa] = jogador1
94+
else:
95+
print("Vez de ", jogador2)
96+
casa = int(input("Escolha a casa: "))
97+
tabuleiro[casa] = jogador2
98+
else:
99+
rodada -= 1
100+
casa_invalida()
101+
mostrar_tabuleiro()
102+
103+
#verificar horizontal
104+
if verificar_horizontal():
105+
vencedor = tabuleiro[casa]
106+
107+
#verificar vertical
108+
if verificar_vertical():
109+
vencedor = tabuleiro[casa]
110+
111+
#verificar diagonal
112+
if verificar_diagonal():
113+
vencedor = tabuleiro[casa]
114+
115+
#verificar empate
116+
if verificar_empate():
117+
jogavel = False
118+
print("Jogo empatado! DEU VELHA!")
119+
120+
if vencedor:
121+
jogavel = False
122+
print("Vencedor: ", vencedor)
123+
124+
125+
126+
##################
127+
##### O JOGO #######
128+
#################
129+
130+
#tabuleiro
131+
VAZIO = " "
132+
tabuleiro = [VAZIO, VAZIO, VAZIO, VAZIO, VAZIO, VAZIO, VAZIO, VAZIO, VAZIO]
133+
134+
#jogadores
135+
jogador1 = " "
136+
jogador2 = " "
137+
138+
print("Escolha seu adversário [1/2]\n[1]. PC\n[2].Amigo")
139+
while True:
140+
adv = int(input())
141+
if adv == 1 or adv == 2:
142+
break
143+
print("Escolha uma opção valida!")
144+
145+
while True:
146+
jogador1 = input("Escolha X ou O: ").upper().strip()
147+
if jogador1 in 'XO':
148+
break
149+
print("Escolha uma opção valida!")
150+
151+
if jogador1 == 'X':
152+
jogador2 = 'O'
153+
else:
154+
jogador2 = 'X'
155+
156+
#indice
157+
mostrar_tabuleiro()
158+
159+
if adv == 1:
160+
contra_pc()
161+
162+
else:
163+
contra_amigo()
164+
165+

0 commit comments

Comments
 (0)