Instructions
66
def za(n):
z[0] = int(n / 1000)
z[1] = int(n % 1000 / 100)
z[2] = int(n % 100 / 10)
z[3] = int(n % 10)
for i in range(4):
for s in "abcdefg":
GPIO.output(seg[s], 0)
GPIO.output(zif[i], 0)
for s in zahl[z[i]]:
GPIO.output(seg[s], 1)
if i == 1:
GPIO.output(dp, 1)
else:
GPIO.output(dp, 0)
time.sleep(0.001)
GPIO.output(zif[i], 1)
Die Funktion za(n) zur Anzeige einer vierstelligen Zahl ist ähnlich aufgebaut wie im Programm des 20.
Tags. Zusätzlich leuchtet der Dezimalpunkt hinter der zweiten Ziffer.
try:
while True:
y=random.randrange(100)
t=0
Das Hauptprogramm ist eine Endlosschleife, in der zu Beginn jedes Durchlaufs in der Variable y eine
ganzzahlige Zufallszahl kleiner als 100 gespeichert wird. Diese Zahl muss der Spieler erraten. Zusätzlich
wird die Variable t auf 0 gesetzt, in der später die Anzahl der Tipps gespeichert wird.
while True:
za(x * 100 + t)
Innerhalb der Schleife, die bei jedem Spiel einmal durchläuft, läuft eine weitere Endlosschleife. Diese
zeigt in jedem Durchlauf die zuletzt eingestellte Zahl und die Anzahl der Tipps an. Dazu wird die Zahl x
mit 100 multipliziert und die Tipps in der Variablen t addiert. Vor dem Dezimalpunkt erscheint jetzt die
zweistellige Zahl und dahinter ebenfalls zweistellig die Anzahl der Versuche, die der Spieler bereits hatte.
if GPIO.input(t1)==1 and x>0:
x-=1
time.sleep(0.08)
Drückt der Benutzer die Taste 1 und ist die eingestellte Zahl noch größer als 0, wird die Zahl um 1 verrin-
gert. Danach wartet das Programm 0,08 Sekunden, um Mehrfachaktionen durch versehentlich zu langes
Drücken der Taste abzufangen. Bei Bedarf können Sie diese Wartezeit anpassen.
if GPIO.input(t2)==1 and x<99:
x+=1
time.sleep(0.08)
Auf die gleiche Weise erhöht ein Druck auf die zweite Taste die Zahl, wenn diese noch kleiner als 99 ist.
if GPIO.input(t3)==1:
t+=1
Drückt der Spieler die dritte Taste, wird zunächst die Anzahl der Tipps um 1 erhöht. Dann gibt es drei
Möglichkeiten:
if y<x:
GPIO.output(LED1, 1)
time.sleep(0.5)
GPIO.output(LED1, 0)










