コード例 #1
0
ファイル: a3.py プロジェクト: uqzhichen/LoloGame
    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()
コード例 #2
0
ファイル: a3.py プロジェクト: uqzhichen/LoloGame
 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()
コード例 #3
0
ファイル: a3.py プロジェクト: uqzhichen/LoloGame
    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)
コード例 #4
0
ファイル: a3.py プロジェクト: uqzhichen/LoloGame
    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)
コード例 #5
0
 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)
コード例 #6
0
ファイル: game.py プロジェクト: Robjuan/hangman
    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()
コード例 #7
0
ファイル: a3.py プロジェクト: uqzhichen/LoloGame
    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)
コード例 #8
0
ファイル: a3.py プロジェクト: waynezhao12/LoloGame
 def save_record(self):
     """Save game record."""
     record = HighScoreManager()
     record.record(self._game.get_score(), self._game, self._player_name)