Kartenspiel

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
toby1312
User
Beiträge: 1
Registriert: Montag 16. November 2020, 11:44

Hallo, habe ein kleines problem bei einem Beispiel. Vielleicht kann mir jemand helfen. Kenn mich leider noch nicht wirklich aus mit python bzw. programmieren generell.

BEISPIELANGABE:

Beginnen Sie Ihr Programm mit der Zeile:

`random.seed(128)`

Diese Zeile sollte in der gleichen Zelle stehen, wie Ihr restliches Programm. Alles, was Sie zu Seeds wissen müssen, wird im aktuellen Übungsvideo erklärt.

Im Folgenden werden wir ein Kartenspiel simulieren, dazu benötigen Sie die folgenden beiden Listen:

`farben=["Kreuz","Pik","Herz","Karo"]`

`zahlen=[2,3,4,5,6,7,8,9,10]`

Das Spiel funktioniert so:

Zu Beginn einer Runde werden die Zahlenkarten mit `random.shuffle(zahlen)` gemischt. Danach wird mit `random.choice(farben)` eine Farbe gezogen, wenn es die Farbe "Herz" ist, werden der Zahlenwert der untersten Karte und der Zahlenwert der obersten Karte im Stapel (also der erste und letzte Wert in Ihrer Liste `zahlen`) auf die Gesamtpunkte addiert. Ein Spiel dauert 15 Runden.

Simulieren Sie 50 solcher Spiele und speichern Sie jeweils das Endergebnis jedes Spiels in eine Liste `Ergebnisse`.



verstehe die aufgäbe nicht wirklich. weiß nicht wo ich anfangen sollte. Wäre jeglicher Hilfe sehr dankbar :)
Sirius3
User
Beiträge: 18274
Registriert: Sonntag 21. Oktober 2012, 17:20

Was verstehst Du daran nicht? Hast Du das Spiel mal in echt gespielt?
Es steht eigentlich jede Zeile schon im Aufgabentext. Eine Runde besteht aus drei Schritten, da könntest Du also mal eine Funktion schreiben, die eine Runde simuliert. Rückgabewert wäre dann die in dieser Runde erzielten Punkte.
Die nächste Funktion wäre ein Spiel zu simulieren, das ist eine for-Schleife, die 15 mal durchlaufen wird.
Und das letzt wäre, dieses Spiel 50 mal aufzurufen.
Benutzeravatar
__blackjack__
User
Beiträge: 14053
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@toby1312: Was heisst Du weisst nicht wo Du Anfangen sollst? „Beginnen Sie Ihr Programm mit der Zeile:“ sollte Dir schon mal die erste Zeile Deines Programms liefern. Eigentlich zwei Zeilen, denn die Zeile ist für sich nicht lauffähig weil `random` noch nicht bekannt ist. Da wird dann noch ein aktuelles Übungsvideo erwähnt — das solltest Du vielleicht vorher mal anschauen.

Dann hast Du auch schon zwei weitere vorgegebene Zeilen und einen Absatz der ein Spiel beschreibt. Der fängt damit an eine Runde des Spiels zu beschreiben. Und das ein Spiel aus 15 Runden besteht.

Du könntest das Problem also schon mal auf eine Funktion `spiele_runde()` und `spiele_spiel()` aufteilen. Wobei `spiele_spiel()` 15× `spiele_runde()` aufruft. Und da müsstest Du dann überlegen welchen Zustand man als Argument(e) übergeben muss, und was das oder die jeweiligen Ergebnis(se) der Funktionen ist/sind.

Und am Ende sollen dann 50 von den Spielen durchgeführt werden und die Ergebnisse davon in einer Liste gespeichert werden.

Der Zustand ist übrigens nicht so wirklich eindeutig beschrieben. Da können am Ende zwei verschiedene Ergebnisse heraus kommen. Je nach dem ob ein Spiel mit einer sortierten Zahlenliste beginnt, oder ob der Zustand der Zahlenliste über Spiele hinweg sichtbar bleiben soll. Kannst hinterher ja mal verraten was richtig war, oder ob auch beide Ergebnisse anerkannt wurden. Ich würde an dieser Stelle beim Aufgabensteller nachfragen und/oder beide Lösungswege und Ergebnisse liefern, mit dem Hinweis, dass die Aufgabe da nicht so eindeutig ist.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Antworten