Странная ошибка при использовании шахматной библиотеки Python: после set.fen() и push(move) board.legel_moves генерируетPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Странная ошибка при использовании шахматной библиотеки Python: после set.fen() и push(move) board.legel_moves генерирует

Сообщение Anonymous »

Я пишу небольшой шахматный графический интерфейс с шахматной библиотекой Python. Вчера я запускал свой код много раз без каких-либо проблем. Затем я установил несколько других библиотек Python. Сегодня я заметил странную ошибку: board.legel_moves генерирует неправильные ходы. Я попытался переустановить Python 3.13.1 и последнюю версию шахматной библиотеки Python, ошибка все еще существует.
Код очень короткий:

Код: Выделить всё

import chess

board = chess.Board()
starting_position=board.fen()

for move in board.legal_moves:
print(starting_position)
board.set_fen(starting_position)
print(move)
board.push(move)
print(f' board pushed move {board.fen()}')
print()
неправильные результаты начинаются с пятого хода h7h6 и до конца. Это должно быть h2h3. Я показываю только первые шесть примеров.

Код: Выделить всё

rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
g1h3
board pushed move rnbqkbnr/pppppppp/8/8/8/7N/PPPPPPPP/RNBQKB1R b KQkq - 1 1

rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
g1f3
board pushed move rnbqkbnr/pppppppp/8/8/8/5N2/PPPPPPPP/RNBQKB1R b KQkq - 1 1

rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
b1c3
board pushed move rnbqkbnr/pppppppp/8/8/8/2N5/PPPPPPPP/R1BQKBNR b KQkq - 1 1

rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
b1a3
board pushed move rnbqkbnr/pppppppp/8/8/8/N7/PPPPPPPP/R1BQKBNR b KQkq - 1 1

rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
h7h6
board pushed move rnbqkbnr/ppppppp1/7P/8/8/8/PPPPPPPP/RNBQKBNR b KQkq - 0 1

rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
g7g6
board pushed move rnbqkbnr/pppppp1p/6P1/8/8/8/PPPPPPPP/RNBQKBNR b KQkq - 0 1
Если я закомментирую часть перемещения по доске board.push(move), все будет нормально.

Код: Выделить всё

rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
g1h3
board pushed move rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1

rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
g1f3
board pushed move rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1

rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
b1c3
board pushed move rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1

rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
b1a3
board pushed move rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1

rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
h2h3
board pushed move rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1

rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
g2g3
board pushed move rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
Если я закомментирую board.set_fen(starting_position) и добавлю board.pop() в конце, ошибки не будет.< /p>
Может ли кто-нибудь дать мне несколько советов?
Спасибо

Подробнее здесь: https://stackoverflow.com/questions/792 ... d-pushmove
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»