示例#1
0
class HomeScene(Scene):
    def __init__(self, game):
        Scene.__init__(self, game)
        self.initialize_bg(game.screen)
        self.initialize_menu()

    def initialize_bg(self, screen):
        self.floor = Floor(MAP_SPEED)
        screen.fill((0, 153, 204))

    def initialize_menu(self):
        self.menu = Menu(WIDTH)

    def on_update(self, time):
        self.floor.refresh()
        self.menu.next()

    def on_event(self, event):
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_RETURN:
                self.game.change_scene(PlayScene(self.game, IaFlappyEngine()))

    def on_draw(self, screen):
        screen.blit(self.floor.image, self.floor.rect)
        screen.blit(self.menu, self.menu.get_rect())
    def test_insert_menu(self):
        self.menu_repository.insert_menu(
            Menu(self.meals, date.today(), self.test_user1))
        self.menu_repository.insert_menu(
            Menu(self.meals, date.today(), self.test_user2))

        menu_1 = self.menu_repository.find_menu(self.test_user1)
        menu_2 = self.menu_repository.find_menu(self.test_user2)

        self.assertEqual(len(menu_1.meals), 7)
        self.assertEqual(len(menu_2.meals), 7)
        self.assertEqual(menu_1.user.id, self.test_user1.id)
        self.assertEqual(menu_2.user.id, self.test_user2.id)
    def test_empty_and_init(self):
        self.assertEqual(self.menu_repository.find_menu(self.test_user1), -1)

        self.menu_repository.insert_menu(
            Menu(self.meals, date.today(), self.test_user1))
        self.menu_repository.insert_menu(
            Menu(self.meals, date.today(), self.test_user2))

        self.assertEqual(
            len(self.menu_repository.i_o.read("SELECT * FROM menus")), 14)

        self.menu_repository.initialize_menus(self.test_user2)
        self.assertEqual(
            len(self.menu_repository.i_o.read("SELECT * FROM menus")), 7)
示例#4
0
    def generate(self):
        """Metodi, joka generoi ruokalistan.

        Vaatimaton generointi-algoritmi, joka arpoo ruokalajeista viikon ruokalistan
        satunnaiseen järjestykseen, ilman duplikaatteja.

        Tarvitsee vähintään seitsemän eri ruokalajia voidakseen generoida listan.

        Returns:
            Palauttaa -1 jos tietokannassa ei ole tarpeeksi ruokalajeja, tai onnistuessaan
            Menu-olion, joka sisältää listan ruokalajit Meal-olioina.
        """

        generated = []
        source = self.repository.find_all_meals(self.user)

        if len(source) < 7:
            return -1

        while len(generated) < 7:
            item = source[random.randint(0, len(source)-1)]

            if item not in generated:
                generated.append(item)

        random.shuffle(generated)

        return Menu(generated, date.today(), self.user)
示例#5
0
    def find_menu(self, user):
        """Etsii käyttäjään liitetyn ruokalistan.

        Tietokannasta etsitään annettuun käyttäjään liittyvä ruokalista, joka palautetaan
        mikäli sellainen löytyy. Jos löytyy, noudetaan ruokalajien-tietokannasta oikeat
        ruokalaji-ilmentymät, jotka liitetään ruokalista-ilmentymään.

        Args:
            user: käyttäjä-ilmentymä.

        Returns:
            Palauttaa ruokalistan löytyessä ruokalistan ilmentymän, tai muussa tapauksessa
            negatiivisen kokonaisluvun -1.
        """

        menu = self.i_o.read("SELECT * FROM menus WHERE userID = ?", [user.id])

        if len(menu) == 0:
            return -1

        date = menu[0]['date']
        meals = [
            self.meal_repo.find_single_meal(int(meal['mealID']), user)
            for meal in menu
        ]

        return Menu(meals, date, user)
    def test_find_menu(self):
        self.menu_repository.insert_menu(
            Menu(self.meals, date.today(), self.test_user1))

        menu = self.menu_repository.find_menu(self.test_user1)

        self.assertIsInstance(menu, Menu)
        self.assertIsInstance(menu.user, User)
        self.assertIsInstance(menu.meals, list)
        self.assertIsInstance(menu.meals[0], Meal)
        self.assertIsInstance(menu.meals[0].ingredients[0], Ingredient)
        self.assertEqual(len(menu.meals[0].ingredients),
                         len(self.meals[0].ingredients))
示例#7
0
def main():
    menu = Menu()
示例#8
0
 def initialize_menu(self):
     self.menu = Menu(WIDTH)