Beim Spiel „Shut the Box“ muss man mit zwei Würfeln möglichst viele der Ziffern von 1 bis 9 schließen.

Wenn man beispielsweise 3 und 5 würfelt, also in Summe 8, so kann man entweder die 8 schließen oder 3 und 5 oder eben auch 7 und 1 oder 1, 3 und 4.
Hauptsache die Ziffern ergeben in Summe genau die gewürfelte Augensumme.

Box: [123456789]
Würfel: 3 - 5

Gib eine zu schließende Ziffer 1..9 an oder (s)chließe ab
> 8

Box: [1234567(8)9]

Gib eine zu schließende Ziffer 1..9 an oder (s)chließe ab
> s

Box: [1234567*9]
Würfel: 6 - 6

Gib eine zu schließende Ziffer 1..9 an oder (s)chließe ab
> 9

Box: [1234567*(9)]

Gib eine zu schließende Ziffer 1..9 an oder (s)chließe ab
> 3

Box: [12(3)4567*(9)]

Gib eine zu schließende Ziffer 1..9 an oder (s)chließe ab
> s

Box: [12*4567**]
Würfel: 1 - 4

Gib eine zu schließende Ziffer 1..9 an oder (s)chließe ab
>
...

Sollte keine Kombination mehr möglich sein, die die gleiche Augensumme ergibt, ist das Spiel beendet und man erhält als Gewinnsumme die Summe der geschlossenen Felder.

Box: [***45*7**]
Würfel: 5 -5

Sie haben einen Gesamtpunktestand von 29 erreicht.

Dabei ergeben sich die 29 als Summe von 1,2,3,6,8 und 9, die jeweils in den Schritten davor umgedreht wurden.

Es gilt also eine Klasse ShutTheBox zu implementieren, die folgende Methoden bereitstellt:

class ShutTheBox
{

    public function output(): string
    {
        // Diese Methode gibt die Box, die vorgewählten
        // und gesetzten Ziffern und
        // die Würfel aus
        // ggf. auch den Endpunktestand
    }

    public function shut(string $choice): void
    {
        // Diese Methode behandelt die Auswahl
        // des Benutzers korrekt, also 1...9 oder s.
    }

}

Coding Kata: Shut the Box

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.