Advertisement
Guest User

Velha Fudida

a guest
Sep 23rd, 2019
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 6.92 KB | None | 0 0
  1. from os import system
  2. from random import randint
  3.  
  4. def imprima_menu():
  5.     system("clear")
  6.     print("**************************")
  7.     print("Bem vindo ao jogo da velha")
  8.     print("Escolha uma opção")
  9.     print("**************************")
  10.     print("<1> SinglePlayer")
  11.     print("<2>  MultiPlayer")
  12.  
  13.     escolha = int(input("R: "))
  14.  
  15.     if(escolha == 1 or escolha == 2):
  16.         if(escolha == 1):
  17.             jogue_singleplayer()
  18.         else:
  19.             jogue_multiplayer()
  20.     else:
  21.         print("Escolha uma opção válida")
  22.  
  23.  
  24. def imprima_tela():
  25.  
  26.     tela = [ [ "(_)"  for linha in range(3) ] for coluna in range(3) ]
  27.  
  28.     for linha in tela:
  29.         print(linha)
  30.  
  31.     return tela
  32.  
  33. def marca_tela(x, y, tela, jogador):
  34.     system("clear")
  35.     for linha in range(3):
  36.         for coluna in range(3):
  37.             if( linha == x and coluna == y ):
  38.                 if( tela[x][y] == "(_)" ):
  39.                     if( jogador ==  "X" ):
  40.                         tela[x][y] = "(X)"
  41.                         posicao = True
  42.                     elif( jogador == "O"):
  43.                         tela[x][y] = "(O)"
  44.                         posicao = True
  45.                     else:
  46.                         posicao = False
  47.                 else:
  48.                     posicao = False
  49.  
  50.     for linha in tela:
  51.         print(linha)
  52.  
  53.     return posicao
  54.  
  55.  
  56. def acabou_jogo(tela):
  57.     campo_vazio    = 0
  58.  
  59.     for linha in range(3):
  60.         for coluna in range(3):
  61.             if( tela[linha][coluna] == "(_)"):
  62.                 campo_vazio += 1
  63.  
  64.     ##############
  65.     if(campo_vazio <= 4):
  66.         ##############
  67.         if((tela[0][0] == tela[0][1] == tela[0][2]) and (tela[0][0] != "(_)")):
  68.             return True
  69.  
  70.         elif((tela[1][0] == tela[1][1] == tela[1][2]) and (tela[1][0] != "(_)")):
  71.             return True
  72.  
  73.         elif((tela[2][0] == tela[2][1] == tela[2][2]) and (tela[2][0] != "(_)")):
  74.             return True
  75.         ##############
  76.         elif((tela[0][0] == tela[1][0] == tela[2][0]) and (tela[0][0] != "(_)")):
  77.             return True
  78.  
  79.         elif((tela[0][1] == tela[1][1] == tela[2][1]) and (tela[0][1] != "(_)")):
  80.             return True
  81.  
  82.         elif((tela[0][2] == tela[1][2] == tela[2][2]) and (tela[2][2] != "(_)")):
  83.             return True
  84.         ##############
  85.  
  86.         elif((tela[0][0] == tela[1][1] == tela[2][2]) and (tela[0][0] != "(_)")):
  87.             return True
  88.         elif((tela[0][2] == tela[1][1] == tela[2][0]) and (tela[0][2] != "(_)")):
  89.             return True
  90.         ##############
  91.         elif(campo_vazio == 0):
  92.             return True
  93.         ##############
  94.         else:
  95.             return False
  96.     else:
  97.         return False
  98.  
  99.  
  100. def jogue_singleplayer():
  101.     system("clear")
  102.     print("Singleplayer")
  103.  
  104.     jogador = {
  105.         "jogador1": "O",
  106.         "jogador2": "X"
  107.     }
  108.  
  109.     jogador1 = input("Insira o nome do jogador 1 - O: ")
  110.     jogador2 = "BOT Retardado"
  111.     system("clear")
  112.     rodada   = 0
  113.     tela     = imprima_tela()
  114.  
  115.     while(True):
  116.         marca_tela(0, 0, tela, "(_)")
  117.         posicao         =     0
  118.         rodada         +=     1
  119.  
  120.         if( rodada > 1 and acabou_jogo(tela)):
  121.             break
  122.  
  123.         if( rodada % 2 ):
  124.             while(posicao == False):
  125.  
  126.                 x = -1
  127.                 y = 3
  128.                 while((x or y) > 2 or (x or y) < 0):
  129.                     print(jogador1, "sua vez!")
  130.                     x = int(input("Digite o eixo X da posição desejada: "))
  131.                     y = int(input("Digite o eixo Y da posição desejada: "))
  132.                     if((x or y) > 2 or (x or y) < 0):
  133.                         system("clear")
  134.                         marca_tela(0, 0, tela, "(_)")
  135.                         print("Preencha com os eixos X e Y corretamente!")
  136.  
  137.                 posicao = marca_tela(x, y, tela, jogador["jogador1"])
  138.                 if(posicao == False):
  139.                     print("Preencha uma posição vazia!")
  140.         else:
  141.             while(posicao == False):
  142.  
  143.                 x = -1
  144.                 y = 3
  145.                 while((x or y) > 2 or (x or y) < 0):
  146.                     x = randint(0,2)
  147.                     y = randint(0,2)
  148.                     if((x or y) > 2 or (x or y) < 0):
  149.                         system("clear")
  150.                         marca_tela(0, 0, tela, "(_)")
  151.  
  152.                 posicao = marca_tela(x, y, tela, jogador["jogador2"])
  153.  
  154.     if( rodada == 10 ):
  155.         print("{} e {} empataram!".format(jogador1, jogador2))
  156.     elif( rodada % 2 ):
  157.         print("Vitoria de {}".format(jogador2))
  158.     else:
  159.         print("Vitoria de {}".format(jogador1))
  160.  
  161.  
  162. def jogue_multiplayer():
  163.     system("clear")
  164.     print("Multiplayer")
  165.  
  166.     jogador = {
  167.         "jogador1": "O",
  168.         "jogador2": "X"
  169.     }
  170.  
  171.     jogador1 = input("Insira o nome do jogador 1 - O: ")
  172.     jogador2 = input("Insira o nome do jogador 2 - X: ")
  173.     system("clear")
  174.     rodada   = 0
  175.     tela     = imprima_tela()
  176.  
  177.     while(True):
  178.         marca_tela(0, 0, tela, "(_)")
  179.         posicao         =     0
  180.         rodada         +=     1
  181.  
  182.         if( rodada > 1 and acabou_jogo(tela)):
  183.             break
  184.  
  185.         if( rodada % 2 ):
  186.             while(posicao == False):
  187.  
  188.                 x = -1
  189.                 y = 3
  190.                 while((x or y) > 2 or (x or y) < 0):
  191.                     print(jogador1, "sua vez!")
  192.                     x = int(input("Digite o eixo X da posição desejada: "))
  193.                     y = int(input("Digite o eixo Y da posição desejada: "))
  194.                     if((x or y) > 2 or (x or y) < 0):
  195.                         system("clear")
  196.                         marca_tela(0, 0, tela, "(_)")
  197.                         print("Preencha com os eixos X e Y corretamente!")
  198.  
  199.                 posicao = marca_tela(x, y, tela, jogador["jogador1"])
  200.                 if(posicao == False):
  201.                     print("Preencha uma posição vazia!")
  202.         else:
  203.             while(posicao == False):
  204.  
  205.                 x = -1
  206.                 y = 3
  207.                 while((x or y) > 2 or (x or y) < 0):
  208.                     print(jogador2, "sua vez!")
  209.                     x = int(input("Digite o eixo X da posição desejada: "))
  210.                     y = int(input("Digite o eixo Y da posição desejada: "))
  211.                     if((x or y) > 2 or (x or y) < 0):
  212.                         system("clear")
  213.                         marca_tela(0, 0, tela, "(_)")
  214.                         print("Preencha com os eixos X e Y corretamente!")
  215.  
  216.                 posicao = marca_tela(x, y, tela, jogador["jogador2"])
  217.                 if(posicao == False):
  218.                     print("Preencha uma posição vazia!")
  219.  
  220.  
  221.     if( rodada == 10 ):
  222.         print("{} e {} empataram!".format(jogador1, jogador2))
  223.     elif( rodada % 2 ):
  224.         print("Vitoria de {}".format(jogador2))
  225.     else:
  226.         print("Vitoria de {}".format(jogador1))
  227.  
  228.  
  229. if(__name__ == "__main__"):
  230.     imprima_menu()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement