Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Scanner;
- public class Kniffel {
- // beim letzten mal auswerten
- public static Scanner read = new Scanner(System.in);
- public static int sum;
- public static int[] score = { -1, -1, -1, -1, -1, -1 };// -1 bedeutet, das
- // an der jeweiligen
- // stelle im score (
- // was die kategorie
- // darstellt) noch
- // nichts
- // reingeschrieben
- // wurde
- // wird in der methode ueberblick() benötigt
- public static boolean choose() { // damit das Menü immer nach einer Runde
- // aufgerufen wird. Siehe Main
- int temp = read.nextInt();
- switch (temp) {
- // die cases werden unser spielmenü
- case 1:
- boolean darfNochmal = false;
- // Spieler kann nur noch spielen wenn eine Kategorie frei ist
- for (int j = 0; j < score.length; j++) {
- if (score[j] == -1) { // falls der Spieler noch eine Runde
- // spielen darf
- darfNochmal = true;
- }
- }
- if (darfNochmal == true) {
- play();
- } else {
- System.out.println("Darf nicht mehr spielen!");
- }
- play();
- return false;
- case 2:
- ueberblick(score);
- return false;
- case 3:
- anleitung();
- return false;
- case 4:
- print(score);
- return true; // beendet das Spiel
- default:
- System.out.println("Zahl gibt es nicht!");// Bei Ausnahmefällen wenn
- // die Zahl 10 ist
- return false;
- }
- }
- public static void print(int[] array) {
- // gibt die kategorien aus und summiert das ergebnis
- int score = 0;
- for (int i = 0; i < array.length; i++) {
- System.out.println("Kategorie " + (i + 1) + " Inhalt " + array[i]);
- score += array[i];
- }
- System.out.println("Ergebnis " + score);
- }
- public static int play() {
- int tempzahl;
- int[] dices = new int[5];
- // im hilfsarray dicepos speichern wir die zu merkenden würfel
- int[] dicepos = new int[5];
- for (int i = 0; i < 3; i++) {
- // wir würfeln 3 runden
- sum = 0;
- System.out.println("Runde " + (i + 1));
- if (i > 0) {
- // nach der 1. spielrunde können wir würfel zurücklegen
- // System.arraycopy(dices , 0 , dicepos, 0, dices.length);
- for (int k = 0; k < dicepos.length; k++) {
- // macht das hilfsarray wieder leer
- dices[k] = dicepos[k];
- dicepos[k] = 0;
- }
- }
- for (int j = 0; j < dices.length; j++) {
- // erstellt zufallszahlen falls der inhalt im array = 0 ist
- if (dices[j] == 0) {
- dices[j] = wuerfeln();
- }
- System.out.print(dices[j] + " ");
- }
- System.out.println();
- if (i < 2) {
- // i< 2 weil man nur nach den ersten beiden würfen zahlen merken
- // kann
- System.out
- .println("Bitte zu merkende Zahlenstelle eingeben : ");
- tempzahl = dices[read.nextInt()];
- for (int j = 0; j < dices.length; j++) {
- // wenn die ausgewählt zahl im array ist wird sie ins
- // hilfsarray kopiert
- if (dices[j] == tempzahl) {
- dicepos[j] = tempzahl;
- }
- System.out.print(dicepos[j] + " ");
- }
- System.out.println();
- } else if (i == 2) {
- // man kann nicht dieselbe kategorie nochmals belegen
- boolean empty = false;
- while (empty == false) {
- empty = true;
- System.out.println("Bitte Kategorie auswählen : ");
- tempzahl = dices[read.nextInt()];
- for (int j = 0; j < dices.length; j++) {
- // berechnet die summe
- if (dices[j] == tempzahl) {
- sum += tempzahl;
- }
- }
- empty = addscore(score, tempzahl, sum, empty);
- }
- }
- System.out.println();
- }
- return sum;
- }
- public static boolean addscore(int[] array, int tempzahl, int sum,
- boolean empty) {
- // addiert die summe also das ergebnis eines spiels in das score array
- // fängt ab ob die kategorie schon belegt ist
- if (array[tempzahl - 1] == 0) {
- array[tempzahl - 1] = sum;
- } else {
- System.out.println("Kategorie schon belegt. Bitte neu wählen");
- empty = false;
- }
- System.out.println("Kategorie : " + tempzahl + "\nInhalt : "
- + array[tempzahl - 1]);
- return empty;
- }
- static void printmenu() {
- System.out.println("1. Nächste Spielrunde");
- System.out.println("2. Überblick");
- System.out.println("3. Anleitung");
- System.out.println("4. Spiel beenden");
- }
- static int wuerfeln() {
- return (int) ((Math.random() * 6) + 1);
- }
- static void anleitung() {
- System.out.println("Jede Runde darf dreimal gewürfelt werden. Es ist ");
- System.out.println("erlaubt, nur mit manchen Würfeln zu würfeln. ");
- System.out.println("Am Ende jeder Runde muss das Ergebnis in eine der");
- System.out.println("folgenden Kategorien geschrieben werden: ");
- System.out.println("Einser, Zweier, Dreier, Vierer, Fünfer, Sechser. ");
- System.out.println("Es zählen jeweils alle Augen der jew. Sorte. ");
- System.out.println("Bei insg. mehr als 63 Punkten gibt es einen Bonus");
- System.out.println("von 35 Punkten obendrauf. ");
- }
- static void ueberblick(int[] array) {
- for (int i = 0; i < array.length; i++) {
- // wenn -1 true ist, dann beweist das, dass in der Kategorie noch
- // nichts eingetragen ist
- if (array[i] == -1) {
- System.out.println("In der Kategorie" + (i + 1)
- + "er ist noch nichts enthalten!");
- } else {
- System.out.println("Kategorie:" + (i + 1) + "er" + array[i]);
- }
- }
- }
- public static void main(String[] args) {
- System.out.println("Das Kniffelspiel bitte wählen sie :");
- boolean beende = false;
- // Ruft Spielmenü solange auf bis Spieler Spiel von selsbt beendet
- while (beende == false) {
- printmenu();
- beende = choose();
- }
- }
- }
Add Comment
Please, Sign In to add comment