Guest User

Untitled

a guest
Jul 21st, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.44 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. public class Kniffel {
  4.  
  5. public static void menu(int[] summe, int durchlauf,
  6. int[][] status) {
  7. boolean ende = false;
  8. int[] wurf = new int[5]; // wurf = du hast 5 würfel
  9. int[] jaNein = { 0, 0, 0, 0, 0 };
  10. int restwuerfe = 2;
  11. System.out.println("Menue");
  12. System.out.println("Runde " + durchlauf);
  13. System.out
  14. .println("Geben sie eine von Zahl von 1 bis 4 ein um den gewünschten Menüpunkt auszuführen: ");
  15. System.out.println("1. Nächste Spielrunde");
  16. System.out.println("2. Überblick");
  17. System.out.println("3. Anleitung");
  18. System.out.println("4. Spiel beenden");
  19. Scanner eingabe = new Scanner(System.in);
  20. int e = eingabe.nextInt();
  21.  
  22. switch (e) {
  23. case 1:
  24. naechsteRunde(wurf, jaNein, restwuerfe, summe, status);
  25. durchlauf++;
  26. break;
  27. case 2:
  28. zeigeUeberblick(status);
  29. break;
  30. case 3:
  31. zeigeAnleitung();
  32. break;
  33. case 4:
  34. brecheneEndpunkte(status);
  35. ende = true;
  36. break;
  37.  
  38. }
  39. if (ende == false) {
  40. if (durchlauf <= 6) {
  41. menu(summe, durchlauf, status);
  42. } else {
  43. brecheneEndpunkte(status);
  44. }
  45. }
  46. }
  47.  
  48. public static void main(String[] args) {
  49. int[][] status = new int[6][6];
  50.  
  51.  
  52. // JaNein sagt ob ich mit den würfel weitermache oder nicht
  53. // restwürfe = 2 weil mit der 0 sinds 3
  54. int[] summe = new int[6]; // summe[] = 6 weil 1,2,3,4,5,6 Augen
  55. int durchlauf = 1;
  56. menu(summe, durchlauf, status);
  57.  
  58. }
  59.  
  60. public static void zeigeAnleitung() {
  61. System.out.println("Anleitung");
  62. System.out
  63. .println("In jeder Spielrunde werden mit fünf Würfeln drei Würfe gemacht.");
  64. System.out
  65. .println("Nach jedem Wurf kann der Spieler entscheiden, mit welchen Würfeln er weiter würfeln mag.");
  66. System.out
  67. .println("Am Ende einer Runde muss der Spieler seine erwürfelten Zahlen einer Kategorie zuordnen.");
  68. System.out
  69. .println("Die Kategorien sind Einser, Zweier, Dreier, Vierer,Fünfer und Sechser.");
  70. System.out
  71. .println("Bei jeder Kategorie werden die entsprechenden Zahlen zusammengezählt und eingetragen.");
  72.  
  73. }
  74.  
  75. public static void print(int[] array) {
  76. for (int i = 0; i < array.length - 1; i++) {
  77. System.out.print(array[i] + ", ");
  78. }
  79. if (array.length > 0)
  80. System.out.print(array[array.length - 1]);
  81. }
  82.  
  83. public static int[] wuerfeln(int[] wurf, int[] jaNein) {
  84.  
  85. for (int i = 0; i < wurf.length; i++) { // forschleife läuft ja 5x durch
  86. // weil wir 5 würfel haben
  87. if (jaNein[i] == 0) // jaNein wird ebenfalls "hochgezählt"
  88. // wenn 0 ersetzt er einfach den aktuellen wert
  89. // vom wurf[] array mit der (int)
  90. // Math.random()*6)+1 funktion
  91. wurf[i] = (int) (Math.random() * 6) + 1; // in Wurf kommt eine
  92. // Zahl zwischen 1-6
  93. // rein
  94.  
  95. }
  96. return wurf;
  97. }
  98.  
  99. public static void naechsteRunde(int wurf[], int[] jaNein, int wuerfe,
  100. int[] summe, int[][] status) {
  101.  
  102. wurf = wuerfeln(wurf, jaNein);
  103. System.out.println("wuerfe: " + wuerfe);
  104. System.out.println("Es wird gewürfelt:");
  105. for (int i = 0; i < wurf.length; i++) {
  106. System.out.println("Würfel[" + (i + 1) + "]: " + wurf[i] + " ");
  107. // für die Ausgabe der Würfel
  108. }
  109.  
  110. // Festlegen von JaNein
  111. if (wuerfe > 0) {
  112. System.out
  113. .println("Geben Sie ein 0 für weiterspielen und 1 für Weglegen.");
  114.  
  115. for (int i = 0; i < wurf.length; i++) {
  116. System.out.println("Wollen Sie Würfel[" + (i + 1)
  117. + "] weglegen?");
  118. boolean gelegt = false;
  119. while (gelegt == false) {
  120. Scanner eingabe = new Scanner(System.in);
  121. int e = eingabe.nextInt();
  122. if (e == 1 || e == 0) {
  123. jaNein[i] = e;
  124. gelegt = true;
  125. } else
  126. System.out
  127. .println("Nur 0 für Weiterwürfeln oder 1 für Würfel weglegen eingeben!");
  128.  
  129. }
  130. }
  131.  
  132. naechsteRunde(wurf, jaNein, wuerfe - 1, summe, status); // Aufruf
  133. // der
  134. // Funktion
  135. // für das
  136. // Weiterspielen
  137. }
  138. if (wuerfe == 0) {
  139. System.out
  140. .println("Für welche Kategorie soll das Würfelergebnis eingetragen werden?");
  141. int k = 0;
  142. boolean richtig = false;
  143. do {
  144. do {
  145. Scanner eingabe = new Scanner(System.in);
  146. k = eingabe.nextInt();
  147. } while (k != 1 && k != 2 && k != 3 && k != 4 && k != 5
  148. && k != 6);
  149.  
  150. if (status[k - 1][5] == 0) {
  151. for (int x = 0; x < 5; x++) {
  152. status[k - 1][x] = wurf[x];
  153. }
  154. status[k - 1][5] = 1;
  155. richtig=true;
  156. }
  157. else{
  158. System.out.println("Kategorie schon belegt, bitte andere Kategorie auswählen");
  159. }
  160. } while (richtig == false);
  161.  
  162. }
  163.  
  164. // Ab hier sind keine Würfelrunden mehr verfügbar, der Spieler muss sich
  165. // Entscheiden Welche Nummern er jetzt einträgt.
  166.  
  167. // erste schleife läuft von 1 - 6, für die Augenanzahl
  168. /*
  169. * for (int punkte = 1; punkte <= 6; punkte++) {
  170. *
  171. * // Zweite schleife prüft wie oft die Punkte im Array wurf[] //
  172. * vorkommen. for (int wurfindex = 0; wurfindex < wurf.length;
  173. * wurfindex++) { // jetzt werden die Punkte (1 - 6) mit dem inhalt von
  174. * // wurf[wurfindex] abgeglichen. // Sind Sie gleich werden Sie
  175. * addiert.
  176. *
  177. * // Daher neuer Array von 0-5; 0=1er, 1= 2er ... 5 = 6er. Muss // noch
  178. * addiert werden. if (wurf[wurfindex] == punkte) { summe[punkte - 1] =
  179. * summe[punkte - 1] + punkte;
  180. *
  181. * }
  182. *
  183. * }
  184. */
  185.  
  186. // Jetzt sind die Punkte für diese Runde soweit aufaddiert. Jetzt
  187. // kann der Benutzer eingeben, welche Punkte er sich anrechnen
  188. // lassen möchte.
  189. // Das geht jedoch nur, wenn er bisher keine Punkte angerechnet hat
  190. // und wenn er auch tatsächlich Punkte gutgeschrieben hat.
  191. }
  192.  
  193. public static void zeigeUeberblick(int[][] status) {
  194. for (int k = 0; k < 6; k++) {
  195. int zwerg = 0; // Zwischenergebnis
  196. System.out.print("Kat. " + k+1 + ": ");
  197. print(status[k]);
  198. System.out.print(" => ");
  199. for (int j = 0; j < 5; j++) {
  200. if (status[k][j] == k + 1) {
  201. zwerg = zwerg + status[k][j];
  202. }
  203. }
  204. System.out.print(zwerg + "\n");
  205. }
  206. }
  207.  
  208. public static void brecheneEndpunkte(int[][] status) {
  209. int ergebniss = 0;
  210. for (int i = 0; i < 6; i++) {
  211. if (status[i][0] == 0) {
  212. } else {
  213. for (int j = 0; j < 5; j++) {
  214. if (status[i][j] == i + 1) {
  215. ergebniss = ergebniss + status[i][j];
  216. }
  217. }
  218. }
  219. }
  220. if (ergebniss > 63)
  221. ergebniss = +35;
  222. if (ergebniss == 0)
  223. System.out.println("Programm wird beendet");
  224. else
  225. System.out.println("Es wurden " + ergebniss + " Punkte erzielt.");
  226.  
  227. }
  228.  
  229. }
Add Comment
Please, Sign In to add comment