Untitled

 avatar
user_6633285
python
2 months ago
5.7 kB
36
Indexable
Never
tabela= [  [ " "," "," "],
           [ " "," "," "],
           [ " ", " "," "] ]




def mostrarVelha ():
  global tabela
  print()
  for linha in range(3):
    for coluna in range (3):
      if tabela[linha][coluna] != "x" and tabela[linha][coluna] != "o":
        tabela[linha][coluna] = " "
  print ("  0    1    2 \n ")
  for linha in range(3):
    for coluna in range(3):
     print("", tabela[linha][coluna], end = "")
     if coluna < 2:
       print("  |", end = "")
     if coluna == 2:
       print("  ", linha)

    if linha < 2  :
      print("")
      print (" ------------")

def jogar (simbolo,linha,coluna):
  global tabela  
  mudou = False

  if linha == 0 and coluna == 0:
    if tabela[linha][coluna] != "x" and tabela[linha][coluna] != "o":
      tabela[linha][coluna] = simbolo
      mudou = True
  if linha == 0 and coluna == 1:
    if tabela[linha][coluna] != "x" and tabela[linha][coluna] != "o":
      tabela[linha][coluna] = simbolo
      mudou = True
  if linha == 0 and coluna == 2:
    if tabela[linha][coluna] != "x" and tabela[linha][coluna] != "o":
      tabela[linha][coluna] = simbolo
      mudou = True
  if linha == 1 and coluna == 0:
    if tabela[linha][coluna] != "x" and tabela[linha][coluna] != "o":
      tabela[linha][coluna] = simbolo
      mudou = True
  if linha == 1 and coluna == 1:
    if tabela[linha][coluna] != "x" and tabela[linha][coluna] != "o":
      tabela[linha][coluna] = simbolo
      mudou = True
  if linha == 1 and coluna == 2:
    if tabela[linha][coluna] != "x" and tabela[linha][coluna] != "o":
      tabela[linha][coluna] = simbolo
      mudou = True     
  if linha == 2 and coluna == 0:
    if tabela[linha][coluna] != "x" and tabela[linha][coluna] != "o":
      tabela[linha][coluna] = simbolo
      mudou = True
  if linha == 2 and coluna == 1:
    if tabela[linha][coluna] != "x" and tabela[linha][coluna] != "o":
      tabela[linha][coluna] = simbolo
      mudou = True    
  if linha == 2 and coluna == 2:
    if tabela[linha][coluna] != "x" and tabela[linha][coluna] != "o":
      tabela[linha][coluna] = simbolo
      mudou = True     
      
  return mudou
      
   
def trocarJogador ():
  global simbolo
  global jogador
  
  if simbolo == "x":
    simbolo = "o"
  else:
    simbolo = "x"

  if jogador == 1:
    jogador = 2
  else:
    jogador = 1
   
def jogoTerminou ():
  global ganhador
  global tabela
  espacosDisponiveis = 0
  terminou = False
  #Linhas
  for linha in range(3):
    if tabela[linha][0] == tabela[linha][1] == tabela[linha][2] == "o":
      ganhador = "o"
      terminou = True
    if tabela[linha][0] == tabela[linha][1] == tabela[linha][2] == "x":
        ganhador = "x"
        terminou = True    
  #colunas
  for coluna in range(3):
    if tabela[0][coluna] == tabela[1][coluna] == tabela[2][coluna] == "o":
      ganhador = "o"
      terminou = True
    if tabela[0][coluna] == tabela[1][coluna] == tabela[2][coluna] == "x":
      ganhador = "x"
      terminou = True
  #Diagonal
  if tabela[0][0] == "o" and tabela[1][1]=="o" and tabela[2][2] == "o" or tabela[0][2] == "o" and tabela[1][1]== "o" and tabela[2][0] =="o":
      ganhador = "o"
      terminou = True
  if tabela[0][0] == "x" and tabela[1][1]=="x" and tabela[2][2] == "x" or tabela[0][2] == "x" and tabela[1][1]== "x" and tabela[2][0] =="x":
     ganhador = "x"
     terminou = True     
# Empate
  for linha in range(3):
    for coluna in range(3):
      if tabela[linha][coluna] != "x" and tabela[linha][coluna]!= "o":
        espacosDisponiveis = espacosDisponiveis+1               

  if espacosDisponiveis == 0:
    terminou = True
    print("Empate\n")
    ganhador = ""
    print()
    jogador = 0
  return terminou                    



def reiniciarVelha():
  global tabela
  global c
  global simbolo
  global jogador
  jogador = 1 
  
  for linha in range(3):
    for coluna in range (3):
        tabela[linha][coluna] = ""
  mostrarVelha ()        
  if c == "x":
    simbolo = "o"
    c = simbolo
  else:
    if c == "o":
      simbolo = "x"
      c = simbolo

     
    

jogador = 1
ganhador = ""
simbolo = "x"
c = simbolo
resposta = True
resultado = False
mostrarVelha()

while resposta:
    while not jogoTerminou():
        resultado = False
        while not resultado:
            try : 
                print()
                print()
                print("Jogador ",jogador," : informe  a linha que gostaria de jogar", simbolo)
                linha = int(input())
                print("Jogador ",jogador,"informe  a coluna que gostaria de jogar", simbolo)
                coluna = int(input())
                resultado = jogar(simbolo, linha,coluna)
                if not resultado:
                    print("Jogada inválida")
                mostrarVelha()
            except ValueError :
                print(" Digite um número válido ")
                mostrarVelha()
        trocarJogador()

    print()
    print("Jogo finalizado")
    if jogador >= 1 and jogador <= 2:
        if jogador == 2 :
            jogador= jogador-1
            print("jogador", jogador, "ganhou")
        else:
            jogador = jogador+1
            print("jogador", jogador, "ganhou")
            
    pergunta = ""
    while pergunta !="N" and pergunta !="S":
        print("Gostaria de continuar jogando?[S/N]")
        pergunta = str(input("")).upper().strip()[0]
        if pergunta == "N":
            resposta = False
        elif pergunta == "S":
            reiniciarVelha()
        else:
            print ("Digite [S],ou [N]")
Leave a Comment