Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from os import system
- from random import randint
- def imprima_menu():
- system("clear")
- print("**************************")
- print("Bem vindo ao jogo da velha")
- print("Escolha uma opção")
- print("**************************")
- print("<1> SinglePlayer")
- print("<2> MultiPlayer")
- escolha = int(input("R: "))
- if(escolha == 1 or escolha == 2):
- if(escolha == 1):
- jogue_singleplayer()
- else:
- jogue_multiplayer()
- else:
- print("Escolha uma opção válida")
- def imprima_tela():
- tela = [ [ "(_)" for linha in range(3) ] for coluna in range(3) ]
- for linha in tela:
- print(linha)
- return tela
- def marca_tela(x, y, tela, jogador):
- system("clear")
- for linha in range(3):
- for coluna in range(3):
- if( linha == x and coluna == y ):
- if( tela[x][y] == "(_)" ):
- if( jogador == "X" ):
- tela[x][y] = "(X)"
- posicao = True
- elif( jogador == "O"):
- tela[x][y] = "(O)"
- posicao = True
- else:
- posicao = False
- else:
- posicao = False
- for linha in tela:
- print(linha)
- return posicao
- def acabou_jogo(tela):
- campo_vazio = 0
- for linha in range(3):
- for coluna in range(3):
- if( tela[linha][coluna] == "(_)"):
- campo_vazio += 1
- ##############
- if(campo_vazio <= 4):
- ##############
- if((tela[0][0] == tela[0][1] == tela[0][2]) and (tela[0][0] != "(_)")):
- return True
- elif((tela[1][0] == tela[1][1] == tela[1][2]) and (tela[1][0] != "(_)")):
- return True
- elif((tela[2][0] == tela[2][1] == tela[2][2]) and (tela[2][0] != "(_)")):
- return True
- ##############
- elif((tela[0][0] == tela[1][0] == tela[2][0]) and (tela[0][0] != "(_)")):
- return True
- elif((tela[0][1] == tela[1][1] == tela[2][1]) and (tela[0][1] != "(_)")):
- return True
- elif((tela[0][2] == tela[1][2] == tela[2][2]) and (tela[2][2] != "(_)")):
- return True
- ##############
- elif((tela[0][0] == tela[1][1] == tela[2][2]) and (tela[0][0] != "(_)")):
- return True
- elif((tela[0][2] == tela[1][1] == tela[2][0]) and (tela[0][2] != "(_)")):
- return True
- ##############
- elif(campo_vazio == 0):
- return True
- ##############
- else:
- return False
- else:
- return False
- def jogue_singleplayer():
- system("clear")
- print("Singleplayer")
- jogador = {
- "jogador1": "O",
- "jogador2": "X"
- }
- jogador1 = input("Insira o nome do jogador 1 - O: ")
- jogador2 = "BOT Retardado"
- system("clear")
- rodada = 0
- tela = imprima_tela()
- while(True):
- marca_tela(0, 0, tela, "(_)")
- posicao = 0
- rodada += 1
- if( rodada > 1 and acabou_jogo(tela)):
- break
- if( rodada % 2 ):
- while(posicao == False):
- x = -1
- y = 3
- while((x or y) > 2 or (x or y) < 0):
- print(jogador1, "sua vez!")
- x = int(input("Digite o eixo X da posição desejada: "))
- y = int(input("Digite o eixo Y da posição desejada: "))
- if((x or y) > 2 or (x or y) < 0):
- system("clear")
- marca_tela(0, 0, tela, "(_)")
- print("Preencha com os eixos X e Y corretamente!")
- posicao = marca_tela(x, y, tela, jogador["jogador1"])
- if(posicao == False):
- print("Preencha uma posição vazia!")
- else:
- while(posicao == False):
- x = -1
- y = 3
- while((x or y) > 2 or (x or y) < 0):
- x = randint(0,2)
- y = randint(0,2)
- if((x or y) > 2 or (x or y) < 0):
- system("clear")
- marca_tela(0, 0, tela, "(_)")
- posicao = marca_tela(x, y, tela, jogador["jogador2"])
- if( rodada == 10 ):
- print("{} e {} empataram!".format(jogador1, jogador2))
- elif( rodada % 2 ):
- print("Vitoria de {}".format(jogador2))
- else:
- print("Vitoria de {}".format(jogador1))
- def jogue_multiplayer():
- system("clear")
- print("Multiplayer")
- jogador = {
- "jogador1": "O",
- "jogador2": "X"
- }
- jogador1 = input("Insira o nome do jogador 1 - O: ")
- jogador2 = input("Insira o nome do jogador 2 - X: ")
- system("clear")
- rodada = 0
- tela = imprima_tela()
- while(True):
- marca_tela(0, 0, tela, "(_)")
- posicao = 0
- rodada += 1
- if( rodada > 1 and acabou_jogo(tela)):
- break
- if( rodada % 2 ):
- while(posicao == False):
- x = -1
- y = 3
- while((x or y) > 2 or (x or y) < 0):
- print(jogador1, "sua vez!")
- x = int(input("Digite o eixo X da posição desejada: "))
- y = int(input("Digite o eixo Y da posição desejada: "))
- if((x or y) > 2 or (x or y) < 0):
- system("clear")
- marca_tela(0, 0, tela, "(_)")
- print("Preencha com os eixos X e Y corretamente!")
- posicao = marca_tela(x, y, tela, jogador["jogador1"])
- if(posicao == False):
- print("Preencha uma posição vazia!")
- else:
- while(posicao == False):
- x = -1
- y = 3
- while((x or y) > 2 or (x or y) < 0):
- print(jogador2, "sua vez!")
- x = int(input("Digite o eixo X da posição desejada: "))
- y = int(input("Digite o eixo Y da posição desejada: "))
- if((x or y) > 2 or (x or y) < 0):
- system("clear")
- marca_tela(0, 0, tela, "(_)")
- print("Preencha com os eixos X e Y corretamente!")
- posicao = marca_tela(x, y, tela, jogador["jogador2"])
- if(posicao == False):
- print("Preencha uma posição vazia!")
- if( rodada == 10 ):
- print("{} e {} empataram!".format(jogador1, jogador2))
- elif( rodada % 2 ):
- print("Vitoria de {}".format(jogador2))
- else:
- print("Vitoria de {}".format(jogador1))
- if(__name__ == "__main__"):
- imprima_menu()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement