Итак, у меня есть еще один вопрос о игре с tic tac toe, которую я создаю. : P Я работаю над кодированием A.I. это непревзойденно, так что я сейчас нахожусь в том, что, если компьютер начнет сначала, он выполнит необходимые шаги для победы или розыгрыша, однако я не знаю, как использовать алгоритмы, в основном minimax(), (так как это это моя первая фактическая программа, которую я делаю), и я не слишком уверен, как упростить все мои инструкции if.Начальные алгоритмы/вложенные операторы if Python 3.3
Код, который у меня есть для A.I. до сих пор выглядит следующим образом:
if strategy == False:
slot[0] = computer_team
if slot[1] == user_team or slot [2] == user_team and (slot[3] != user_team) \
and (slot[3] != computer_team):
slot[3] = computer_team
if slot[6] == user_team and (slot[4] != user_team) and (slot[4] != computer_team):
slot[4] = computer_team
else:
return
if slot[3] == user_team or slot[4] == user_team or slot[6] == user_team \
and (slot[1] != user_team) and (slot[1] != computer_team):
slot[1] = computer_team
if slot[2] == user_team and (slot[4] != user_team) and (slot[4] != computer_team):
slot[4] = computer_team
elif slot[2] == user_team and slot[4] == user_team and (slot[6] != user_team) \
and (slot[6] != computer_team):
slot[6] = computer_team
if slot[4] == user_team and (slot[5] != user_team) and (slot[5] != computer_team):
slot[5] = computer_team
elif slot[7] == user_team and slot[5] == computer_team and (slot[8] != user_team) and (slot[8] != computer_team):
slot[8] = computer_team
else:
return
else:
return
Одна вещь, которую я нашел, чтобы быть проблемой является то, что когда-то, если заявления получить вложенные в до сих пор они прекращают выполнение (в данном случае, слот последним Элиф [7]). Я знаю, что этот код неэффективен, но это единственный способ, которым я знаю, как это сделать. (Я не уверен, как я буду использовать для операторов или диапазонов здесь). Поэтому, если у кого-то из вас есть предложения по алгоритмам или как упростить это, если вложенные беспорядки, тогда я буду рад услышать. с:
Edit: Все слот неразбериха относится к моей плате, которая:
def draw_board():
'''Opted to use lists so that the numbers can be replaced with either
X or O later on and so that testing whether the game is over is simpler'''
print (" " + str(slot[0]) + " | " + str(slot[1]) + " | " + str(slot[2]))
print ("-----------")
print (" " + str(slot[3]) + " | " + str(slot[4]) + " | " + str(slot[5]))
print ("-----------")
print (" " + str(slot[6]) + " | " + str(slot[7]) + " | " + str(slot[8]))
print ("\n")
И user_team/computer_team имеет либо «X» или «O», в зависимости от которой один игрок решает использовать ,
можете ли вы предоставить пастебин (http://pastebin.com/) вашего кода? Я хочу запустить его сам и посмотреть, что происходит (проще отлаживать в траншеях, чем от моста корабля в море = P) –
@JustinCarroll http://pastebin.com/9VbzpgWe Чтобы увидеть проблему с if -statement не выполняется, перезагрузитесь, пока компьютер не начнет сначала, а затем для ваших ходов, сделайте 4, 2, 3, 7.: P –
спасибо - глядя на него сейчас. Какую версию python вы используете? 3+? 2,7? –