Spielen Sie eine Partie Handcricket mit Python
Mit geschätzten 2,5 Milliarden Fans ist Cricket eine der größten und beliebtesten Sportarten der Welt. Allein in Indien ist Cricket satte 5,3 Milliarden Dollar wert. Sachin Tendulkar, Donald Bradman, Brian Lara und MS Dhoni sind nur einige Legenden, deren Namen in den Herzen von Millionen leben.
Es ist keine Überraschung, dass Cricket seinen Weg in die virtuelle Realität, in Videospiele und andere Variationen wie Buch- und Handcricket gefunden hat. Gehen Sie in diesem Spiel noch einen Schritt weiter, indem Sie mit Python ein Hand-Cricket-Spiel erstellen.
Was ist Handcricket?
Handcricket ist ein Spiel, bei dem zwei Spieler mit ihren Fingern gegeneinander antreten. In jeder Runde zeigen beide Spieler gleichzeitig mit ihren Fingern eine Zahl an. Wenn die Ergebnisse übereinstimmen, ist der Schlagmann draußen, ansonsten erhalten sie ihre Nummer als Läufe. Schließlich gewinnt der Spieler mit den meisten Punkten das Spiel.
Sie können dieses Spiel bauen und es auch gegen einen Computer spielen. Anstatt die Finger auszustrecken, um die Partitur darzustellen, geben Sie sie in das Programm ein. Python ist eine der am einfachsten und bequemsten zu verwendenden Sprachen. Wenn Sie noch keine Erfahrung mit Python haben, können Sie sich mit einem dieser kostenlosen Online-Python-Kurse für Anfänger auf den neuesten Stand bringen.
Sobald Sie die Grundlagen gelernt haben, ist es eine gute Idee, Miniprojekte und Spiele zu erstellen, um Ihr Lernen zu festigen. Sie können damit beginnen, eine Digitaluhr zu bauen, Würfel zu würfeln, ein Quiz oder einen Wortzähler zu bauen. Sie können sich auch von diesen Python-Projektideen für Anfänger inspirieren lassen.
So erstellen Sie ein Hand-Cricket-Spiel mit Python
Importieren Sie die Zufallsbibliothek, die für den ersten Wurf und die Auswahl des Computers erforderlich ist. Definieren Sie eine Funktion namens input_num , die zwei Argumente akzeptiert, min bzw. max , um die Eingabe des Benutzers zu validieren. Speichern Sie mit der Funktion input () die Zahl, die der Benutzer in die Variable num eingibt, und wandeln Sie sie mit int() vom Standardtyp String in den Typ Integer um .
Wenn die vom Benutzer eingegebene Zahl größer oder kleiner als die Mindestgrenze ist, bitten Sie den Benutzer, eine gültige Auswahl einzugeben, indem Sie die Funktion rekursiv aufrufen. Wenn die Nummer innerhalb des Bereichs liegt, geben Sie sie zurück.
import random
def input_num(min, max):
num = int(input())
if num > max or num < min:
print("Enter valid choice")
return input_num(min, max)
else:
return num
Definieren Sie eine Funktion innings , die den aktuellen Schlagmann und die zu verfolgenden Läufe als Eingabeargumente akzeptiert. Bitten Sie den Benutzer, Zahlen im Bereich von eins bis sechs einzugeben. Wenn sowohl der Benutzer als auch der Computer nach den Regeln des Handcricket dieselbe Nummer wählen, ist der aktuelle Schlagmann draußen.
Initialisieren Sie eine variable Gesamtzahl , um die Gesamtzahl der von einem Schlagmann erzielten Läufe zu speichern, und setzen Sie sie auf Null. Beginnen Sie eine unendliche While – Schleife und rufen Sie die Funktion input_num() auf, um die Eingabe des Benutzers zu speichern und zu validieren. Verwenden Sie die Funktion randint() des Zufallsmoduls , um eine Zufallszahl zwischen eins und sechs für den Computer auszuwählen.
Zeigen Sie die Entscheidungen beider Spieler an und prüfen Sie dann, ob sie gleich sind. Wenn dies der Fall ist, zeigen Sie an, dass der Schlagmann aus ist, und geben Sie die Gesamtzahl der Runs zurück, die er in diesem Inning erzielt hat.
Überprüfen Sie andernfalls, wer schlägt, und addieren Sie den entsprechenden Wert zur Gesamtpunktzahl, entweder pnum oder cnum . Zeigt den aktuellen Punktestand des Schlagmanns an.
Im Falle des zweiten Innings möchten Sie überprüfen, ob der Schlagmann den Punktestand seines Gegners bereits geschlagen hat. Überprüfen Sie dazu, ob der to_chase- Wert nicht leer ist und ob die Punktzahl des Schlagmanns größer ist. Wenn ja, geben Sie ihre Gewinnpunktzahl zurück.
def innings(batsman, to_chase):
print("Enter numbers between 1 and 6. If you both choose the same number then " + batsman + "is out")
total = 0
while True:
pnum = input_num(1, 6)
cnum = random.randint(1, 6)
print("User chose", pnum)
print("Computer chose", cnum)
if pnum == cnum:
print(batsman + "is out")
return total
else:
total = total + (pnum if batsman == "User" else cnum)
print(batsman + "score is", total)
if to_chase is not None and total > to_chase:
return total
Zeigen Sie die Nachricht für den Toss an und bestätigen Sie die Wahl des Benutzers mit der Funktion input_num() . Wirf die Münze und speichere das Ergebnis in der Variablen coin . Initialisieren Sie den Standardwert von player_bowls auf false. Wenn der Münzwurf mit der Wahl des Benutzers übereinstimmt, gewinnt der Benutzer den Wurf und wählt zwischen Schlagen und Bowling.
Nehmen Sie die Auswahl des Benutzers und überprüfen Sie, ob er eine eingegeben hat. Wenn ja, werte den Ausdruck als wahr aus und speichere ihn in der player_bowls- Variablen. Zeigen Sie die Auswahl des Benutzers an. Wenn der Computer andererseits den Wurf gewonnen hat, führe randint() aus und werte den entsprechenden Wert für player_bowls aus .
Zeigen Sie die Wahl des Computers an und beginnen Sie mit den Innings.
print("Time for toss, Enter 0 for Heads and 1 for Tails")
choice = input_num(0, 1)
coin = random.randint(0, 1)
player_bowls = False
if coin == choice:
print("You have won the toss")
print("Select 0 to bat, 1 to bowl ")
player_bowls = input_num(0, 1) == 1
if player_bowls:
print("You chose to bowl")
else:
print("You chose to bat")
else:
print("Computer won the toss")
player_bowls = random.randint(0, 1) == 1
if player_bowls:
print("Computer chose to bat")
else:
print("Computer chose to bowl")
Wenn player_bowls wahr ist, schlägt der Computer zuerst und umgekehrt. Berechnen Sie die in einem Innings erzielten Runs mit der zuvor definierten Funktion. Die Funktion erfordert den Namen des aktuellen Schlagmanns und die zu verfolgenden Läufe. Wenn der erste Schlagmann den Punktestand festlegt, machen Sie ihn zu einem optionalen Parameter und übergeben Sie None . Übergeben Sie für die zweiten Innings die Punktzahl des Schlagmanns, der das Ziel gesetzt hat.
if player_bowls:
comp_score = innings("Computer", None)
user_score = innings("User", comp_score)
else:
user_score = innings("User", None)
comp_score = innings("Computer", user_score)
Wenn der Computer weniger Punkte erzielt als der Benutzer, gewinnt der Benutzer und umgekehrt. Falls die Punktzahlen gleich sind, zeigen Sie ein Unentschieden an.
if comp_score < user_score:
print("User wins")
elif user_score < comp_score:
print("Computer wins")
else:
print("Match draw")
Setzen Sie den gesamten Code zusammen und machen Sie sich bereit, jederzeit und überall Handcricket zu spielen, direkt an Ihren Fingerspitzen.
Die Ausgabe von Hand Cricket mit Python
Sie können die Ausgabe eines Handcricket-Spiels mit Python wie folgt sehen:
Wenn Sie das Programm ausführen, fordert Sie das Programm auf, eine Wahl für den Wurf zu treffen, und weist das entsprechende Ergebnis zu. Wenn Sie gewinnen, können Sie entscheiden, ob Sie schlagen oder kegeln möchten, sonst trifft der Computer eine Entscheidung. Jedes Inning wird fortgesetzt, bis die Zahlen übereinstimmen und einer aus ist. Am Ende vergleicht der Computer das Endergebnis und kürt den Sieger.
Terminalbasierte Spiele in Python
Das Bauen von Spielen ist eine erstaunliche Art, Python zu lernen, und es macht viel Spaß. Sie müssen kein Experte sein, um mit dem Programmieren und Experimentieren in Python zu beginnen. Mit genau den richtigen Grundlagen können Sie einige erstaunliche Terminalspiele erstellen.
Beginnen Sie mit dem Bau von Magic 8 Ball, Hangman, Rock Paper Scissors, Mad Libs Generator und dem Zahlenratespiel. Erkunden Sie im weiteren Verlauf die PyGame-Bibliothek, um auch Ihre eigenen grafischen Videospiele zu erstellen.
Schreibe einen Kommentar