def load_game(self): '''load a recent saved game for selected game mode''' loadgame = self._lologame self._master.destroy() root = tk.Tk() if self._game.get_name()== 'Regular': self._record_gamename = 'regular' elif self._game.get_name()=='Lucky 7': self._record_gamename = 'lucky7' elif self._game.get_name()=='Make 13': self._record_gamename = 'Make 13' elif self._game.get_name() == 'Unlimited': self._record_gamename = 'unlimited' saved_games_data = HighScoreManager(file='savedgame.json', gamemode=self._record_gamename) #Since the data is saved in file in sequence by time, #the last one should be the most rently played. #If no saved in the file, except an error. try: saved_game_data = saved_games_data.get_data()[-1] saved_game = self._game.deserialize(saved_game_data['grid']) app=LoloApp(root,saved_game,is_savedgame_score=(True, saved_game_data['score'])) except IndexError: messagebox.showerror(title='No Saved Game', message=('You have not saved any game')) root.destroy()
def exit_game(self): """Handles the game ending which is clicked by user.""" messagebox.showinfo(title='Game Over', message='You scored {}!'.format(self._game.get_score())) scoremanager = HighScoreManager(gamemode=self._record_gamename) scoremanager.record(self._game.get_score(), self._game,name=self._name) self._master.destroy()
def save_game(self): """Save game data in json file so that can be replayed again.""" messagebox.showinfo(title='Game Saved', message='You saved your game with score {}!'.format( self._game.get_score())) savemanager = HighScoreManager(file="savedgame.json", gamemode=self._record_gamename) savemanager.record(self._game.get_score(), self._game,name=self._name)
def game_over(self): """Handles the game ending with no tile can be avtivated.""" #show users a messagebox that game ends messagebox.showinfo(title='Game Over', message='You scored {}!'.format(self._game.get_score())) #save score and player's name into json file scoremanager = HighScoreManager(gamemode=self._record_gamename) scoremanager.record(self._game.get_score(), self._game,name=self._name)
def __init__(self, master): self._master = master self._master.title("High Scores :: Lolo") self._frame = tk.Frame(self._master) self._frame.pack(side=tk.TOP) self._text = tk.Text(self._frame) self._text.pack(side=tk.TOP, expand=True, fill=tk.BOTH) self.high_score_manager = HighScoreManager(file="highscores.json", gamemode='regular', auto_save=True, top_scores=10) fd = self.high_score_manager.get_sorted_data() self._text.insert(tk.INSERT, fd)
def setup(self): pygame.init() self.set_man = SettingManager() self.hscore_man = HighScoreManager() self.fullscreen = self.set_man.setdict["fullscreen"] if self.fullscreen: self.screen = pygame.display.set_mode(self.resolution, pygame.FULLSCREEN) else: self.screen = pygame.display.set_mode(self.resolution) self.scene_man = SceneManager(self.screen) self.clock = pygame.time.Clock()
def __init__(self,master,game, grid_view=None): """ Constructor Parameters: master (tk.Tk|tk.Frame): The parent widget. game (model.AbstractGame): The game to play. Defaults to a game_regular.RegularGame. grid_view (view.GridView): The view to use for the game. Optional. """ master.title('Leaderboard') self._master = master #look for game data from file according to game's name if game.get_name()== 'Regular': highscore_mode = 'regular' elif game.get_name()=='Lucky 7': highscore_mode = 'lucky7' elif game.get_name()=='Make 13': highscore_mode = 'Make 13' elif game.get_name() == 'Unlimited': highscore_mode = 'unlimited' self._highscore = HighScoreManager(gamemode=highscore_mode) highest = self._highscore.get_sorted_data()[0] self._bestplayer = tk.Label(master, text='Best Player: {} with {} points!'.format(highest['name'], highest['score'])) self._bestplayer.pack() self._grid_list = highest['grid'] if game is None: game = RegularGame(types=3) self._game = game grid_view = view.GridView(master, self._game.grid.size()) self._grid_view = grid_view self._grid_view.pack() highscore_game = self._game.deserialize(self._grid_list) self._grid_view.draw(highscore_game.grid) #leader board displaying a number of high scores self._title= tk.Label(master,text='Leaderboard') self._title.pack() self._leaderboard = tk.Frame(master) self._leaderboard.pack(fill=tk.BOTH) self._leaderboard_name = tk.Frame(self._leaderboard) self._leaderboard_name.pack(side=tk.LEFT) self._leaderboard_score = tk.Frame(self._leaderboard) self._leaderboard_score.pack(side=tk.RIGHT) for name in self._highscore.get_sorted_data(): name = tk.Label(self._leaderboard_name,text=name['name']) name.pack(anchor=tk.NW) for score in self._highscore.get_sorted_data(): score = tk.Label(self._leaderboard_score,text=score['score']) score.pack(anchor=tk.NE)
def save_record(self): """Save game record.""" record = HighScoreManager() record.record(self._game.get_score(), self._game, self._player_name)