Мне интересно, как я могу сконденсировать эти утверждения elif в какой-то метод. Я также не знаю, как нужно хранить выбранную координату, чтобы я мог выполнять проверки окружающих координат. Я знаю, что мой код - nooby, но я тоже, я лучше знаю, начиная с длинного пути :)Как преобразовать несколько инструкций ELIF в один метод (PYTHON)
Ниже приведено, как я собираюсь хранить координату внутри переменной. (Не уверен, что это даже правильный способ сделать это еще ...)
grab = board[x][y] if(SjumpX == 'A1'): grab = [0][0] elif(SjumpX == 'A2'): grab = [0][1] elif(SjumpX == 'A3'): grab = [0][2] elif(SjumpX == 'A4'): grab = [0][3] elif(SjumpX == 'B1'): grab = [1][0] elif(SjumpX == 'B2'): grab = [1][1] elif(SjumpX == 'B3'): grab = [1][2] elif(SjumpX == 'B4'): grab = [1][3] elif(SjumpX == 'C1'): grab = [2][0] elif(SjumpX == 'C2'): grab = [2][1] elif(SjumpX == 'C3'): grab = [2][2] elif(SjumpX == 'C4'): grab = [2][3]
SjumpX координату куска моего игрок хочет, чтобы захватить и DjumpX координаты места назначения. Моя логика заключается в том, что если игрок входит в координату (т.е. A1 B2 C3 ...), я могу сохранить эту координату в переменной «grab», а затем использовать эту переменную для проверки, если координата адресата пуста, также, если координация между ними - это противоположная фигура игроков.
Вот совет:
1 2 3 4 A - X O X B X O - O C O X O X
Это где я проверяю, что «jumpable» координаты назначения пустуют на основании текущих координат моего «захватить» переменной. В этом случае 'A3' < ==> грейфер = [0] [2]
if((grab[x][y-2] == '-' or grab[x][y+2] == '-' or grab[x-2][y] == '-' or grab[x+2][y] == '-')and (grab[x][y-1] == 'X' or grab[x][y+1] == 'X' or grab[x-1][y] == 'X' or grab[x+1][y] == 'X'):
Мои основные вопросы:
1- Как уплотнить мой огромный список Элиф заявление?
2- Каков правильный формат/процесс для хранения координаты для выполнения проверки окружающего содержимого координат?
3- Как я могу сгустить оператор if, который проверяет, пуста ли координата места назначения ('-').
Во всех выражениях 'elif', я полагаю, вы намерены означать' return grab [x1] [y1] 'или' grab = board [x1] [y1] 'вместо' grab = [x1] [y1] '. Правильно? Потому что утверждения не кажутся синтаксически правильными. –
Просто для забавы вы можете конденсировать вас elifs в одну строку (при условии, что приведенный выше комментарий верен): 'grab [{'A': 0, 'B': 1, 'C': 2} [SjumpX [0]] ] [int (SjumpX [1]) - 1] ' – khachik