M5Stack Faces Joystick Simon Game

The classic '70s and '80s Simon game revived on the M5Stack and created fully in UIflow.

BeginnerWork in progress1 hour830

Things used in this project

Hardware components

 M5Stack M5 Faces Pocket Computer with Keyboard/PyGamer/Calculator
×1

Code

M5stack Faces Simon Game Code

MicroPython
The classic simon game on M5Stack
```from m5stack import *
from m5ui import *
from uiflow import *
from emoji import Emoji
import face

setScreenColor(0x222222)

emoji0 = Emoji(7, 7, 15, 9)
faces_joystick = face.get(face.JOYSTICK)
label1 = M5TextBox(85, 104, "Text", lcd.FONT_DejaVu24,0xFFFFFF, rotate=0)
title1 = M5Title(title="Title", x=3 , fgcolor=0xFFFFFF, bgcolor=0x0000FF)

import random

directions = None
playing = None
sequence = None
input2 = None
i = None

directions = ['left', 'up', 'down', 'right']
playing = False
sequence = []
input2 = []
while True:
emoji0.show_normal(3)
title1.show()
while playing == False:
wait(1)
sequence.append(directions[int(random.randint(0, 3) - 1)])
wait_ms(100)
for i in sequence:
if i == 'left':
emoji0.show_map([[0,0,0,1,0,0,0],[0,0,1,0,0,0,0],[0,1,0,0,0,0,0],[1,1,1,1,1,1,1],[0,1,0,0,0,0,0],[0,0,1,0,0,0,0],[0,0,0,1,0,0,0]], 0xFF0000)
elif i == 'up':
emoji0.show_map([[0,0,0,1,0,0,0],[0,0,1,1,1,0,0],[0,1,0,1,0,1,0],[1,0,0,1,0,0,1],[0,0,0,1,0,0,0],[0,0,0,1,0,0,0],[0,0,0,1,0,0,0]], 0xFF0000)
elif i == 'down':
emoji0.show_map([[0,0,0,1,0,0,0],[0,0,0,1,0,0,0],[0,0,0,1,0,0,0],[1,0,0,1,0,0,1],[0,1,0,1,0,1,0],[0,0,1,1,1,0,0],[0,0,0,1,0,0,0]], 0xFF0000)
else:
emoji0.show_map([[0,0,0,1,0,0,0],[0,0,0,0,1,0,0],[0,0,0,0,0,1,0],[1,1,1,1,1,1,1],[0,0,0,0,0,1,0],[0,0,0,0,1,0,0],[0,0,0,1,0,0,0]], 0xFF0000)
wait_ms(500)
emoji0.show_map([[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]], 0xFF0000)
wait_ms(100)
playing = True
while playing == True:
if (faces_joystick.X) < 300:
wait_ms(200)
input2.append('left')
emoji0.show_map([[0,0,0,1,0,0,0],[0,0,1,0,0,0,0],[0,1,0,0,0,0,0],[1,1,1,1,1,1,1],[0,1,0,0,0,0,0],[0,0,1,0,0,0,0],[0,0,0,1,0,0,0]], 0xFF0000)
elif (faces_joystick.X) > 750:
wait_ms(200)
input2.append('right')
emoji0.show_map([[0,0,0,1,0,0,0],[0,0,0,0,1,0,0],[0,0,0,0,0,1,0],[1,1,1,1,1,1,1],[0,0,0,0,0,1,0],[0,0,0,0,1,0,0],[0,0,0,1,0,0,0]], 0xFF0000)
elif (faces_joystick.Y) > 670:
wait_ms(200)
input2.append('up')
emoji0.show_map([[0,0,0,1,0,0,0],[0,0,1,1,1,0,0],[0,1,0,1,0,1,0],[1,0,0,1,0,0,1],[0,0,0,1,0,0,0],[0,0,0,1,0,0,0],[0,0,0,1,0,0,0]], 0xFF0000)
elif (faces_joystick.Y) < 370:
wait_ms(200)
input2.append('down')
emoji0.show_map([[0,0,0,1,0,0,0],[0,0,0,1,0,0,0],[0,0,0,1,0,0,0],[1,0,0,1,0,0,1],[0,1,0,1,0,1,0],[0,0,1,1,1,0,0],[0,0,0,1,0,0,0]], 0xFF0000)
elif input2 == sequence:
speaker.sing(523, 1)
title1.setTitle('You Win')
wait_ms(500)
input2 = []
playing = False
elif input2 != sequence and len(input2) >= len(sequence):
lcd.clear()
speaker.sing(220, 1)
label1.setText('Game Over')
wait(1)
input2 = []
sequence = []
playing = False
wait_ms(2)
```

Credits

lukasmaximus89

38 projects • 25 followers
I'm Luke from Manchester, UK. I've been living in shenzhen for 6 years. I do 3D design, Basic Electronics, Casting and other cool stuff.