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