我正在尝试创建一个fxn,该fxn将遍历2D列表并检查othello游戏的有效空间。仅当空格在水平或垂直方向上与对手的游戏棋盘相邻时,该空格才有效,相邻的棋子必须在一条或多于一条的直线上。必须放置一个有效的棋子,才能将其他有效棋子夹在现有棋子和新棋子之间。
PLAYER1 = "X"
PLAYER2 = "O"
BOARD_SYM = "_"
row = 0
col = 0
while row < len(board):
col = 0
while col < len(board[row]):
if board[row][col] == PLAYER1:
count = 0
while count < len(board):
if board[col][count] == PLAYER2:
### GETS SPACES ABOVE/BELOW
if board[col-1][count] == BOARD_SYM:
print(col-1,count)
if board[col+1][count] == BOARD_SYM:
print(col+1,count)
count +=1
count2 = 0
while count2 < len(board):
if board[count2][row] == PLAYER2:
if board[row][count2-1] == BOARD_SYM:
print( row,count2-1)
if board[row][count2+1] == BOARD_SYM:
print( row, count2+1)
count2 +=1
col +=1
row +=1
output:
_|0|1|2|3|4|5|6|7
0|_|_|_|_|_|_|_|_
1|_|_|_|_|_|_|_|_
2|_|_|_|O|_|_|_|_
3|_|_|_|O|X|X|_|_
4|_|_|_|O|X|_|_|_
5|_|_|_|_|_|_|_|_
6|_|_|_|_|_|_|_|_
7|_|_|_|_|_|_|_|_
VALID MOVES FOR PLAYER 1
5 3
3 1
3 2
3 1
3 2
5 3
expected :
_|0|1|2|3|4|5|6|7
0|_|_|_|_|_|_|_|_
1|_|_|_|_|_|_|_|_
2|_|_|_|O|_|_|_|_
3|_|_|_|O|X|X|_|_
4|_|_|_|O|X|_|_|_
5|_|_|_|_|_|_|_|_
6|_|_|_|_|_|_|_|_
7|_|_|_|_|_|_|_|_
VALID MOVES FOR PLAYER 1
3 2
4 2
输出仅适用于第一个有效的动作,如果连续多于两个棋子,则不会说明这一点,并且会给出与对手棋子相邻的空格,而不是可移动的棋子。