class User: ''' ''' def __init__(self): self.minesweeper_board = MinesweeperBoard(5,5) self.moves = [] self.current_move = {} self.is_board_completed = False def get_move(self): move = raw_input() try: option, position = self.parse_input(move) except Exception as e: print e.message self.get_move() self.current_move['option']=option self.current_move['position']=position # import pdb;pdb.set_trace() def move(self): if self.current_move['option'] == 'o': result = self.minesweeper_board.open(self.current_move['position'][0], self.current_move['position'][1]) if not result: self.minesweeper_board.print_board() raise Exception('Oops, you stepped on a mine! Game over!') elif self.current_move['option'] == 'f': self.minesweeper_board.flag(self.current_move['position'][0], self.current_move['position'][1]) self.moves.append(self.current_move) self.current_move = {} self.is_board_completed = self.minesweeper_board.is_game_over() def parse_input(self, move): #To use regular expressions if (len(move) != 6) or (move[0] not in ['o', 'f']) or (move[1] != '(') or (move[5] != ')'): raise Exception('Please enter valid input') position = (int(move[2]), int(move[4])) # if not self.minesweeper_board.is_valid_position(position[0], position[1]): # raise Exception('Position not found in board') return move[0] , position def play(self): try: print self.minesweeper_board.mine_position while True: self.minesweeper_board.print_board() self.get_move() self.move() if self.is_board_completed: break self.minesweeper_board.print_board() print 'Wow you cleared the minefield! Game over!' except Exception as e: print e.message