[英]How to model Bishop movement on a chessboard
我有一塊棋盤,我想在上面模擬主教可能的動作。 我嘗試了這個代碼:
for c1, c2 in [(1, -1), (1, 1), (-1, -1), (-1, 1)]:
for x, y in [range(x+c1, board_size), range(y+c2, board_size)]:
moves.append(x, y)
但是找到所有的動作是行不通的。 然而,我不明白為什么。 它不檢查所有四個方向嗎?
你的邏輯是合理的,但你的執行卻不是。
x
或y
到 0(另一半從x
或y
到board_size
x
或y
計數到 0zip()
創建一個可迭代的元組集合。這將起作用:
right_up = zip(range(x + 1, board_size), range(y - 1, -1, -1))
right_down = zip(range(x + 1, board_size), range(y + 1, board_size))
left_up = zip(range(x - 1, -1, -1), range(y - 1, -1, -1))
left_down = zip(range(x - 1, -1, -1), range(y + 1, board_size))
for r in (right_up, right_down, left_up, left_down):
for new_x, new_y in r: # add coordinates to move list
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.