Lassen Sie uns mit Python ein einfaches Keyboard-Rennspiel erstellen. Im Spiel klickt der Teilnehmer schnell hintereinander auf ein Tastenpaar und das Programm zeigt die Gesamtzeit an, die der Rennfahrer benötigt, um die Strecke zurückzulegen.

Regeln:
Sobald Sie "GO!" Drücken Sie auf dem Bildschirm die Tasten 'z' und 'x'. Für jeden abgedeckten Zähler wird ein '*' angezeigt. Das einmalige Drücken von 'z' und 'x' wird als 1 Meter gezählt. Ziel ist es, 10 Meter abzudecken.

Verwendete Module:

msvcrt : Wird verwendet, um einen Tastenanschlag als Eingabe für die Rennzeit abzurufen . Wird verwendet, um die
 Zeit zu berechnen, die zum Beenden des Rennens benötigt wird

Beachten Sie, dass das MSVCRT- Modul nur in einem Terminalfenster funktionieren kann, nicht in einem GUI-Programm / einer IDE.

Unten ist der Code:



import msvcrt 
import time 
  
high_score = 17.78
name = "GeeksforGeeks"
while True: 
    distance = int(0) 
    print('\n--------------------------------------------------------------') 
    print('\n\nWelcome to the 100m sprint, tap z and x rapidly to move!') 
    print('* = 10m') 
    print('\nCurrent record:' + str(high_score) + ' by: ' + name) 
    print('\nPress enter to start') 
    input() 
    print('Ready...') 
    time.sleep(1) 
    print('GO!') 
  
    start_time = time.time() 
    while distance < 10: 
  
        k1 = msvcrt.getch().decode('ASCII') 
        if k1 == 'z': 
            k2 = msvcrt.getch().decode('ASCII') 
            if k2 == 'x': 
                distance += 1
                if distance == 5: 
                    print("* You're halfway there!") 
                elif distance % 1 == 0: 
                    print('*') 
  
    fin_time = time.time() - start_time 
    fin_time = round(fin_time, 2) 
  
    print('Congratulations on successfully completing the race!') 
    print('You took', fin_time, 'seconds to reach the finish line') 
  
    if fin_time < high_score: 
        print("Well done you've got a new high score ") 
        name = input("Please enter your name : ") 
        high_score = fin_time 

Ausgabe:

Spiel initiieren

Gerade stattfindendes Spiel

Spiel beendet: Neuer Highscore