Hindernis Pro
Erweiterung Hindernis mit Tastatur für den Schwierigkeitsgrad und RFID-Modul für den Spielstart.
Bewege die Maus über die blauen Zeilennummern und erhalte mehr Informationen.
1 | import sys |
2 | sys.path.append('/home/pi/raspbotics/Pythonboard_Module/RFID') |
3 | sys.path.append('/home/pi/raspbotics/Pythonboard_Module/LED_Matrix') |
4 | sys.path.append('/home/pi/raspbotics/Pythonboard_Module') |
5 | from RPi import GPIO |
6 | GPIO.setmode(GPIO.BCM) |
7 | import time |
8 | import random |
9 | from RFID import * |
10 | from Tastatur import * |
11 | import LEDMatrix |
12 | from LEDMatrix import * |
13 | |
14 | LEDMatrix.init() |
15 | LEDMatrix.brightness(15) |
16 | LEDMatrix.richtung = 0 |
17 | |
18 | Joy_right = 23 |
19 | Joy_left = 4 |
20 | LEDrot = 17 |
21 | |
22 | GPIO.setup(Joy_right,GPIO.IN,pull_up_down=GPIO.PUD_DOWN) |
23 | GPIO.setup(Joy_left,GPIO.IN,pull_up_down=GPIO.PUD_DOWN) |
24 | GPIO.setup(LEDrot,GPIO.OUT) |
25 | |
26 | def interrupt_right(channel): |
27 | global platte |
28 | Screen[7-fehler][platte] = 0 |
29 | Screen[7-fehler][platte+1] = 0 |
30 | Screen[7-fehler][platte+2] = 0 |
31 | platte = (platte+1)%6 |
32 | Screen[7-fehler][platte] = 1 |
33 | Screen[7-fehler][platte+1] = 1 |
34 | Screen[7-fehler][platte+2] = 1 |
35 | LEDMatrix.Display(Screen) |
36 | |
37 | def interrupt_left(channel): |
38 | global platte |
39 | Screen[7-fehler][platte] = 0 |
40 | Screen[7-fehler][platte+1] = 0 |
41 | Screen[7-fehler][platte+2] = 0 |
42 | platte = (platte-1)%6 |
43 | Screen[7-fehler][platte] = 1 |
44 | Screen[7-fehler][platte+1] = 1 |
45 | Screen[7-fehler][platte+2] = 1 |
46 | LEDMatrix.Display(Screen) |
47 | |
48 | GPIO.add_event_detect(Joy_right,GPIO.RISING,callback=interrupt_right,bouncetime=200) |
49 | GPIO.add_event_detect(Joy_left,GPIO.RISING,callback=interrupt_left,bouncetime=200) |
50 | |
51 | Screen = [[0,0,0,0,0,0,0,0], |
52 | [0,0,0,0,0,0,0,0], |
53 | [0,0,0,0,0,0,0,0], |
54 | [0,0,0,0,0,0,0,0], |
55 | [0,0,0,0,0,0,0,0], |
56 | [0,0,0,0,0,0,0,0], |
57 | [0,0,0,0,0,0,0,0], |
58 | [0,0,0,0,0,0,0,0]] |
59 | |
60 | platte = 3 |
61 | zufall = 0 |
62 | fehler = 0 |
63 | ID_Karte = 0 |
64 | ID_erlaubt = 2005008 |
65 | tempo = 0.5 |
66 | temp_taste = "" |
61 | Screen[7][platte]=1 |
62 | Screen[7][platte+1]=1 |
63 | Screen[7][platte+2]=1 |
64 | LEDMatrix.Display(Screen) |
65 | |
66 | while(ID_Karte != ID_erlaubt): |
67 | temp = RFID() |
68 | if(temp != None): |
69 | print temp[0] |
70 | ID_Karte = temp[0] |
71 | |
72 | print "Gib einen Schwierigkeitsgrad von 1 bis 3 an:" |
73 | while(temp_taste == ""): |
74 | gesetzt = 0 |
75 | temp_taste = Tastatur() |
76 | if(temp_taste == 1): |
77 | tempo = 0.5 |
78 | elif(temp_taste == 2): |
79 | tempo = 0.4 |
80 | elif(temp_taste == 3): |
81 | tempo = 0.3 |
82 | else: |
83 | if((gesetzt == 0) and (temp_taste != "")): |
84 | print "Bitte eine Zahl von 1 bis 3" |
85 | gesetzt = 1 |
86 | temp_taste = "" |
87 | |
88 | GPIO.output(LEDrot,0) |
89 | |
90 | try: |
91 | while 1: |
92 | zufall = random.randint(0,7) |
93 | for i in range(8-fehler): |
94 | Screen[i][zufall]=1 |
95 | LEDMatrix.Display(Screen) |
96 | time.sleep(tempo) |
97 | Screen[i][zufall]=0 |
98 | if(i==7-fehler): |
99 | if((zufall==platte)or(zufall==platte+1)or(zufall==platte+2)): |
100 | Screen[7-fehler][platte]=0 |
101 | Screen[7-fehler][platte+1]=0 |
102 | Screen[7-fehler][platte+2]=0 |
103 | fehler = fehler + 1 |
104 | Screen[7-fehler][platte]=1 |
105 | Screen[7-fehler][platte+1]=1 |
106 | Screen[7-fehler][platte+2]=1 |
107 | LEDMatrix.Display(Screen) |
108 | if(fehler==5): |
109 | Screen[7-fehler][platte]=0 |
110 | Screen[7-fehler][platte+1]=0 |
111 | Screen[7-fehler][platte+2]=0 |
112 | Screen[7][platte]=1 |
113 | Screen[7][platte+1]=1 |
114 | Screen[7][platte+2]=1 |
115 | fehler = 0 |
116 | LEDMatrix.Scroll(["Game over"],0.05,Left) |
117 | LEDMatrix.Display(Screen) |
118 | break |
119 | |
120 | except KeyboardInterrupt: |
121 | GPIO.cleanup() |