Jump to content

Será que esse código em Python corresponde ao que a questão pede?


Eli Almeida

Postagens Recomendadas

O código que fiz para a questão:

import os

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 (" ------------")
      print()
def jogar (simbolo,linha,coluna):
  global tabela  
  mudou = False
  if linha == 0:
    for i in range(3):
      if i == coluna:
        if tabela[linha][coluna] != "x" and tabela[linha][coluna] != "o":
          tabela[linha][coluna] = simbolo
          mudou = True
  if linha == 1:
    for i in range(3):
      if i == coluna:
        if tabela[linha][coluna] != "x" and tabela[linha][coluna] != "o":
          tabela[linha][coluna] = simbolo
          mudou = True
  if linha == 2:
    for i in range(3):
      if i == coluna:
        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 jogador
  global tabela
  espacosDisponiveis = 0
  terminou = False
  #Linhas
  for linha in range(3):
    if tabela[linha][0] == tabela[linha][1] == tabela[linha][2] == "o":
      terminou = True
    if tabela[linha][0] == tabela[linha][1] == tabela[linha][2] == "x":
        terminou = True    
  #colunas
  for coluna in range(3):
    if tabela[0][coluna] == tabela[1][coluna] == tabela[2][coluna] == "o":
      terminou = True
    if tabela[0][coluna] == tabela[1][coluna] == tabela[2][coluna] == "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":
      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":
    
     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("\n"*2)
    print("Empate")
    jogador = 0
  return terminou                    


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

jogador = 1
simbolo = "x"
simboloInicial = simbolo
# A variável simboloInicial armazena uma cópia de "x" que começa o jogo.
# Ela vai ser trocada por "o" dentro da função reiniciarVelha, caso o usuário decida continuar jogando
#, após terminar uma partida. E assim por diante.


resposta = True
resultado = False
mostrarVelha()

while resposta:
    while not jogoTerminou():
        resultado = False
        while not resultado:
            try : 
                print("\n")
                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())
                os.system('cls' if os.name == 'nt' else 'clear')
                resultado = jogar(simbolo, linha,coluna)

                if not resultado:
                    print("Jogada inválida")
                    
                mostrarVelha()
            except ValueError :
                os.system('cls' if os.name == 'nt' else 'clear')
                print(" Digite um número válido ")
                mostrarVelha()
        trocarJogador()
        
    print ("\n"*1)
    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":
            os.system('cls' if os.name == 'nt' else 'clear')
            reiniciarVelha()
        else:
            print ("Digite [S],ou [N]")

 

Captura de tela_14-4-2024_18819_classroom.google.com.jpeg

  • Curtir 1
Link to comment
Compartilhe em outros sites

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...