-
Posts
6 -
Cadastrado em
-
Última visita
Reputação
0-
Python Jogo da velha Python simples. Preciso melhorar a AI
marcim1m respondeu ao tópico de marcim1m em Programação - outros
import os import random tab = [0, 1, 2, 3, 4, 5, 6, 7, 8] Nome = input("Qual seu nome?") def desenhar(): os.system('clear') or None print('+-----------+') print('|',tab[0], "|", tab[1], "|", tab[2],'|') print('|','-'* 9,'|') print('|',tab[3], "|", tab[4], "|", tab[5],'|') print('|','-'* 9,'|') print('|',tab[6], "|", tab[7], "|", tab[8],'|') print('+-----------+') def jogadaHumano(): while True: jogada = input('Escolha sua jogada:') pos = int(jogada) if tab[pos] == 'X' or tab [pos] == 'O': print('Jogada invalida') continue tab[pos] = 'X' break # A "AI" NÃO VAI GANHAR SEMPRE MAS TENTAR EVITAR ALGUNS MOVIMENTOS def jogadaAI(): op = [] for i in range(0, 9): if tab[5] == 'X' or tab[5] == 'O': op = [8,1] # Coloca as opções disponíveis caso 5 esteja marcado elif tab[0] == 'X' or tab[0] == 'O': op = [1] # Coloca as opções disponíveis caso 0 esteja marcado elif tab [4] == 'X' or tab [4] == 'O': op = [0] elif tab[4] == 'X' or tab[4] == 'O': op = [6,8] elif tab[3] == 'X' or tab[3] == 'O': op = [1] elif tab[4] == 'X' or tab[4] == 'O': op = [8] elif tab[1] == 'X' or tab[1] == 'O': op = [7] elif tab[8] == 'X' or tab[8] == 'O': op = [2] elif tab[5] == 'X' or tab[5] == 'O': op = [7] elif tab[1] == 'X' or tab[1] == 'O': op = [0] elif tab[i] != 'X' and tab[i] != 'O': op.append(tab[i]) jogada = random.choice(op) tab[jogada] = 'O' #validção def ganhou(turno): #valida a primeira linha if tab[0] == turno and tab[1] == turno and tab[2] == turno: return True elif tab[3]== turno and tab[4]== turno and tab[5]== turno: return True elif tab[6]== turno and tab[7]== turno and tab[8]== turno: return True #valida diagonal elif tab[0] == turno and tab[4] == turno and tab[8]== turno: return True elif tab[2] == turno and tab[4] == turno and tab[6] == turno: return True #valida coluna elif tab[0] == turno and tab[3] == turno and tab[6] == turno: return True elif tab[1] == turno and tab[4] == turno and tab[7] == turno: return True elif tab[2] == turno and tab[5] == turno and tab[8] == turno: return True return False desenhar() turno = 'X' for i in range(0,9): if turno == 'O': jogadaAI() else : jogadaHumano() desenhar() if ganhou(turno): print('Jogador ', turno,' ganhou o jogo!!') break if i == 8: print('Deu velha!!') turno = 'X' if turno == 'O' else 'O' pensei em ela ter um jogada caso outro número seja jogado (como eu comecei no codigo) se o número 4 estiver marcado jogar em (0,2,6,8) se o número 5 estiver marcado jogar em (0,2,4,6,8) se os números (0,2,6,8) estiverem marcado jogar em (4) assim +/- -
Python Jogo da velha Python simples. Preciso melhorar a AI
marcim1m respondeu ao tópico de marcim1m em Programação - outros
https://repl.it/@MarcioMarcos/programajdv eu uso ele no repl.it tente por lá Sobre a lógica só quero evitar que o jogo fique fácil demais o computador não precisa ganhar todas -
Python Jogo da velha Python simples. Preciso melhorar a AI
marcim1m postou um tópico em Programação - outros
A AI não precisa ser invencível ela precisa ser um pouquinho melhor mas não estou conseguindo evoluir ela mais que isso alguém pode ajudar? mport os import random tab = [0, 1, 2, 3, 4, 5, 6, 7, 8] Nome = input("Qual seu nome?") def desenhar(): os.system('clear') or None print('+-----------+') print('|',tab[0], "|", tab[1], "|", tab[2],'|') print('|','-'* 9,'|') print('|',tab[3], "|", tab[4], "|", tab[5],'|') print('|','-'* 9,'|') print('|',tab[6], "|", tab[7], "|", tab[8],'|') print('+-----------+') def jogadaHumano(): while True: jogada = input('Escolha sua jogada:') pos = int(jogada) if tab[pos] == 'X' or tab [pos] == 'O': print('Jogada invalida') continue tab[pos] = 'X' break # A "AI" NÃO VAI GANHAR SEMPRE MAS TENTAR EVITAR ALGUNS MOVIMENTOS def jogadaAI(): op = [] for i in range(0, 9): if tab[5] == 'X' or tab[5] == 'O': op = [8,1] # Coloca as opções disponíveis caso 5 esteja marcado elif tab[0] == 'X' or tab[0] == 'O': op = [1] # Coloca as opções disponíveis caso 0 esteja marcado elif tab [4] == 'X' or tab [4] == 'O': op = [0] elif tab[4] == 'X' or tab[4] == 'O': op = [6,8] elif tab[3] == 'X' or tab[3] == 'O': op = [1] elif tab[4] == 'X' or tab[4] == 'O': op = [8] elif tab[1] == 'X' or tab[1] == 'O': op = [7] elif tab[8] == 'X' or tab[8] == 'O': op = [2] elif tab[5] == 'X' or tab[5] == 'O': op = [7] elif tab[1] == 'X' or tab[1] == 'O': op = [0] elif tab != 'X' and tab != 'O': op.append(tab) jogada = random.choice(op) tab[jogada] = 'O' #validção def ganhou(turno): #valida a primeira linha if tab[0] == turno and tab[1] == turno and tab[2] == turno: return True elif tab[3]== turno and tab[4]== turno and tab[5]== turno: return True elif tab[6]== turno and tab[7]== turno and tab[8]== turno: return True #valida diagonal elif tab[0] == turno and tab[4] == turno and tab[8]== turno: return True elif tab[2] == turno and tab[4] == turno and tab[6] == turno: return True #valida coluna elif tab[0] == turno and tab[3] == turno and tab[6] == turno: return True elif tab[1] == turno and tab[4] == turno and tab[7] == turno: return True elif tab[2] == turno and tab[5] == turno and tab[8] == turno: return True return False desenhar() turno = 'X' for i in range(0,9): if turno == 'O': jogadaAI() else : jogadaHumano() desenhar() if ganhou(turno): print('Jogador ', turno,' ganhou o jogo!!') break if i == 8: print('Deu velha!!') turno = 'X' if turno == 'O' else 'O'
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais
Direitos autorais
Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais