Java :: Aufgabe #99 :: Lösung #10

10 Lösungen Lösungen öffentlich
#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
vote_ok
von luckyluke (850 Punkte) - 26.02.2020 um 15:15 Uhr
Quellcode ausblenden Java-Code
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

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben
2111801

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.