Verificação de Acesso

Carregando...

Formulário de contato

Nome

E-mail *

Mensagem *

Este blog é um complemento do nosso canal no YouTube. Clique em @CanalQb para seguir e acompanhar nossos vídeos!

Imagem

Jogo da Velha em Python: Código Completo e Explicado

@CanalQb Python - Jogo da Velha: Guia Completo para Desenvolver seu Próprio Jogo
Canal Qb

Introdução ao Jogo da Velha em Python

O Jogo da Velha é um dos jogos mais clássicos e simples, muito utilizado para introduzir conceitos de programação. Neste artigo, apresentamos um código completo em Python para você criar seu próprio jogo, aprender sobre listas, funções e controle de fluxo, além de garantir um aprendizado prático e divertido.

Como funciona o jogo

O Jogo da Velha é disputado entre dois jogadores que se alternam para marcar posições em uma grade 3x3. O objetivo é alinhar três símbolos iguais na horizontal, vertical ou diagonal. Este script em Python simula essa dinâmica, permitindo que dois jogadores humanos joguem no console.

Código completo com explicações

Função para desenhar o tabuleiro

A função desenha_tabuleiro exibe o estado atual da grade, mostrando as posições preenchidas e as vagas livres com o caractere _.

def desenha_tabuleiro(tabuleiro):
    print("  0 1 2")
    for i in range(3):
        print(i, end=' ')
        for j in range(3):
            if tabuleiro[i][j] == ' ':
                print('_', end=' ')
            else:
                print(tabuleiro[i][j], end=' ')
        print()

Função para verificar vitória

A função verifica_vitoria checa todas as possíveis linhas, colunas e diagonais para determinar se um jogador venceu.

def verifica_vitoria(tabuleiro, simbolo):
    for i in range(3):
        if tabuleiro[i][0] == simbolo and tabuleiro[i][1] == simbolo and tabuleiro[i][2] == simbolo:
            return True
        if tabuleiro[0][i] == simbolo and tabuleiro[1][i] == simbolo and tabuleiro[2][i] == simbolo:
            return True
    if tabuleiro[0][0] == simbolo and tabuleiro[1][1] == simbolo and tabuleiro[2][2] == simbolo:
        return True
    if tabuleiro[0][2] == simbolo and tabuleiro[1][1] == simbolo and tabuleiro[2][0] == simbolo:
        return True
    return False

Função principal do jogo

A função jogar controla o fluxo do jogo, alternando entre os jogadores, capturando as jogadas, validando posições e finalizando o jogo quando alguém vence.

def jogar():
    tabuleiro = [[' ' for j in range(3)] for i in range(3)]
    jogador = 'X'
    while True:
        desenha_tabuleiro(tabuleiro)
        try:
            linha = int(input(f"Digite a linha para {jogador} (0, 1 ou 2): "))
            coluna = int(input(f"Digite a coluna para {jogador} (0, 1 ou 2): "))
            if linha not in [0,1,2] or coluna not in [0,1,2]:
                print("Entrada inválida! Use números entre 0 e 2.")
                continue
        except ValueError:
            print("Por favor, digite um número válido.")
            continue

        if tabuleiro[linha][coluna] == ' ':
            tabuleiro[linha][coluna] = jogador
            if verifica_vitoria(tabuleiro, jogador):
                desenha_tabuleiro(tabuleiro)
                print(f"Jogador {jogador} venceu!")
                break
            jogador = 'O' if jogador == 'X' else 'X'
        else:
            print("Esta posição já está ocupada!")
    desenha_tabuleiro(tabuleiro)

jogar()

Detalhes técnicos e melhorias

  • O tabuleiro é representado por uma lista de listas, facilitando a manipulação dos dados.
  • O código trata entradas inválidas e evita sobrescrever posições já ocupadas.
  • A troca de jogadores é feita de forma simples e eficiente com operador ternário.
  • Podemos expandir o jogo adicionando IA ou interface gráfica em projetos futuros.

Conclusão

Este exemplo prático é ideal para quem está aprendendo Python e quer consolidar conceitos básicos de programação através de um jogo clássico. O código está pronto para ser executado diretamente no seu ambiente Python, oferecendo uma experiência interativa e educativa.

Para mais conteúdos como este, visite o canal oficial no YouTube.

Comentários