# Egg Hunt Monthly Project # Sample Code for Extensions #1, Extensions #2 and Extensions 3 # Includes an intro and a counter # Includes a button press to start over and # a button press to quit. # Includes a code solution for non-duplicating eggs from codex import * from eggs import * import random import ascii_art egg_list = [egg1, egg2, egg3, egg4, egg5, egg6, egg7, egg8, egg9, egg10] easter_eggs = [surprise1, surprise2,surprise3, surprise4] hides_an_egg = [] def intro(): display.clear() display.print("Welcome to", scale=3, color=YELLOW) display.print("Egg Hunt!", scale=4, color=YELLOW) display.print() display.print("Press A/B/U/D") display.print("A = display egg", color=GREEN) display.print("B = look for hidden", color=CYAN) display.print(" easter egg", color=CYAN) display.print("U = start over", color=PINK) display.print("D = quit program", color=ORANGE) # ---- Main Program ---- # -- select eggs to hide the surprise images while len(hides_an_egg) < len(easter_eggs): egg = random.choice(egg_list) if egg not in hides_an_egg: hides_an_egg.append(egg) intro() count = 0 old_egg = egg_list[0] #-- main loop while True: if buttons.was_pressed(BTN_A): while True: found_egg = random.choice(egg_list) if found_egg != old_egg: old_egg = found_egg break draw_egg = ascii_art.get_images(found_egg) display.draw_image(draw_egg[0], scale=10) if buttons.was_pressed(BTN_B): if len(hides_an_egg) > 0: count = count + 1 if len(hides_an_egg) == 0: display.clear() display.print("All eggs", scale=4) display.print("found!", scale=4) display.print() display.print("It took " + str(count) + " tries.") elif found_egg in hides_an_egg: reveal = random.choice(easter_eggs) reveal_egg = ascii_art.get_images(reveal) display.draw_image(reveal_egg[0], scale=10) easter_eggs.remove(reveal) hides_an_egg.remove(found_egg) if buttons.was_pressed(BTN_U): count = 0 easter_eggs = [surprise1, surprise2,surprise3, surprise4] hides_an_egg = [] for i in range(len(easter_eggs)): egg = random.choice(egg_list) hides_an_egg.append(egg) intro() if buttons.was_pressed(BTN_D): display.clear() break