SudaSatoshi

Simon Says (Before Optimization)

Oct 21st, 2021
241
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.95 KB | None | 0 0
  1. import time
  2. import random
  3. import pyfirmata
  4. # Connecting to arduino
  5. if __name__ == '__main__':
  6.     board = pyfirmata.Arduino('COM3')
  7. # Defining a function to make an LED blink
  8. def ledBlink(num):
  9.     board.digital[num].write(1)
  10.     time.sleep(.1)
  11.     board.digital[num].write(0)
  12.     time.sleep(.1)
  13. # Assigning each button's variable to its pin number
  14. button2 = board.digital[2]
  15. button3 = board.digital[3]
  16. button4 = board.digital[4]
  17. button5 = board.digital[5]
  18. # Defining useful variables
  19. previous_button_state = 0
  20. stopper = False
  21. length = 0  
  22. # Start iterator to recieve input data
  23. it = pyfirmata.util.Iterator(board)
  24. it.start()
  25. # Setup buttons for input
  26. button2.mode = pyfirmata.INPUT
  27. button3.mode = pyfirmata.INPUT
  28. button4.mode = pyfirmata.INPUT
  29. button5.mode = pyfirmata.INPUT
  30. print("Enter 'Quit' to end.")    
  31. while stopper == False:
  32.     pattern = []
  33.     levels = input("Please enter the number of levels you wish to play: ")
  34.     time.sleep(3)
  35.     if levels == 'Quit':
  36.         exit()
  37.     else:
  38.         levels = int(levels)
  39.         levels += 1
  40.     for count in range(levels):
  41.         if stopper == True:
  42.                 break
  43.         randomLed = random.randint(10, 13)
  44.         if count != 0:
  45.             pattern = pattern + [randomLed,]
  46.             length += len(pattern)
  47.             patternCheck = []
  48.         print('Pattern: ',pattern)
  49.         print('Checker: ',patternCheck)
  50.         if length != 0:
  51.             print("Level:",length)
  52.             time.sleep(1)
  53.         for i in range(len(pattern)):
  54.             if stopper == True:
  55.                 break
  56.             board.digital[pattern[i]].write(1)
  57.             time.sleep(.5)
  58.             board.digital[pattern[i]].write(0)
  59.             time.sleep(.5)
  60.             print('Pattern: ',pattern)
  61.             print('Checker: ',patternCheck)
  62.         while True:
  63.             stopper1 = None
  64.             cLength = len(pattern)
  65.             time.sleep(0.01)
  66.             button_state = button2.read()
  67.             if button_state != previous_button_state:
  68.                 if button_state == 1:
  69.                     ledBlink(13)
  70.                     patternCheck = patternCheck + [13,]
  71.                     print(patternCheck)
  72.                     for lights in range (cLength):
  73.                         if patternCheck == pattern and len(patternCheck) == len(pattern):
  74.                             stopper1 = True
  75.                     print("Pattern: ",pattern)
  76.                     print("Checker: ",patternCheck)
  77.                     print("Length: ",cLength)
  78.             previous_button_state = button_state
  79.             time.sleep(0.01)
  80.             button_state = button3.read()
  81.             if button_state != previous_button_state:
  82.                 if button_state == 1:
  83.                     ledBlink(12)
  84.                     patternCheck = patternCheck + [12,]
  85.                     print(patternCheck)
  86.                     for lights in range (cLength):
  87.                         if patternCheck == pattern and len(patternCheck) == len(pattern):
  88.                             stopper1 = True
  89.                     print("Pattern: ",pattern)
  90.                     print("Checker: ",patternCheck)
  91.                     print("Length: ",cLength)
  92.             previous_button_state = button_state
  93.             time.sleep(0.01)
  94.             button_state = button4.read()
  95.             if button_state != previous_button_state:
  96.                 if button_state == 1:
  97.                     ledBlink(11)
  98.                     patternCheck = patternCheck + [11,]
  99.                     print(patternCheck)
  100.                     for lights in range (cLength):
  101.                         if patternCheck == pattern and len(patternCheck) == len(pattern):
  102.                             stopper1 = True
  103.                     print("Pattern: ",pattern)
  104.                     print("Checker: ",patternCheck)
  105.                     print("Length: ",cLength)
  106.             previous_button_state = button_state
  107.             time.sleep(0.01)
  108.             button_state = button5.read()
  109.             if button_state != previous_button_state:
  110.                 if button_state == 1:
  111.                     ledBlink(10)
  112.                     patternCheck = patternCheck + [10,]
  113.                     print(patternCheck)
  114.                     for lights in range (cLength):
  115.                         if patternCheck == pattern and len(patternCheck) == len(pattern):
  116.                             stopper1 = True
  117.                     print("Pattern: ",pattern)
  118.                     print("Checker: ",patternCheck)
  119.                     print("Length: ",cLength)
  120.             if pattern == patternCheck:
  121.                 break
  122.             elif stopper1 == True:
  123.                 break
  124.             elif len(pattern) == len(patternCheck):
  125.                 if pattern != patternCheck:
  126.                     stopper = True
  127.                     break  
  128.             previous_button_state = button_state          
  129.     if stopper == True:
  130.         print("Game Over. :(")
  131.     else:
  132.         print("Good Job!")
  133.  
  134.  
  135.  
Advertisement
Add Comment
Please, Sign In to add comment