Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from guizero import App, Box, Picture, PushButton
- import os
- from random import randint
- from random import shuffle
- # set the path to the emoji folder on your computer
- emojis_dir = "emojis"
- # create a list of the locations of the emoji images
- emojis = [os.path.join(emojis_dir, f) for f in os.listdir(emojis_dir) if os.path.isfile(os.path.join(emojis_dir, f))]
- # shuffle the emojis
- shuffle(emojis)
- app = App("Emoji Match Game")
- game_box = Box(app, border=True)
- pictures_box = Box(game_box, layout="grid", border=True)
- buttons_box = Box(game_box, layout="grid", border=True)
- # create a empty lists to which pictures and buttons will be added
- # we use the property visible to distinguish between set and not
- # set image properties
- # visible False: image not yet set
- pictures = []
- buttons = []
- for x in range(0, 3):
- for y in range(0, 3):
- # put the pictures into the list
- picture = Picture(pictures_box, grid=[x,y])
- picture.visible = False
- pictures.append(picture)
- # put the buttons into the list
- button = PushButton(buttons_box, grid=[x, y])
- button.visible = False
- buttons.append(button)
- # select the matching emoji
- matched_emoji = emojis.pop()
- # select a random picture index for this emoji
- idx_picture = randint(0,8)
- # select a random button index for this emoji
- idx_button = randint(0,8)
- # set the chosen picture's image to the matched_emoji
- pictures[idx_picture].image = matched_emoji
- pictures[idx_picture].visible = True
- # set the chosen button's image to the matched_emoji
- buttons[idx_button].image = matched_emoji
- buttons[idx_button].visible = True
- # set all image properties to an emoji
- # if the related visible property is False
- for idx in range(0, len(pictures)):
- if not pictures[idx].visible:
- pictures[idx].image = emojis.pop()
- pictures[idx].visible = True
- if not buttons[idx].visible:
- buttons[idx].image = emojis.pop()
- buttons[idx].visible = True
- # now all image properties are set and we can display the GUI
- app.display()
Advertisement
Add Comment
Please, Sign In to add comment