ENDSTAND
wird mit 10 initialisiert und ist,
da mit final
deklariert eine Konstante, die nicht geändert werden kann.
Der Wurf des Computers ist unkompliziert. Es muss nur der Wurf zweier sechs-seitiger Würfel addiert werden.
// Computer wirft
computerwurf = rand.nextInt(6)+1 + rand.nextInt(6)+1 ;
System.out.println("Der Computer wirft: " + computerwurf);
Für den Wurf des Spielers fragt das Programm zuerst welche Würfel verwendet werden sollen:
// Spieler wirft
System.out.print("1 -> 11-seitiger Wuerfel | 2 -> 6-seitiger Wuerfel (1 oder 2)? ");
String wuerfeltyp = scan.nextLine();
Da die Ziffern, die der Anwender eingibt, nicht numerisch verwendet werden, werden sie am besten als String eingelesen. Falls der Anwender aus Versehen etwas anderes als eine Ziffer eingibt, wird das Programm nicht zusammenbrechen. Stringvergleich wird dann verwendet, um zu bestimmen, welche Option verwendet wird. Alles andere als die Ziffer "1" wird den Zweig mit den zwei Würfeln wählen.
if ( wuerfeltyp.equals("1") ) { spielerwurf = rand.nextInt(11)+2 ; System.out.println("Sie werfen 1 Wuerfel und haben: " + spielerwurf ); } else { spielerwurf = rand.nextInt(6)+1 + rand.nextInt(6)+1 ; System.out.println("Sie werfen 2 Wuerfel und haben: " + spielerwurf ); }
Wäre es nicht besser zu testen, ob der Anwender genau die angegebene Auswahl eingibt?