board = [["bRook", "bKnight", "bBishop", "bQueen", "bKing", "bBishop", "bKnight", "bRook"],
["bPawn", "bPawn", "bPawn", "bPawn", "bPawn", "bPawn", "bPawn", "bPawn"],
["", "", "", "", "", "", "", ""],
["", "", "", "", "", "", "", ""],
["", "", "", "", "", "", "", ""],
["", "", "", "", "", "", "", ""],
["wPawn", "wPawn", "wPawn", "wPawn", "wPawn", "wPawn", "wPawn", "wPawn"],
["wRook", "wKnight", "wBishop", "wQueen", "wKing", "wBishop", "wKnight", "wRook"]]
def evaluation():
#Material Score
materialScoreWhite = 0
materialScoreBlack = 0
#Main Material
pieceScores = {"Pawn": 100,
"Knight": 320,
"Bishop": 330,
"Rook": 500,
"Queen": 900,
"King": 20000}
for each in board:
for f in each:
if f[0] == "w":
materialScoreWhite += "w" + pieceScores[each[0:]]
elif f[0] == "b":
materialScoreBlack += "b" + pieceScores[each[0:]]
我正在尝试用 Python 制作一个简单的国际象棋引擎。该列表board
显示了董事会如何处于程序试图评估的位置。我的部分评估涉及检查板上的每一块,并为该颜色的分数添加一定的值。
例如,此刻列表中的第一个部分(起始位置)是一辆黑车,所以我希望程序添加500
到materialScoreBlack
. 但是,我不断收到此错误:
materialScoreBlack += "b" + pieceScores[each[0:]]
TypeError: unhashable type: 'list'
我怎样才能解决这个问题?