Вы уменьшаете x
в первом операторе if
, затем, когда второй if
проверяет P1 > x
, это правда, потому что вы устанавливаете x
с 5
на 2
и P1
это 3
.Вы можете просто использовать if/else
здесь, так как если ход недействителен, вы уже знаете, что он будет недопустимым.Кроме того, у вас есть некоторые крайние случаи, которые необходимо проверить с помощью сравнений >
, <
и !=
(попробуйте брать по 3 палки за ход и посмотреть, что произойдет).Я оставлю все остальное для работы, так как это школьная работа, и это будет хорошим опытом обучения.Отредактирую позже, если потребуется помощь.
if P1 < x and P1 < 4: # check for legal move
x = x - P1 # <========= decrementing here then checking it in the next if
turnsa = turnsa + 1
whichplayer = 2 #ending loop to start player 2 turn
if P1 > 3 or P1 > x: #check for illegal move
print('illegal move')
continue #restarting player 1 loop