Как я могу сделать этот код для поиска правильных шахматных ходов более эффективным?Python

Программы на Python
Ответить
Anonymous
 Как я могу сделать этот код для поиска правильных шахматных ходов более эффективным?

Сообщение Anonymous »

Я пытаюсь создать шахматный движок без использования шахматных библиотек Python, чтобы узнать больше о шахматном программировании.
Сгенерировал набор псевдоправильных ходов (- рокировка и на проходе) и создал функцию для генерации только допустимых ходов из списка.
Мой код для этой функции находится здесь:

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

def generateLegalMoves(currentPos, colourToMove):
kingNumber = 1 if colourToMove == "b" else 9
opponentColour = "w" if colourToMove == "b" else "b"
legalMoves = []
myKingSquare = currentPos.index(kingNumber)
pseudoLegalList = GeneratePsuedoLegalMoves(currentPos, colourToMove)
for pseudoMove in pseudoLegalList:
newPos = makeMove(currentPos, pseudoMove[0], pseudoMove[1])
newPosPsuedoLegalMoves = GeneratePsuedoLegalMoves(newPos, opponentColour)
isLegal = True
for j in newPosPsuedoLegalMoves:
if j[1] == myKingSquare:
isLegal = False
if isLegal:
legalMoves.append(pseudoMove)
return legalMoves
Как мне написать более эффективную версию?


Подробнее здесь: https://stackoverflow.com/questions/769 ... -efficient
Ответить

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

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

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

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

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