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