Aufgabe 6
Finale Aufgabe: Du baust ein kleines Blackjack-Konsolenspiel. Du übst dabei Zufall, Listen, Funktionen, Schleifen und Bedingungen.
Aufgabe: Blackjack
Implementiere ein vereinfachtes Blackjack: Der Spieler zieht Karten gegen den Dealer. Asse zählen zuerst als 11, können aber auf 1 reduziert werden, wenn der Handwert sonst über 21 ginge.
Lernziele
- Zufallsbasiertes Mischen eines Kartendecks.
- Handwerte korrekt berechnen (inkl. Ass-Logik).
- Spielablauf mit Eingaben steuern (ziehen / halten).
- Dealer-Regel korrekt umsetzen (zieht bis < 17).
Was soll das Programm tun?
- Deck erstellen und mischen.
- Spieler und Dealer erhalten je zwei Karten, erste Dealer-Karte verdeckt anzeigen.
- Spieler: wiederholt fragen (
zziehen /hhalten), Überkauf prüfen. - Dealer: aufdecken, solange ziehen, bis Handwert ≥ 17.
- Ergebnis ausgeben: Gewinn/Verlust/Unentschieden.
Deine Aufgabe
- Vervollständige die Funktionen
neues_deck(),hand_wert()undzeige_hand(). - Implementiere den Spielerzug inkl. Eingabeprüfung und Überkauf.
- Implementiere den Dealerzug (zieht bis < 17).
- Gib das Ergebnis sauber formatiert aus.
Reflexionsfragen
- Warum muss der Ass-Wert dynamisch von 11 auf 1 reduziert werden können?
- Was passiert, wenn der Dealer bei 16 hält oder bei 17 weiterzieht?
- Wie würdest du „Blackjack“ (21 mit 2 Karten) speziell behandeln?
💡 Tipp: Nutze list.pop() als „Karte ziehen“ vom gemischten Deck und prüfe Eingaben mit .strip().lower().