我目前有一个代表国际象棋棋盘的简单列表,我如何使用行和列来代表棋盘上的棋子?
Board= [ ['bR','bKn','bB','bQ','bK','bB','bKn','bR'],
['bP','bP','bP','bP','bP','bP',' bP',' bP'],
['_ ','_ ','_ ','_ ','_ ','_ ',' _ ',' _ '],
['_ ','_ ','_ ','_ ','_ ','_ ',' _ ',' _ '],
['_ ','_ ','_ ','_ ','_ ','_ ',' _ ',' _ '],
['_ ','_ ','_ ','_ ','_ ','_ ',' _ ',' _ '],
['wP','wP','wP','wP','wP','wP',' wP',' wP'],
['wR','wKn','wB','wQ','wK','wB','wKn','wR'] ]
例如:
while True:
if [][] in Board is == 'wP': #fix
我可以使用什么来搜索整个电路板以找到“wP”而不是特定的索引?
任何帮助都会非常感激!
答案 0 :(得分:1)
你的问题很不清楚。如果您有行和列,则可以执行Board[row][column] == 'wP'
。这将告诉您该单元格是否等于该字符串。如果你想说“第一个等于字符串X的位置在哪里”:
def find_first_cell(cell_val):
for row_idx, row in enumerate(Board):
for col_idx, cell in enumerate(row):
if cell == cell_val:
return row_idx, col_idx
return -1, -1 # or you could raise an exception
如果您想利用内置列表操作,您还可以将您的Board存储为单个列表,并使用索引数学来计算单个列表中row
和col
的位置。然后可以使用内置列表方法进行搜索,例如.index
或'wP' in Board
。