Java :: Aufgabe #99 :: Lösung #10
10 Lösungen
#99
Stein, Papier, Schere, Echse, Spock
Anfänger - Java
von Energy
- 24.09.2015 um 15:22 Uhr
Programmiere das Spiel Stein, Papier, Schere, Echse, Spock, sodass man selbst eine Figur auswählen kann und der Computer eine zufällige Figur auswählt. Ermittele dann, wer diese Partie gewonnen hat.
#10
von luckyluke (850 Punkte)
- 26.02.2020 um 15:15 Uhr
package com.company;
import java.util.InputMismatchException;
import java.util.Random;
import java.util.Scanner;
public class Game {
Scanner scan = new Scanner(System.in);
Random random = new Random();
String[] zeichen = {"Schere", "Stein", "Papier", "Echse", "Brunnen"};
private int choosenSign;
private int randomSign;
private int scoreToWin;
private int yourWinCounter = 0;
private int enemyWinCounter = 0;
public Game(int scoreToWin) {
this.scoreToWin = scoreToWin;
}
private void choseZeichen() {
while (true) {
try {
System.out.println("Wähle dein Zeichen: Schere(0), Stein(1), Papier(2), Echse(3), Brunnen(4)");
choosenSign = scan.nextInt();
while (choosenSign < 0 || choosenSign > 4) {
System.out.println("Wähle dein Zeichen: (0-4) Schere(0), Stein(1), Papier(2), Echse(3), Brunnen(4)");
choosenSign = scan.nextInt();
}
System.out.print(zeichen[choosenSign] + " vs. ");
break;
// scan.close();
} catch (InputMismatchException e) {
System.out.println("Wrong input! Try again");
String errStr = scan.next();
}
}
}
private int createRandom() {
return random.nextInt(4);
}
private void cases(int winNumber1, int winNumber2) {
if (choosenSign == randomSign) {
System.out.println("Unentschieden");
} else if (randomSign == winNumber1 || randomSign == winNumber2) {
System.out.println(zeichen[choosenSign] + " gewinnt gegen: " + zeichen[randomSign]);
yourWinCounter++;
} else {
System.out.println(zeichen[choosenSign] + " verliert gegen: " + zeichen[randomSign]);
enemyWinCounter++;
}
}
private void checkWin() {
switch (choosenSign) {
case 0:
cases(2, 3);
break;
case 1:
cases(0, 3);
break;
case 2:
cases(1, 4);
break;
case 3:
cases(2, 4);
break;
case 4:
cases(0, 1);
break;
}
}
public void startGame() {
while (true) {
choseZeichen();
randomSign = createRandom();
System.out.print(zeichen[randomSign] + "\n");
checkWin();
System.out.println(yourWinCounter + " : " + enemyWinCounter);
if (yourWinCounter >= scoreToWin || enemyWinCounter >= scoreToWin) {
System.exit(0);
}
}
}
public static void main(String[] args) {
// write your code here
Game firstthreeWins = new Game(3);
firstthreeWins.startGame();
}
}
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1
