# # othello.py # # othello project start 2007/08/01 18:29 # # ABCDEFGH # 1 # 2 # ... # 8 board = [[0, 2, 0, 2, 0, 2, 0, 0], [0, 0, 1, 1, 1, 0, 0, 0], [2, 1, 1, 0, 1, 2, 0, 0], [0, 0, 1, 1, 1, 0, 0, 0], [0, 2, 0, 1, 1, 2, 0, 0], [0, 0, 0, 2, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0]] BLANK = 0 WHITE = 1 BLACK = 2 # # print board # def print_board(board): for y in range(8): for x in range(8): print board[x][y], print print # # set piece # def set_piece(board, x, y, piece): board[x][y] = piece def black_reverse(board, x, y): for c_x in range(x+1, 7): check_point = board[c_x][y] print c_x, check_point, if check_point == BLANK: return if check_point == BLACK: for r_x in range(x+1, c_x): set_piece(board, r_x, y, BLACK) set_piece(board, x, y, BLACK) # set piece return print check_point #if check_point == WHITE: def reverse(board, x, y, PIECE): for c_x in range(x+1, 7): check_point = board[c_x][y] print c_x, check_point if check_point == BLANK: return if check_point == PIECE: for r_x in range(x, c_x): set_piece(board, r_x, y, PIECE) return print check_point def diagonal_reverse(board, x, y, PIECE): c_y = y for c_x in range(x+1, 7): c_y = c_y + 1 if c_y == 8: break check_point = board[c_x][c_y] print c_x, c_y, check_point if check_point == BLANK: return if check_point == PIECE: for r_x in range(x, c_x): for r_y in range(y, c_y): set_piece(board, r_x, r_y, PIECE) return print check_point def rotation_board(board): print "rotation start" print_board(board) for y in range(8): for x in range(8): t_xy = board[x][y] t_yx = board[y][x] board[y][x] = t_xy board[x][y] = t_yx print_board(board) board.reverse() print_board(board) print "rotation end" # for row in board[:] : # print row # row.reverse() # print row print "start othello" print_board(board) rotation_board(board) print_board(board) #set_piece(board, 1, 2, WHITE) #print_board(board) #set_piece(board, 1, 2, BLANK) #print_board(board) #board_copy = board #reverse(board_copy, 2, 3, BLACK) #print_board(board_copy) #diagonal_reverse(board_copy, 2, 3, BLACK) #print_board(board_copy) #rotation_board(board) #print_board(board_copy)