Ni behöver aldrig kontrollera indata, användaren skriver alltid rätt.
Skapa en kommandoradbaserad version av LCR-spelet. I LCR spelet deltar 3 spelare. Inledningsvis får de vardera 3 brickor (chip). Spelet spelas med 3 tärningar med sidorna markerade med:
“L”, “C”, “R”, “.”, “.” och “.” (sex sidor)
Spelets gång
Då alla spelare utom 1 har slut på brickor är spelet slut. Spelaren med brickor är vinnare. Ingen spelare utgår under spelets gång. Spelare med 0 brickor är kvar men kastar tärningen 0 gånger (spelaren kan få brickor igen). (se även beskrivningar här: http://en.wikipedia.org/wiki/LCR_(dice_game)) Exempelkörning längst ner.
Arbetsgång
CommandLineLCR
som är delvis given). Vilka kan behövas?
toString
så att något lättbegripligt skrivs ut. Testa genom att skapa ett objekt i CommandLineLCR
s main
-metoden (se kommentar i koden).
buildLCRGame
i CommandLineLCR
. Metoden bygger hela objekt modellen samt returnerar denna.
render
-metoden i CommandLineLCR
.
TIPS Några tänkbara metoder
getPlayerRight
, returnerar spelaren till höger om aktuell spelare.getPlayerLeft
, returnerar spelaren till vänster om aktuell spelare.getNRolls
, avgör antal kast för aktuell spelare utifrån dennes antal brickor.
LCR started
Players are
{Pelle,3} {Fia,3} {Sven,3}
Player is {Pelle,3}
> r
L L .
{Pelle,1} {Fia,3} {Sven,5}
Player is {Sven,5}
> r
. . R
{Pelle,2} {Fia,3} {Sven,4}
Player is {Fia,3}
> r
. C .
{Pelle,2} {Fia,2} {Sven,4}
Player is {Pelle,2}
> r
. .
{Pelle,2} {Fia,2} {Sven,4}
Player is {Sven,4}
> r
. . R
{Pelle,3} {Fia,2} {Sven,3}
Player is {Fia,2}
> r
. .
{Pelle,3} {Fia,2} {Sven,3}
Player is {Pelle,3}
> r
R . .
{Pelle,2} {Fia,3} {Sven,3}
Player is {Sven,3}
> r
R . .
{Pelle,3} {Fia,3} {Sven,2}
Player is {Fia,3}
> r
R R L
{Pelle,4} {Fia,0} {Sven,4}
Player is {Pelle,4}
> q
R R L
{Pelle,4} {Fia,0} {Sven,4}
Game aborted