15-110 PA10 Sample Solution - Spring 2018 1. def new_board(): board = [] for i in range(6): board.append([0] * 7) return board 2. def display_board(c, board): for row in range(6): for column in range(7): color = ["white", "red", "yellow"] c.create_oval(column*100+5, row*100+5, (column+1)*100-5, (row+1)*100-5, fill=color[board[row][column]], outline="green") return None 3. def add_piece(board, player, column): for row in range(5, -1, -1): if board[row][column] == 0: board[row][column] = player return row return None 4. def check_win_vertical(board, row, column): player = board[row][column] count = 1 r = row + 1 while r <= 5 and board[r][column] == player: count = count + 1 r = r + 1 return count == 4 5. def check_win_horizontal(board, row, column): player = board[row][column] count = 1 c = column + 1 while c <= 6 and board[row][c] == player: count = count + 1 c = c + 1 c = column - 1 while c >= 0 and board[row][c] == player: count = count + 1 c = c - 1 return count >= 4 6. def check_win_diagonal1(board, row, column): player = board[row][column] count = 1 c = column - 1 r = row - 1 while c >= 0 and r >= 0 and board[r][c] == player: count = count + 1 c = c - 1 r = r - 1 c = column + 1 r = row + 1 while c <= 6 and r <= 5 and board[r][c] == player: count = count + 1 c = c + 1 r = r + 1 return count >= 4 def check_win_diagonal2(board, row, column): player = board[row][column] count = 1 c = column - 1 r = row + 1 while c >= 0 and r <= 5 and board[r][c] == player: count = count + 1 c = c - 1 r = r + 1 c = column + 1 r = row - 1 while c <= 6 and r >= 0 and board[r][c] == player: count = count + 1 c = c + 1 r = r - 1 return count >= 4