#
# 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)
