Python 2.6 – Coding-Challenge: Königliches Würfelspiel
Herzlich willkommen zur Code-Challenge Nr. 2 im Python-Schnellstart.
In dieser Challenge wollen wir die im Modul gewonnenen Kenntnisse anwenden. Du als König willst die Staatskasse deines Königreiches etwas aufbessern. Daher hat dir dein Kämmerer geraten, das Glücksspiel zu legalisieren.
Findig wie du bist, hast du beschlossen eine Würfelsimulation in Python zu schreiben. Diese Würfelsimulation soll folgenden Aufbau haben:
- Eingabe einer Zahl, um zu bestimmen, wie viele Seiten der Würfel hat
- Bestimmen einer Zufallszahl in diesen Grenzen
- Ausgabe der Zufallszahl
- Rufe die Funktionen auf
Deinen Code kannst du später hier eingeben. Lies aber zuerst die untenstehenden Aufgaben durch 🙂
Wie du bereits gelernt hast, fassen wir diese Funktionalitäten in Funktionen zusammen.
Erste Aufgabe der Challenge (Tastatureingabe)
Zunächst schreiben wir eine einfache Funktion, die eine Eingabe annimmt und in eine Variable speichert.
- Definiere eine Funktion z.B. eingabe_zahl
- Erstelle einen Input, der in einer Variable (eingabe) gespeichert wird
- Diese Variable (eingabe) ist der Rückgabewert der Funktion
Erste Code-Aufgabe - Lösung:
Wenn du nicht weiterkommst, findest du hier die Komplettlösung zu der Aufgabe. Du kannst den folgenden Code in den Online-Editor kopieren & einfügen, um ihn zu testen.
[lp_spoiler title="Spoiler - Lösung anzeigen"]
def eingabe_zahl():
eingabe = input("Gib eine Zahl zwischen eins und sechs ein: ")
return eingabe
[/lp_spoiler]
Zweite Aufgabe der Challenge (Zufallszahl)
- Erstelle eine Funktion, um die Zufallszahl zu bestimmen (z.B. bestimme_zufallszahl)
- Diese Funktion soll eine Zufallszahl zwischen eins und der eingegebenen Zahl zurückgeben.
Hinweis: Die Funktion random akzeptiert als Parameter zwei Integer, input liefert aber stets einen String zurück. Daher müssen wir die Variable der vorigen Eingabe in einen Integer umwandeln. Zum Umwandeln benutzen wir die Funktion int().
Zweite Code-Aufgabe - Lösung:
[lp_spoiler title="Spoiler - Lösung anzeigen"]
def bestimme_zufallszahl(eingabe):
random(1, int(eingabe))
return random
[/lp_spoiler]
Abschließend geben wir die Zufallszahl am Bildschirm aus. Bei derart kleinen Funktionen hätte man die Ausgabe auch in die Funktion packen können, aber so sind die Funktionalitäten getrennt.
bestimme_zufallszahl()
Dritte Aufgabe der Challenge (Ausgabe)
Erstelle eine dritte Funktion namens ausgabe() mit dem parameter random
Wir wollen vor das Würfelergebnis noch einen kurzen Text schreiben. z.B. "Die gewürfelte Zahl ist "
Benutze den Print-Befehl, um diesen kurzen Text mit dem Würfelergebnis zu verketten. Achtung: Zur Konkatenation einer Integervariable und einer Stringvariable müssen wir die Zufallszahl vorher in einen String umwandeln.
Dritte Code-Aufgabe - Lösung:
[lp_spoiler title="Spoiler - Lösung anzeigen"]
def ausgabe(random):
print("Die gewürfelte Zahl ist " + str(random))
[/lp_spoiler]
Rufe jetzt deine drei Funktionen in der main()-Funktion auf:
(Du kannst den Code einfach kopieren / einfügen)
def main():
eingabe = eingabe_zahl()
random = bestimme_zufallszahl(eingabe)
ausgabe(random)
if __name__ == '__main__':
main()
Das fertige Programm zusammengebaut im Code-Editor:
Puh. Das war schon eine ganze Menge. Wenn du hier angekommen bist, hast du es jedoch geschafft.
Hier findest du den kompletten Code der Challenge:
[lp_spoiler title="Spoiler - Lösung anzeigen"]
from random import randint
def eingabe_zahl():
eingabe = input("Gib an, wieviele Seiten der Würfel haben soll: ")
return eingabe
def bestimme_zufallszahl(eingabe):
random = randint(1, int(eingabe))
return random
def ausgabe(random):
print("Die gewürfelte Zahl ist " + str(random))
def main():
eingabe = eingabe_zahl()
random = bestimme_zufallszahl(eingabe)
ausgabe(random)
if __name__ == '__main__':
main()
[/lp_spoiler]
Der König ist sehr zufrieden mit deiner Coding-Leistung.
Wir sehen uns in Modul 3.