#python #function #import #chess
Вопрос:
Эй, я пытаюсь отредактировать шахматный код. В двигателе плата задана в виде массива.
class GameState:
...
self.board = [['bR', 'bN', 'bB', 'bQ', 'bK', 'bB', 'bN', 'bR'],
['bp', 'bp', 'bp', 'bp', 'bp', 'bp', 'bp', 'bp'],
['--', '--', '--', 'wQ', '--', '--', '--', '--'],
['--', '--', '--', '--', '--', '--', '--', '--'],
['--', '--', '--', '--', '--', '--', '--', '--'],
['--', '--', '--', '--', '--', '--', '--', '--'],
['wp', 'wp', 'wp', 'wp', 'wp', 'wp', 'wp', 'wp'],
['wR', 'wN', 'wB', 'wQ', 'wK', 'wB', 'wN', 'wR']]
...
в основном я импортирую эту доску с помощью import ChessEngine. Теперь я хочу изменить плату в двигателе с помощью последовательного ввода. Поэтому я написал этот код:
def brett(self):
ser = serial.Serial('/dev/ttyACM0', 9600, timeout=1)
ser.flush()
while True:
if ser.in_waiting > 0:
Brett = [ser.readline().decode('ascii').rstrip()]
return Brett
И я написал self.board = self.brett()
В моей основной импортированной функции с
game_state = ChessEngine.GameState()
...
while running:
human_turn = (game_state.white_to_move and player_one) or (not game_state.white_to_move and player_two)
game_state.brett()
...
Каким-то образом я получаю такие ошибки, как: referenced before assignment error
или 'NoneType' object is not subscriptable
Кто-нибудь знает, в чем Проблема? Может быть, я использую импорт ложно. Можно ли изменить параметр в файле Chessengine так, как это делаю я?
Комментарии:
1. Почему внутри метода есть главная защита
brett
? Это необходимо? В случае, если это не__main__
файл,self.brett()
вернетNone
2. @cyttorak о нет, я забыл его вынуть, в этом нет необходимости. К сожалению, ошибка возникает и без этого