s n h m r u

Minimallogo des digitalen Schulbuchs inf-schule.de. Schriftzug in Zustandsübergangsdiagramm eines endlichen Automaten.

s n h m r u
i

Blackjack spielen

Blackjack im Codepad und Objektbereich

Beim Drei-Karten-Blackjack steht die Anzahl der gezogenen Karten vor dem Start fest. In der normalen Version des Spiels entscheidet jede Person nach einer gezogenen Karte, ob sie eine weitere Karte ziehen möchte oder nicht. Mit Hilfe des Codepads und des Objektbereichs kannst du das Spiel in der normalen Version spielen:

  1. Beide Spieler verwenden an getrennten Computern jeweils einen eigenen, gemischten Stapel. Die Bildschirme bleiben für den Gegner verdeckt.
  2. Beide ziehen zunächst zwei Karten.
  3. Danach entscheidet jeder für sich: eine weitere Karte ziehen oder aufhören.
  4. Wer mehr als 21 Punkte hat, verliert. Wenn beide keine Karte mehr möchten, gewinnt die höhere Punktzahl bis 21.
  5. Bei gleicher Punktzahl endet das Spiel unentschieden. Das gilt auch, wenn beide mehr als 21 Punkte haben.

Aufgabe 1

Spielt zu zweit an getrennten Computern ein Blackjack-Duell. Haltet eure Bildschirme bis zum Ende verdeckt und vergleicht dann Karten und Punktzahlen.

Aufgabe 2

Beschreibe die einzelnen Schritte, die ihr dabei ausführt. Verwende mindestens diese Begriffe aus den vorherigen Abschnitten:

  • Konstruktor
  • Klasse
  • Objekt
  • Attribut
  • Datentyp
  • Methode
  • Parameter
  • Rückgabe

Optional: Blackjack als Hauptprogramm

Momentan können wir noch keine komplexe Ablauflogik programmieren, die wir bräuchten, um den vollständigen Spielablauf zu steuern. Wenn du möchtest, kannst du aber das unten vorgegebene Hauptprogramm kopieren und dann Blackjack mit zwei Personen an einem Computer spielen. Ein automatisches Addieren der Punkte geht auch dort noch nicht. Aber wir sind ja erst ganz am Anfang unserer Kotlin-Reise :-)

fun main() {
    print("Name von Spieler 1: ")
    val name1 = readln().trim()
    print("Name von Spieler 2: ")
    val name2 = readln().trim()

    println("Ass zählt 11, Bube, Dame und König zählen 10.")
    println("Addiert eure Punkte selbst und merkt euch die Summe.")
    println("Bei mehr als 21 Punkten müsst ihr aufhören.")

    val namen = listOf(name1, name2)
    val fertig = mutableListOf(false, false)

    val stapel = Stapel()
    stapel.erzeugeBlaetter(1)
    stapel.mischen()

    while ((!fertig[0] || !fertig[1]) && stapel.zaehleKarten() > 0) {
        for (i in 0..1) {
            if (fertig[i] || stapel.zaehleKarten() == 0) continue

            var antwort: String
            do {
                print("\n${namen[i]}, eine Karte ziehen? (j/n): ")
                antwort = readln().trim().lowercase()
            } while (antwort != "j" && antwort != "n")

            if (antwort == "n") {
                fertig[i] = true
                println("${namen[i]} hört auf.")
            } else {
                println("Eine Karte für ${namen[i]}:")
                stapel.zieheUndZeige()
            }
        }
    }

    if (stapel.zaehleKarten() == 0) {
        println("\nDer Stapel ist leer. Das Spiel endet.")
    }

    println("\nVergleicht nun eure Punkte und bestimmt den Gewinner.")
}

Suche

v
100.123.1.1.8 Blackjack spielen
Kopieren durch Anklicken

Rückmeldung geben