import pygame import sys # Inicialização do Pygame pygame.init() # Configurações largura, altura = 400, 400 tamanho_quadrado = largura // 3 cor_fundo = (255, 255, 255) cor_linhas = (0, 0, 0) espessura_linha = 15 cor_jogador1 = (255, 0, 0) cor_jogador2 = (0, 0, 255) fonte = pygame.font.Font(None, 48) # Inicialização da janela janela = pygame.display.set_mode((largura, altura)) pygame.display.set_caption("Jogo da Velha") # Tabuleiro tabuleiro = [['' for _ in range(3)] for _ in range(3)] jogador_atual = 'X' vencedor = None empate = False # Função para desenhar o tabuleiro def desenhar_tabuleiro(): for linha in range(1, 3): pygame.draw.line(janela, cor_linhas, (0, linha * tamanho_quadrado), (largura, linha * tamanho_quadrado), espessura_linha) pygame.draw.line(janela, cor_linhas, (linha * tamanho_quadrado, 0), (linha * tamanho_quadrado, altura), espessura_linha) # Função para desenhar os X e O no tabuleiro def desenhar_XO(): for linha in range(3): for coluna in range(3): if tabuleiro[linha][coluna] == 'X': pygame.draw.line(janela, cor_jogador1, (coluna * tamanho_quadrado, linha * tamanho_quadrado), ((coluna + 1) * tamanho_quadrado, (linha + 1) * tamanho_quadrado), espessura_linha) pygame.draw.line(janela, cor_jogador1, ((coluna + 1) * tamanho_quadrado, linha * tamanho_quadrado), (coluna * tamanho_quadrado, (linha + 1) * tamanho_quadrado), espessura_linha) elif tabuleiro[linha][coluna] == 'O': centro_x = coluna * tamanho_quadrado + tamanho_quadrado // 2 centro_y = linha * tamanho_quadrado + tamanho_quadrado // 2 raio = tamanho_quadrado // 2 - 10 pygame.draw.circle(janela, cor_jogador2, (centro_x, centro_y), raio, espessura_linha) # Função para verificar se o jogo acabou def verificar_fim_jogo(): global vencedor, empate # Verificar linhas e colunas for i in range(3): if tabuleiro[i][0] == tabuleiro[i][1] == tabuleiro[i][2] and tabuleiro[i][0] != '': vencedor = tabuleiro[i][0] return True if tabuleiro[0][i] == tabuleiro[1][i] == tabuleiro[2][i] and tabuleiro[0][i] != '': vencedor = tabuleiro[0][i] return True # Verificar diagonais if tabuleiro[0][0] == tabuleiro[1][1] == tabuleiro[2][2] and tabuleiro[0][0] != '': vencedor = tabuleiro[0][0] return True if tabuleiro[0][2] == tabuleiro[1][1] == tabuleiro[2][0] and tabuleiro[0][2] != '': vencedor = tabuleiro[0][2] return True # Verificar empate if all(tabuleiro[i][j] != '' for i in range(3) for j in range(3)): empate = True return True return False # Loop do jogo while True: for evento in pygame.event.get(): if evento.type == pygame.QUIT: pygame.quit() sys.exit() elif vencedor is None and not empate: if evento.type == pygame.MOUSEBUTTONDOWN: x, y = evento.pos coluna = x // tamanho_quadrado linha = y // tamanho_quadrado if tabuleiro[linha][coluna] == '': tabuleiro[linha][coluna] = jogador_atual jogador_atual = 'O' if jogador_atual == 'X' else 'X' janela.fill(cor_fundo) desenhar_tabuleiro() desenhar_XO() if vencedor: texto = f"Jogador {vencedor} venceu!" elif empate: texto = "Empate!" else: texto = f"Vez do Jogador {jogador_atual}" mensagem = fonte.render(texto, True, cor_linhas) mensagem_rect = mensagem.get_rect(center=(largura // 2, altura - 50)) janela.blit(mensagem, mensagem_rect) pygame.display.update() pygame.quit() sys.exit()