gPiOBox icon

Further Project - Copy Me - Rpi

gPiOBox | PRO | 11/29/17 11:01:02 AM UTC | 0 ⭐ | 718 👁️ | Never ⏰ | []
Python |

4.27 KB

|

None

|

0 👍

/

0 👎

"""
filename:gpio_rpi_copyme.py
Further Project - Copy Me
written by Trevor Olsson
© GPIO Support Services LTD MMXVII
More info here: https://www.gpio.co.uk/copy-me/
"""
from gpiozero import LED, Button
import time
from random import randint
import os
import sys
import serial
 
count = 0
Shopping = ""
Btn = 0
Bool = False
Clickeyness = 0.1
score = 0
Round = 0
 
filename = "Scores.txt"
 
LED1 = LED(17)
 
LED2 = LED(18)
LED3 = LED(27)
LED4 = LED(22)
 
Btn1 = Button(4,pull_up=False)
Btn2 = Button(14,pull_up=False)
Btn3 = Button(15,pull_up=False)
Btn4 = Button(25,pull_up=False)
 
serPort = serial.Serial("/dev/ttyACM0", 115200, timeout=1) # open serial port
serPort.write(b"     ")
time.sleep(1)
serPort.write(b"-XXXX")
time.sleep(1)
serPort.write(b"X-XXX")
time.sleep(1)
serPort.write(b"XX-  ")
time.sleep(1)
serPort.write(b"XXX- ")
time.sleep(1)
serPort.write(b"XXXX-")
time.sleep(1)
serPort.write(b"start")
time.sleep(1)
serPort.write(b"     ")
 
def exitMe():
    serPort.close()
    sys.exit()
 
while count < 143 or Bool == False:
    RandomNum = randint(1, 4)
    Shopping = Shopping + str(RandomNum)
        
    count = count + 1
    
    for letter in Shopping:
        if letter == "1":
            LED1.on()
            time.sleep(1)
            LED1.off()
            time.sleep(0.1)
        elif letter == "2":
            LED2.on()
            time.sleep(1)
            LED2.off()
            time.sleep(0.1)
        elif letter == "3":
            LED3.on()
            time.sleep(1)
            LED3.off()
            time.sleep(0.1)
        elif letter == "4":
            LED4.on()
            time.sleep(1)
            LED4.off()
            time.sleep(0.1)
        else:
            LED1.on()
            LED2.on()
            LED3.on()
            LED4.on()
            time.sleep(1)
            LED1.off()
            LED2.off()
            LED3.off()
            LED4.off()
    time.sleep(Clickeyness)
    for letter in Shopping:
        hello = True
        print(letter)
        while hello:
            ##time.sleep(Clickeyness)
            
            if Btn1.is_pressed:
                Btn = 1
                hello = False
                while Btn1.is_pressed:
                    time.sleep(0.1)
            elif Btn2.is_pressed:
                Btn = 2
                hello = False
                while Btn2.is_pressed:
                    time.sleep(0.1)
            elif Btn3.is_pressed:
                Btn = 3
                hello = False
                while Btn3.is_pressed:
                    time.sleep(0.1)
            elif Btn4.is_pressed:
                Btn = 4
                hello = False
                while Btn4.is_pressed:
                    time.sleep(0.1)
          
 
#        print("if: "+str(Btn))
#        print("if: "+str(letter))
        if Btn != int(letter):
            print("You Loose")
            print(Btn, ":", letter)
            Bool = True
            print("Your score is " + str(score) + "!!!!")
            
            o = 0
            data = [" "," "," "," "," "]
            out = ""
            serPort.write(b"-    ")
            time.sleep(1)
            serPort.write(b"X-   ")
            time.sleep(1)
            serPort.write(b"XX-  ")
            time.sleep(1)
            serPort.write(b"XXX- ")
            time.sleep(1)
            serPort.write(b"XXXX-")
            time.sleep(1)
            serPort.write(b"loser")
            for char in str(score): 
                data[o] = str(char)
                print("Char: " + str(char) + " Count: " + str(o))
                o = o+1
            for cha in data:
                out = out+cha
            serPort.write(str.encode(str(out)))
            Btn = 0
            
            exitMe()
        else:
            count = count + 1
            print("Next Round")
#           score = score + count^2
            print("Your score is " + str(score) + "!!!!")
            
            Btn = 0
    Round = Round + 1
    score = score + Round ** 2
    o = 0
    data = [" "," "," "," "," "]
    out = ""
    for char in str(score):
        data[o] = str(char)
        o = o+1
    for cha in data:
        out = out+cha
    serPort.write(str.encode(str(out)))

Comments