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)
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)
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))
def main(): menu = Menu()
def initialize_menu(self): self.menu = Menu(WIDTH)