在2D列表游戏板上寻找有效空间

时间:2019-04-18 22:49:50

标签: python-3.x

我正在尝试创建一个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

输出仅适用于第一个有效的动作,如果连续多于两个棋子,则不会说明这一点,并且会给出与对手棋子相邻的空格,而不是可移动的棋子。

0 个答案:

没有答案