Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- public class Kniffel {
- public static void menu(int[] summe, int durchlauf,
- int[][] status) {
- boolean ende = false;
- int[] wurf = new int[5]; // wurf = du hast 5 würfel
- int[] jaNein = { 0, 0, 0, 0, 0 };
- int restwuerfe = 2;
- System.out.println("Menue");
- System.out.println("Runde " + durchlauf);
- System.out
- .println("Geben sie eine von Zahl von 1 bis 4 ein um den gewünschten Menüpunkt auszuführen: ");
- System.out.println("1. Nächste Spielrunde");
- System.out.println("2. Überblick");
- System.out.println("3. Anleitung");
- System.out.println("4. Spiel beenden");
- Scanner eingabe = new Scanner(System.in);
- int e = eingabe.nextInt();
- switch (e) {
- case 1:
- naechsteRunde(wurf, jaNein, restwuerfe, summe, status);
- durchlauf++;
- break;
- case 2:
- zeigeUeberblick(status);
- break;
- case 3:
- zeigeAnleitung();
- break;
- case 4:
- brecheneEndpunkte(status);
- ende = true;
- break;
- }
- if (ende == false) {
- if (durchlauf <= 6) {
- menu(summe, durchlauf, status);
- } else {
- brecheneEndpunkte(status);
- }
- }
- }
- public static void main(String[] args) {
- int[][] status = new int[6][6];
- // JaNein sagt ob ich mit den würfel weitermache oder nicht
- // restwürfe = 2 weil mit der 0 sinds 3
- int[] summe = new int[6]; // summe[] = 6 weil 1,2,3,4,5,6 Augen
- int durchlauf = 1;
- menu(summe, durchlauf, status);
- }
- public static void zeigeAnleitung() {
- System.out.println("Anleitung");
- System.out
- .println("In jeder Spielrunde werden mit fünf Würfeln drei Würfe gemacht.");
- System.out
- .println("Nach jedem Wurf kann der Spieler entscheiden, mit welchen Würfeln er weiter würfeln mag.");
- System.out
- .println("Am Ende einer Runde muss der Spieler seine erwürfelten Zahlen einer Kategorie zuordnen.");
- System.out
- .println("Die Kategorien sind Einser, Zweier, Dreier, Vierer,Fünfer und Sechser.");
- System.out
- .println("Bei jeder Kategorie werden die entsprechenden Zahlen zusammengezählt und eingetragen.");
- }
- public static void print(int[] array) {
- for (int i = 0; i < array.length - 1; i++) {
- System.out.print(array[i] + ", ");
- }
- if (array.length > 0)
- System.out.print(array[array.length - 1]);
- }
- public static int[] wuerfeln(int[] wurf, int[] jaNein) {
- for (int i = 0; i < wurf.length; i++) { // forschleife läuft ja 5x durch
- // weil wir 5 würfel haben
- if (jaNein[i] == 0) // jaNein wird ebenfalls "hochgezählt"
- // wenn 0 ersetzt er einfach den aktuellen wert
- // vom wurf[] array mit der (int)
- // Math.random()*6)+1 funktion
- wurf[i] = (int) (Math.random() * 6) + 1; // in Wurf kommt eine
- // Zahl zwischen 1-6
- // rein
- }
- return wurf;
- }
- public static void naechsteRunde(int wurf[], int[] jaNein, int wuerfe,
- int[] summe, int[][] status) {
- wurf = wuerfeln(wurf, jaNein);
- System.out.println("wuerfe: " + wuerfe);
- System.out.println("Es wird gewürfelt:");
- for (int i = 0; i < wurf.length; i++) {
- System.out.println("Würfel[" + (i + 1) + "]: " + wurf[i] + " ");
- // für die Ausgabe der Würfel
- }
- // Festlegen von JaNein
- if (wuerfe > 0) {
- System.out
- .println("Geben Sie ein 0 für weiterspielen und 1 für Weglegen.");
- for (int i = 0; i < wurf.length; i++) {
- System.out.println("Wollen Sie Würfel[" + (i + 1)
- + "] weglegen?");
- boolean gelegt = false;
- while (gelegt == false) {
- Scanner eingabe = new Scanner(System.in);
- int e = eingabe.nextInt();
- if (e == 1 || e == 0) {
- jaNein[i] = e;
- gelegt = true;
- } else
- System.out
- .println("Nur 0 für Weiterwürfeln oder 1 für Würfel weglegen eingeben!");
- }
- }
- naechsteRunde(wurf, jaNein, wuerfe - 1, summe, status); // Aufruf
- // der
- // Funktion
- // für das
- // Weiterspielen
- }
- if (wuerfe == 0) {
- System.out
- .println("Für welche Kategorie soll das Würfelergebnis eingetragen werden?");
- int k = 0;
- boolean richtig = false;
- do {
- do {
- Scanner eingabe = new Scanner(System.in);
- k = eingabe.nextInt();
- } while (k != 1 && k != 2 && k != 3 && k != 4 && k != 5
- && k != 6);
- if (status[k - 1][5] == 0) {
- for (int x = 0; x < 5; x++) {
- status[k - 1][x] = wurf[x];
- }
- status[k - 1][5] = 1;
- richtig=true;
- }
- else{
- System.out.println("Kategorie schon belegt, bitte andere Kategorie auswählen");
- }
- } while (richtig == false);
- }
- // Ab hier sind keine Würfelrunden mehr verfügbar, der Spieler muss sich
- // Entscheiden Welche Nummern er jetzt einträgt.
- // erste schleife läuft von 1 - 6, für die Augenanzahl
- /*
- * for (int punkte = 1; punkte <= 6; punkte++) {
- *
- * // Zweite schleife prüft wie oft die Punkte im Array wurf[] //
- * vorkommen. for (int wurfindex = 0; wurfindex < wurf.length;
- * wurfindex++) { // jetzt werden die Punkte (1 - 6) mit dem inhalt von
- * // wurf[wurfindex] abgeglichen. // Sind Sie gleich werden Sie
- * addiert.
- *
- * // Daher neuer Array von 0-5; 0=1er, 1= 2er ... 5 = 6er. Muss // noch
- * addiert werden. if (wurf[wurfindex] == punkte) { summe[punkte - 1] =
- * summe[punkte - 1] + punkte;
- *
- * }
- *
- * }
- */
- // Jetzt sind die Punkte für diese Runde soweit aufaddiert. Jetzt
- // kann der Benutzer eingeben, welche Punkte er sich anrechnen
- // lassen möchte.
- // Das geht jedoch nur, wenn er bisher keine Punkte angerechnet hat
- // und wenn er auch tatsächlich Punkte gutgeschrieben hat.
- }
- public static void zeigeUeberblick(int[][] status) {
- for (int k = 0; k < 6; k++) {
- int zwerg = 0; // Zwischenergebnis
- System.out.print("Kat. " + k+1 + ": ");
- print(status[k]);
- System.out.print(" => ");
- for (int j = 0; j < 5; j++) {
- if (status[k][j] == k + 1) {
- zwerg = zwerg + status[k][j];
- }
- }
- System.out.print(zwerg + "\n");
- }
- }
- public static void brecheneEndpunkte(int[][] status) {
- int ergebniss = 0;
- for (int i = 0; i < 6; i++) {
- if (status[i][0] == 0) {
- } else {
- for (int j = 0; j < 5; j++) {
- if (status[i][j] == i + 1) {
- ergebniss = ergebniss + status[i][j];
- }
- }
- }
- }
- if (ergebniss > 63)
- ergebniss = +35;
- if (ergebniss == 0)
- System.out.println("Programm wird beendet");
- else
- System.out.println("Es wurden " + ergebniss + " Punkte erzielt.");
- }
- }
Add Comment
Please, Sign In to add comment