예제 #1
0
class Game:
    DEFAULT_QUESTION_SESSION = 10
    __HELP_MESSAGE = '''
    start - start the game
    exit - quit the game
    highscores - display highscores
    help - display this message'''

    def __init__(self):
        self.manager = DatabaseManager()
        self.user = None

        self.current_question = 1
        self.question_count = self.manager.get_question_count()

    def show_highscores(self):
        users = self.manager.get_highscores()
        for user in users:
            return '{} - {}'.format(user.name, user.score)

    def add_more_questions(self):
        for i in range(self.DEFAULT_QUESTION_SESSION):
            self.manager.add_random_question()

        self.question_count = self.manager.get_question_count()

    def prompt_user(self):
        self.user = UI.get_input('Enter Username: '******'Loading ..')
        self.add_more_questions()

        ques = None
        score = 0

        while self.question_count > 0:
            ques = self.manager.get_question(self.current_question)
            self.current_question += 1

            UI.display(ques.question)
            answer = UI.get_input('Answer: ')

            try:
                if ques.answer == int(answer):
                    UI.display('Correct!\n')
                    score += 2
                else:
                    UI.display('Wrong!\n')
                    break

            except ValueError:
                UI.display('Please enter a valid answer.')
                self.current_question -= 1
                continue

            if self.question_count == 1:
                self.add_more_questions()

            self.question_count -= 1

        self.manager.set_score(self.user, score)

    def start(self):
        while True:
            command = UI.get_input("> ")
            if command == 'start':
                self.ask()
            elif command == 'highscores':
                UI.display(self.show_highscores())
            elif command == 'help':
                UI.display(self.__HELP_MESSAGE)
            elif command == 'exit':
                return
예제 #2
0
class Game:
    DEFAULT_QUESTION_SESSION = 10
    __HELP_MESSAGE = '''
    start - start the game
    exit - quit the game
    highscores - display highscores
    help - display this message'''

    def __init__(self):
        self.manager = DatabaseManager()
        self.user = None

        self.current_question = 1
        self.question_count = self.manager.get_question_count()

    def show_highscores(self):
        users = self.manager.get_highscores()
        for user in users:
            return '{} - {}'.format(user.name, user.score)

    def add_more_questions(self):
        for i in range(self.DEFAULT_QUESTION_SESSION):
            self.manager.add_random_question()

        self.question_count = self.manager.get_question_count()

    def prompt_user(self):
        self.user = UI.get_input('Enter Username: '******'Loading ..')
        self.add_more_questions()

        ques = None
        score = 0

        while self.question_count > 0:
            ques = self.manager.get_question(self.current_question)
            self.current_question += 1

            UI.display(ques.question)
            answer = UI.get_input('Answer: ')

            try:
                if ques.answer == int(answer):
                    UI.display('Correct!\n')
                    score += 2
                else:
                    UI.display('Wrong!\n')
                    break

            except ValueError:
                UI.display('Please enter a valid answer.')
                self.current_question -= 1
                continue

            if self.question_count == 1:
                self.add_more_questions()

            self.question_count -= 1

        self.manager.set_score(self.user, score)

    def start(self):
        while True:
            command = UI.get_input("> ")
            if command == 'start':
                self.ask()
            elif command == 'highscores':
                UI.display(self.show_highscores())
            elif command == 'help':
                UI.display(self.__HELP_MESSAGE)
            elif command == 'exit':
                return