Я пишу функцию, которая проверяет, если шашек часть может делать ходы прыгать, и останавливается, когда он не может прыгать, так что я писал:Множественные условия во время цикла
def checkJump(x,y,count,incr):
player = board[x][y]
count = 0
jumpleft = (board[x+incr][y+incr] != player) and (board[x+incr][y+incr] != '') and (board[x+(incr*2)][y+(incr*2)] == '') and 0 <= x <= 7 and 0 <= y <= 7 and 0 and 0 <= x+incr <= 7 and 0 <= x+(incr*2) <= 7 and 0 <= y+(incr*2) <= 7
jumpright = (board[x+incr][y-incr] != player) and (board[x+incr][y-incr] != '') and (board[x+(incr*2)][y-(incr*2)] == '') and 0 <= x <= 7 and 0 <= y <= 7 and 0 and 0 <= x+incr <= 7 and 0 <= x+(incr*2) <= 7 and 0 <= y-(incr*2) <= 7
while jumpleft or jumpright:
while jumpleft:
x += incr*2
y += incr*2
count += 1
jumpleft = (board[x+incr][y+incr] != player) and (board[x+incr][y+incr] != '') and (board[x+(incr*2)][y+(incr*2)] == '') and 0 <= x <= 7 and 0 <= y <= 7 and 0 and 0 <= x+incr <= 7 and 0 <= x+(incr*2) <= 7 and 0 <= y+(incr*2) <= 7
while jumpright:
x += incr*2
y -= incr*2
count += 1
jumpright = (board[x+incr][y-incr] != player) and (board[x+incr][y-incr] != '') and (board[x+(incr*2)][y-(incr*2)] == '') and 0 <= x <= 7 and 0 <= y <= 7 and 0 and 0 <= x+incr <= 7 and 0 <= x+(incr*2) <= 7 and 0 <= y-(incr*2) <= 7
jumpleft = (board[x+incr][y+incr] != player) and (board[x+incr][y+incr] != '') and (board[x+(incr*2)][y+(incr*2)] == '') and 0 <= x <= 7 and 0 <= y <= 7 and 0 and 0 <= x+incr <= 7 and 0 <= x+(incr*2) <= 7 and 0 <= y+(incr*2) <= 7
jumpright = (board[x+incr][y-incr] != player) and (board[x+incr][y-incr] != '') and (board[x+(incr*2)][y-(incr*2)] == '') and 0 <= x <= 7 and 0 <= y <= 7 and 0 and 0 <= x+incr <= 7 and 0 <= x+(incr*2) <= 7 and 0 <= y-(incr*2) <= 7
return x,y,count
Однако условия для проверка слишком избыточна, несколько условий связаны с and
. Есть ли лучший способ написать несколько условий для цикла while, а просто связать их с помощью and
? Большое спасибо за ответы
Ожидаете ли вы циклы while для выполнения анимации? – Soviut
'while' никогда не было того же уровня 2 (два) условия. Хотя func требуется ** уникальные элементы синхронизации ** (не значение, время). Как обращаться, когда пользователь одновременно нажимает 2 клавиши (плохой мальчик, не делайте этого!). поэтому используйте 'if jumpleft: ..... elif jumpright' (не используйте' else'). И никогда не вычисляйте значение, если не предусмотрено исключение. И разделите часы процессора с помощью внешнего триггера. Значит, не теряйте процессор, если не имеете никаких действий. Может быть, ваш код 'awesome', но вам нужен« перерыв »в каждом подцикле (ужасная идея, как сканировать, какой разрыв исключен?) Печатать что-то на RTC ap? :)). – dsgdfg