我想下国际象棋,但有一个问题把我弄糊涂了。如何连接我的棋盘和棋子?因为棋盘上有棋子
chessboard = [(x, y) for x in range(8) for y in range(8)]
典当:
pawns = []
for pawnY in range(8):
pawn = (pawnY, 1)
pawns.append(pawn)
接下来我试着替换坐标。我只是不知道下面的代码有什么区别,它们给了我SyntaxError: invalid syntax
[chessboard[chessboard.index(e)] = '♟' for i, e in enumerate(pawns) if e in chessboard]
这个,但这个有效:
for i, e in enumerate(pawns):
if e in chessboard:
chessboard[chessboard.index(e)] = '♟'
输出:
print(chessboard)
[(0, 0), (1, 0), (2, 0), (3, 0), (4, 0), (5, 0), (6, 0), (7, 0), '♟', '♟', '♟', '♟', '♟', '♟', '♟', '♟', (0, 2), (1, 2), (2, 2), (3, 2), (4, 2), (5, 2), (6, 2), (7, 2), (0, 3), (1, 3), (2, 3), (3, 3), (4, 3), (5, 3), (6, 3), (7, 3), (0, 4), (1, 4), (2, 4), (3, 4), (4, 4), (5, 4), (6, 4), (7, 4), (0, 5), (1, 5), (2, 5), (3, 5), (4, 5), (5, 5), (6, 5), (7, 5), (0, 6), (1, 6), (2, 6), (3, 6), (4, 6), (5, 6), (6, 6), (7, 6), (0, 7), (1, 7), (2, 7), (3, 7), (4, 7), (5, 7), (6, 7), (7, 7)]
那么,我应该怎样把坐标和工件联系起来,然后操作它们呢?你能给我一些建议吗?你知道吗
我不完全确定你到底想要什么,但你似乎把棋盘的结构(所有x,y位置)和棋盘的内容(棋子)搞混了。你知道吗
您可以创建一个嵌套的(2D)列表来编码电路板的结构,而不是在列表中存储8*8=64个x,y位置的元组:
结果是
chessboard
:现在,您可以通过每个位置的2D索引来引用每个位置,例如角落中的
chessboard[0][0]
。我在这里用0
来表示电路板上的一个empy正方形。你知道吗然后,您可以继续用棋子填充它,例如棋子:
导致更新的
chessboard
:在开始位置用工件填充电路板后,您可以编写函数来根据工件各自的规则移动工件。你知道吗
相关问题 更多 >
编程相关推荐