🛡🔑🛡
Bitte erstelle in deiner PyCharm Community Edition Schritt für Schritt ein neues Projekt mit dem Namen
Achte darauf, dass dieses Projekt auf deinem Home-Netzlaufwerk (H:) gespeichert wird.
Es bleibt dir überlassen, ob du für jede Teilaufgabe eine eigene .py
-Datei anlegst oder ob du alle Teilaufgaben in einer einzigen Python-Datei programmierst. Wichtig ist allerdings, dass der Projektname exakt UrnenProjekt
lautet und dass es im Laufwerk H: liegt.
Im Folgenden findest du fünf aufeinander aufbauende Aufgaben für die Programmierung eines kleinen Kugelzieh-Spiels in Python. Bitte halte dich genau an die vorgegebenen Funktionsnamen und erstelle für jede Aufgabe genau eine Funktion.
Am Schluss sollen alle Teilfunktionen in einer letzten Funktion zusammenspielen, damit ein komplettes Programm entsteht.
"rot"
,"grün"
,"blau"
.Nach jeder Teilaufgabe findest du eine kurze Testanleitung. Du kannst die beschriebenen Zeilen eins-zu-eins in deinen Code einfügen, um deine Implementierung zu überprüfen. Diese Aufrufe stehen nicht in einer eigenen Testfunktion, sondern sind einfache Aufrufe, die du direkt ausführen kannst.
Funktion: greet_user(name)
print(...)
). Es erfolgt keine Rückgabe.Hinweise
name
.Test
Um deine Lösung zu testen, kannst du folgenden Code (ohne weitere Änderungen) unterhalb deiner Funktionsdefinition einfügen und ausführen:
Funktion: setup_urn()
"rot"
, 3× "grün"
, 3× "blau"
.Hinweise
return
zurück, damit andere Funktionen später darauf zugreifen können.Test
Füge zum Testen deiner setup_urn()
-Funktion z. B. Folgendes in deinen Code ein und führe es aus:
Funktion: draw_ball(urne)
urne
) als Parameter entgegennimmt.Hinweise
random
arbeiten.randint
-Verfahren verwenden, das dir eine zufällige ganze Zahl im gewünschten Bereich liefert (z. B. zwischen 0 und len(urne) - 1
).random.choice(...)
nutzen, das dir zufällig ein Element aus der Liste auswählt – beachte dann jedoch, wie du anschließend dieses Element aus der Liste entfernst.pop(i)
an, um eine Kugel an einer bestimmten Position iaus der Liste zu löschen. Alternativ kannst du remove(x)
benutzen um das zuerst auftauchende Element mit dem Wert x aus der Liste zu löschen.return
zurück.Test
Kopiere diese Aufrufe nach deiner Funktionsdefinition und führe sie aus:
Funktion: draw_multiple_balls(urne, anzahl)
urne
anzahl
(wie viele Kugeln gezogen werden sollen).anzahl
angegeben.return
zurück.Hinweise
for i in range(anzahl):
eine Schleife erzeugen, die genau so oft durchlaufen wird, wie Kugeln zu ziehen sind.draw_ball(urne)
aufrufen.append(...)
hinzufügst.return
zurückzugeben.Test
Auch hier kannst du deinen Code mit den folgenden Zeilen überprüfen:
Funktion: play_game()
input()
).greet_user(...)
.setup_urn()
.input()
, anschließend Umwandlung in eine ganze Zahl).draw_multiple_balls(...)
.Hinweise
input()
Eingaben vom Nutzer erfassen und anschließend mithilfe von int()
in eine Zahl umwandeln.print(...)
, damit der Spieler den Spielablauf nachvollziehen kann.Test
Rufe deine fertige Spielfunktion auf, um den Programmablauf zu testen:
Wenn alles korrekt ist, solltest du nach deinem Namen und nach der Anzahl zu ziehender Kugeln gefragt werden. Anschließend werden dir die gezogenen Kugeln angezeigt.
🛡🔑🛡🛡🔑🛡🛡🔑🛡🛡🔑🛡🛡🔑🛡
🛡🔑🛡
🛡🔑🛡🛡🔑🛡🛡🔑🛡🛡🔑🛡
Aufgabe 1:
Hinweise:
Deck = [['Herz','Junge',10],['Pik','Dame',10],...
from random import *
shuffle(Deck)
karte = Deck.pop(n)
Spielerkarten.append(karte)
🛡🔑🛡
Aufgabe 2
Tipp:
🛡🔑🛡
Aufgabe 3:
Tipp:
BLACK = '\033[30m'
RED = '\033[31m'
GREEN = '\033[32m'
YELLOW = '\033[33m' # orange on some systems
BLUE = '\033[34m'
MAGENTA = '\033[35m'
CYAN = '\033[36m'
LIGHT_GRAY = '\033[37m'
DARK_GRAY = '\033[90m'
BRIGHT_RED = '\033[91m'
BRIGHT_GREEN = '\033[92m'
BRIGHT_YELLOW = '\033[93m'
BRIGHT_BLUE = '\033[94m'
BRIGHT_MAGENTA = '\033[95m'
BRIGHT_CYAN = '\033[96m'
WHITE = '\033[97m'
RESET = '\033[0m' # called to return to standard terminal text color
print(BLACK + "black" + RESET)
print(RED + "red" + RESET)
print(GREEN + "green" + RESET)
print(YELLOW + "yellow" + RESET)
print(BLUE + "blue" + RESET)
print(MAGENTA + "magenta" + RESET)
print(CYAN + "cyan" + RESET)
print(LIGHT_GRAY + "light gray" + RESET)
print(DARK_GRAY + "dark gray" + RESET)
print(BRIGHT_RED + "bright red" + RESET)
print(BRIGHT_GREEN + "bright green" + RESET)
print(BRIGHT_YELLOW + "bright yellow" + RESET)
print(BRIGHT_BLUE + "bright blue" + RESET)
print(BRIGHT_MAGENTA + "bright magenta" + RESET)
print(BRIGHT_CYAN + "bright cyan" + RESET)
print(WHITE + "white" + RESET)
Lösung:
🛡🔑🛡
Aufgabe 2:
Lösung:
🛡🔑🛡
Aufgabe 3:
Lösung:
🛡🔑🛡
Aufgabe 4
Lösung:
🛡🔑🛡
Hinweis:
liste = []
liste.append('Thomas Müller')
Musterlösung:
🛡🔑🛡
Hinweis:
lowertext = originaltext.lower()
uppertext = originaltext.upper()
Hinweis:
anzahlElemente = len(liste)
Alternativ:
anzahlElemente = liste.__len__()
Musterlösung:
🛡🔑🛡 Hinweise:element_an_position_n = liste.pop(n)
for i in range(5):
def inputInteger(a,b):
Vortragsmodalitäten:
Klausurrelevante Themen:
Link zum Skript zum Thema Wissenschaft Informatik (vollumfänglich Klausurrelevant!)
Link zum Skript zum Thema Algorithmentheorie (vollumfänglich Klausurrelevant!)
Link zum Skript zum Thema Pythonprogrammierung (teilweise Klausurrelevant!)
Link zum Skript Programmablaufvisualisierung (teilweise Klausurrelevant!)
Für das Testen der Übungsaufgaben werden folgende Interpreter empfohlen:
https://www.online-python.com/
https://www.programiz.com/python-programming/online-compiler/