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

Karten ziehen

Karten von einem Endlosstapel ziehen

Um Karten zu ziehen, nutzen wir einen endlosen Stapel von Karten, der bei Bedarf eine neue, zufällige Karte liefert. Die Klassendiagramme zeigen die wesentliche Struktur der Klassen Endlosstapel und Karte.

Klassendiagramme Endlosstapel und Karte

Aufgabe 1 - Endlosstapel nutzen

(a) Beschreibe die Struktur der beiden Klassen mit Hilfe der Klassendiagramme. Gehe dabei auch auf den Rückgabetyp der Methode zieheKarte ein.

(b) Lade das vorbereitete BlueJ-Projekt herunter, entpacke es und erzeuge einen Endlosstapel, indem du rechts auf die Klasse klickst und den Konstruktor auswählst.

(c) Ziehe eine Karte vom Stapel, indem du die Methode zieheKarte aufrufst. Experimentiere mit der Rückgabe, indem du die Buttons "Inspect" und "Get" benutzt. Beschreibe deren Wirkung.

(d) Schreibe ein Hauptprogramm, das

  • einen Endlosstapel erzeugt,
  • zwei Karten vom Stapel zieht,
  • und diese ausgibt.

Mehrere Karten ziehen

Um Aktionen mehrfach zu wiederholen, gibt es in den meisten Programmiersprachen das Konzept von Schleifen, auch Wiederholungen genannt. Wir benötigen Schleifen hier, um mehrere Karten zu ziehen und verwenden hierfür for-Schleifen. Eine for-Schleife in Kotlin funktioniert nach folgendem Schema:

        für jedes Element x aus einer Menge von Elementen {
           // tue etwas (möglicherweise mit x)
        }
    
Konkret sehen for-Schleifen beispielsweise so aus:

Beispiel 1

fun main() {
    for (zahl in 1..5) {
        println("$zahl : ${ zahl * zahl }")
    }
}

Beispiel 2

fun main() {
    for (zahl:Int in 1..5) {
        println("$zahl : ${ zahl * zahl }")
    }
}

Beispiel 3

fun main() {
    for (zeichen in "Hallo") {
        println(zeichen)
    }
}

Beispiel 4

fun main() {
    var counter = 0
    for (zeichen in "Hallo") {
        counter = counter + 1
    }
    println("Anzahl Zeichen: $counter")
}

Die Beispiele verwenden teilweise String-Templates, um die Ausgabe zu vereinfachen. Im Abschnitt Tipps zu Kotlin sind diese beschrieben.

Aufgabe 2

Beschreibe die Benutzung einer for-Schleife an den obigen Beispielen.

Aufgabe 3

Schreibe in BlueJ ein Hauptprogramm, das einen Endlosstapel erzeugt, davon zehn Karten zieht und diese ausgibt.

Suche

v
100.123.4.1.1 Karten ziehen
Kopieren durch Anklicken

Rückmeldung geben