Essayer de trouver le meilleur coup ainsi que le score. J'ai obtenu mon programme pour retourner correctement le score du jeu, mais je veux qu'il retourne aussi le mouvement. Comment puis-je changer mon code pour qu'il le fasse? Semblable à this et this. Voir mon code échoué here, le None
retourné si le jeu est terminé devrait être le déménagement à la place.trouver le meilleur coup en utilisant l'alphabet TicTacToe
def alphabeta(game_state, alpha, beta, our_turn=True):
if game_state.is_gameover():
return game_state.score()
if our_turn:
score = -9999
for move in game_state.get_possible_moves():
child = game_state.get_next_state(move, True)
temp_max = alphabeta(child, alpha, beta, False)
if temp_max > score:
score = temp_max
alpha = max(alpha, score)
if beta <= alpha:
break
return score
else:
score = 9999
for move in game_state.get_possible_moves():
child = game_state.get_next_state(move, False)
temp_min = alphabeta(child, alpha, beta, True)
if temp_min < score:
score = temp_min
beta = min(beta, score)
if beta <= alpha:
break
return score
shnikes Saint, tu es moi il y a 15 ans. Développer un jeu imbattable de Tic Tac Toe était ma drogue de passage dans la programmation. Je me souviens d'un arbre fantastique d'illisibles si ... alors que je n'ai jamais vraiment travaillé. C'était ma première leçon sur l'importance du code lisible. EDIT: Oh, attendez, alpha-bêta-taille? Peu importe, vous êtes en avance sur l'endroit où j'étais. – CivFan
Lol! Entré il ya 2 ans, l'école secondaire l'année prochaine! :) – PAS