Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- jogar.bat
- @echo off
- python jogo_da_velha.py
- REDAME.md
- 4 lines (3 sloc) 328 Bytes
- jogo_da_velha.py
- ################################################
- ##### PROGRAMADO POR: LEANDRO MORO #####
- ################################################
- from time import sleep
- from random import randint
- import sys
- pts_jogador = 0
- pts_pc = 0
- while True:
- j = ''
- primeiro = ''
- p1, p2, p3, p4, p5, p6, p7, p8, p9 = ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '
- lv = 'livre'
- pos1, pos2, pos3, pos4, pos5, pos6, pos7, pos8, pos9 = lv, lv, lv, lv, lv, lv, lv, lv, lv
- jogada = 0
- jog_adv = 0
- jogada_aleatoria = 0
- turnos = 1
- vencedor = ''
- tabuleiro_inicial = '''
- --- COMO JOGAR ---
- Quando for sua vez, digite o número correspondente à posição no tabuleiro para fazer sua jogada nela.
- Por exemplo, digamos que você queira jogar no centro, então você digita 5.
- | |
- 1 | 2 | 3
- _____|_____|_____
- | |
- 4 | 5 | 6
- _____|_____|_____
- | |
- 7 | 8 | 9
- | |
- '''
- print(tabuleiro_inicial)
- print('Você quer ser o X (xis) ou a O (bola)?', end=' ')
- while j != 'O' and j != 'X':
- j = str(input('Digite X ou O e pressione Enter para escolher: ')).strip().upper()
- if j != 'O' and j != 'X':
- print('\nEscolha inválida!\n')
- if j == 'O':
- adv = 'X'
- print('\nEntão eu fico com o X.')
- elif j == 'X':
- adv = 'O'
- print('\nEntão eu fico com a O.')
- print('\nQuem joga primeiro?', end=' ')
- while primeiro != 'EU' and primeiro != 'PC':
- instr = 'Digite EU e pressione Enter para você começar, ou digite PC e pressione Enter para eu começar: '
- primeiro = str(input(instr)).strip().upper()
- if primeiro != 'EU' and primeiro != 'PC':
- print('\nEscolha inválida!\n')
- if primeiro == 'EU':
- print('\nEntão você joga primeiro.\n')
- elif primeiro == 'PC':
- print('\nEntão eu jogo primeiro.\n')
- def atualizar_tabuleiro():
- global p1, p2, p3, p4, p5, p6, p7, p8, p9
- tabuleiro = '''
- | |
- {} | {} | {}
- _____|_____|_____
- | |
- {} | {} | {}
- _____|_____|_____
- | |
- {} | {} | {}
- | |
- '''.format(p1, p2, p3, p4, p5, p6, p7, p8, p9)
- print(tabuleiro)
- def jogada_j1():
- global jogada
- while True:
- try:
- jogada = int(input('Digite a posição da sua jogada (1 a 9) e pressione Enter: '))
- break
- except ValueError:
- print('\nValor digitado inválido. Digite um número inteiro de 1 a 9!\n')
- def rotina_j1():
- global jogada
- global pos1, pos2, pos3, pos4, pos5, pos6, pos7, pos8, pos9
- msg_ocupado = '\nEste espaço já está ocupado!\n'
- jogada_j1()
- while jogada not in range(1, (9 + 1)):
- jogada_j1()
- if jogada not in range(1, (9 + 1)):
- print('\nNúmero inválido!\n')
- while jogada == 1 and pos1 == 'ocupada' or \
- jogada == 2 and pos2 == 'ocupada' or \
- jogada == 3 and pos3 == 'ocupada' or \
- jogada == 4 and pos4 == 'ocupada' or \
- jogada == 5 and pos5 == 'ocupada' or \
- jogada == 6 and pos6 == 'ocupada' or \
- jogada == 7 and pos7 == 'ocupada' or \
- jogada == 8 and pos8 == 'ocupada' or \
- jogada == 9 and pos9 == 'ocupada':
- print(msg_ocupado)
- rotina_j1()
- def atualizar_jogadas_j1():
- global jogada
- global p1, p2, p3, p4, p5, p6, p7, p8, p9
- global pos1, pos2, pos3, pos4, pos5, pos6, pos7, pos8, pos9
- if jogada == 1:
- p1 = j
- pos1 = 'ocupada'
- elif jogada == 2:
- p2 = j
- pos2 = 'ocupada'
- elif jogada == 3:
- p3 = j
- pos3 = 'ocupada'
- elif jogada == 4:
- p4 = j
- pos4 = 'ocupada'
- elif jogada == 5:
- p5 = j
- pos5 = 'ocupada'
- elif jogada == 6:
- p6 = j
- pos6 = 'ocupada'
- elif jogada == 7:
- p7 = j
- pos7 = 'ocupada'
- elif jogada == 8:
- p8 = j
- pos8 = 'ocupada'
- elif jogada == 9:
- p9 = j
- pos9 = 'ocupada'
- def atualizar_jogadas_j2():
- global jogada, jogada_aleatoria, adv
- global p1, p2, p3, p4, p5, p6, p7, p8, p9
- global pos1, pos2, pos3, pos4, pos5, pos6, pos7, pos8, pos9
- print('Deixe-me pensar na minha jogada...')
- sleep(1.5)
- jogada_aleatoria = randint(1, 9)
- while jogada_aleatoria == 1 and pos1 == 'ocupada' or \
- jogada_aleatoria == 2 and pos2 == 'ocupada' or \
- jogada_aleatoria == 3 and pos3 == 'ocupada' or \
- jogada_aleatoria == 4 and pos4 == 'ocupada' or \
- jogada_aleatoria == 5 and pos5 == 'ocupada' or \
- jogada_aleatoria == 6 and pos6 == 'ocupada' or \
- jogada_aleatoria == 7 and pos7 == 'ocupada' or \
- jogada_aleatoria == 8 and pos8 == 'ocupada' or \
- jogada_aleatoria == 9 and pos9 == 'ocupada':
- jogada_aleatoria = randint(1, 9)
- print('\nEu jogo na posição {}!'.format(jogada_aleatoria))
- if jogada_aleatoria == 1:
- p1 = adv
- pos1 = 'ocupada'
- elif jogada_aleatoria == 2:
- p2 = adv
- pos2 = 'ocupada'
- elif jogada_aleatoria == 3:
- p3 = adv
- pos3 = 'ocupada'
- elif jogada_aleatoria == 4:
- p4 = adv
- pos4 = 'ocupada'
- elif jogada_aleatoria == 5:
- p5 = adv
- pos5 = 'ocupada'
- elif jogada_aleatoria == 6:
- p6 = adv
- pos6 = 'ocupada'
- elif jogada_aleatoria == 7:
- p7 = adv
- pos7 = 'ocupada'
- elif jogada_aleatoria == 8:
- p8 = adv
- pos8 = 'ocupada'
- elif jogada_aleatoria == 9:
- p9 = adv
- pos9 = 'ocupada'
- def checar_vencedor():
- global j, adv, turnos, vencedor, pts_jogador, pts_pc
- global p1, p2, p3, p4, p5, p6, p7, p8, p9
- if p1 == j and p2 == j and p3 == j or \
- p1 == j and p4 == j and p7 == j or \
- p1 == j and p5 == j and p9 == j or \
- p2 == j and p5 == j and p8 == j or \
- p3 == j and p5 == j and p7 == j or \
- p3 == j and p6 == j and p9 == j or \
- p4 == j and p5 == j and p6 == j or \
- p7 == j and p8 == j and p9 == j:
- print('VOCÊ GANHOU!\n')
- pts_jogador += 1
- vencedor = 'EU'
- turnos = 10
- if p1 == adv and p2 == adv and p3 == adv or \
- p1 == adv and p4 == adv and p7 == adv or \
- p1 == adv and p5 == adv and p9 == adv or \
- p2 == adv and p5 == adv and p8 == adv or \
- p3 == adv and p5 == adv and p7 == adv or \
- p3 == adv and p6 == adv and p9 == adv or \
- p4 == adv and p5 == adv and p6 == adv or \
- p7 == adv and p8 == adv and p9 == adv:
- print('EU GANHEI!\n')
- pts_pc += 1
- vencedor = 'PC'
- turnos = 10
- def atualizar_tudo():
- global jogada
- global turnos
- global vencedor
- if primeiro == 'EU':
- rotina_j1()
- atualizar_jogadas_j1()
- atualizar_tabuleiro()
- checar_vencedor()
- if turnos == 5:
- print('NÓS EMPATAMOS!\n')
- turnos = 10
- vencedor = 'EMPATE'
- if vencedor == '':
- atualizar_jogadas_j2()
- atualizar_tabuleiro()
- checar_vencedor()
- elif primeiro == 'PC':
- atualizar_jogadas_j2()
- atualizar_tabuleiro()
- checar_vencedor()
- if turnos == 5:
- print('NÓS EMPATAMOS!\n')
- turnos = 10
- vencedor = 'EMPATE'
- if vencedor == '':
- rotina_j1()
- atualizar_jogadas_j1()
- atualizar_tabuleiro()
- checar_vencedor()
- jogada = 0
- turnos += 1
- while turnos <= 5:
- atualizar_tudo()
- print('-------- PLACAR --------')
- print('Você: {} | Computador: {}'.format(pts_jogador, pts_pc))
- print('------------------------')
- while True:
- reiniciar = input('\nQuer jogar de novo? Digite S para sim ou N para não: ').lower()
- if reiniciar in ('s', 'n', '"s"', '"n"'):
- break
- print('\nResposta inválida!')
- if reiniciar == 's' or reiniciar == '"s"':
- print('\n-----------------------------------------------------')
- continue
- else:
- sys.exit(0)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement