class GameController: def __init__(self): self.message = '' self.game_model = GameModel() self.winner_check = 0 def start_game(self): self.get_updated_vars() return { 'previous_player':self.previous_player, 'current_player': self.current_player, 'current_game_state':self.current_game_state, 'message':self.message, 'available_columns':self.available_columns } def player_move(self,move): self.col = move self.row = self.game_model.get_column_capacity(self.col) self.update_vars() self.get_updated_vars() if self.winner_check: is_a_winning_move = pattern_finder( self.game_model.get_current_game_state(), self.row,self.col,self.game_model.get_sequence_length() ) if is_a_winning_move: self.message = self.game_model.get_winning_message() elif self.game_model.is_game_over(): self.message = self.game_model.get_tie_message() return { 'previous_player':self.previous_player, 'current_player': self.current_player, 'row':self.row, 'col':self.col, 'message':self.message, 'available_columns':self.available_columns, 'number_of_moves':self.number_of_moves } def update_vars(self): self.game_model.update_game_state(self.row,self.col) if self.game_model.get_column_capacity(self.col) <= 0: self.game_model.update_available_colums(self.col) self.game_model.update_column_capacity(self.col) self.game_model.update_game_state(self.row,self.col) self.game_model.update_number_of_moves() self.game_model.update_current_player() self.check_for_winner() def get_updated_vars(self): self.previous_player = self.game_model.get_previous_player() self.current_player = self.game_model.get_current_player() self.current_game_state = self.game_model.get_current_game_state() self.number_of_moves = self.game_model.get_number_of_moves() self.available_columns = self.game_model.get_available_columns() def check_for_winner(self): if self.game_model.get_number_of_moves() >= (self.game_model.get_number_of_players()\ *self.game_model.get_sequence_length()) - self.game_model.get_number_of_players() +1 : self.winner_check = 1