Guest User

Untitled

a guest
Jul 21st, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.57 KB | None | 0 0
  1. import java.util.Scanner;
  2.  
  3. public class Kniffel {
  4.  
  5. // beim letzten mal auswerten
  6. public static Scanner read = new Scanner(System.in);
  7. public static int sum;
  8. public static int[] score = { -1, -1, -1, -1, -1, -1 };// -1 bedeutet, das
  9.  
  10. // an der jeweiligen
  11. // stelle im score (
  12. // was die kategorie
  13. // darstellt) noch
  14. // nichts
  15. // reingeschrieben
  16. // wurde
  17.  
  18. // wird in der methode ueberblick() benötigt
  19. public static boolean choose() { // damit das Menü immer nach einer Runde
  20. // aufgerufen wird. Siehe Main
  21.  
  22. int temp = read.nextInt();
  23. switch (temp) {
  24. // die cases werden unser spielmenü
  25. case 1:
  26. boolean darfNochmal = false;
  27. // Spieler kann nur noch spielen wenn eine Kategorie frei ist
  28. for (int j = 0; j < score.length; j++) {
  29. if (score[j] == -1) { // falls der Spieler noch eine Runde
  30. // spielen darf
  31. darfNochmal = true;
  32.  
  33. }
  34. }
  35. if (darfNochmal == true) {
  36. play();
  37. } else {
  38. System.out.println("Darf nicht mehr spielen!");
  39. }
  40. play();
  41. return false;
  42.  
  43. case 2:
  44. ueberblick(score);
  45. return false;
  46. case 3:
  47. anleitung();
  48. return false;
  49. case 4:
  50. print(score);
  51. return true; // beendet das Spiel
  52.  
  53. default:
  54. System.out.println("Zahl gibt es nicht!");// Bei Ausnahmefällen wenn
  55. // die Zahl 10 ist
  56. return false;
  57.  
  58. }
  59.  
  60. }
  61.  
  62. public static void print(int[] array) {
  63. // gibt die kategorien aus und summiert das ergebnis
  64. int score = 0;
  65. for (int i = 0; i < array.length; i++) {
  66. System.out.println("Kategorie " + (i + 1) + " Inhalt " + array[i]);
  67. score += array[i];
  68. }
  69. System.out.println("Ergebnis " + score);
  70. }
  71.  
  72. public static int play() {
  73. int tempzahl;
  74. int[] dices = new int[5];
  75. // im hilfsarray dicepos speichern wir die zu merkenden würfel
  76. int[] dicepos = new int[5];
  77.  
  78. for (int i = 0; i < 3; i++) {
  79. // wir würfeln 3 runden
  80. sum = 0;
  81. System.out.println("Runde " + (i + 1));
  82. if (i > 0) {
  83. // nach der 1. spielrunde können wir würfel zurücklegen
  84. // System.arraycopy(dices , 0 , dicepos, 0, dices.length);
  85. for (int k = 0; k < dicepos.length; k++) {
  86. // macht das hilfsarray wieder leer
  87. dices[k] = dicepos[k];
  88. dicepos[k] = 0;
  89. }
  90. }
  91. for (int j = 0; j < dices.length; j++) {
  92. // erstellt zufallszahlen falls der inhalt im array = 0 ist
  93. if (dices[j] == 0) {
  94. dices[j] = wuerfeln();
  95. }
  96. System.out.print(dices[j] + " ");
  97. }
  98. System.out.println();
  99. if (i < 2) {
  100. // i< 2 weil man nur nach den ersten beiden würfen zahlen merken
  101. // kann
  102. System.out
  103. .println("Bitte zu merkende Zahlenstelle eingeben : ");
  104. tempzahl = dices[read.nextInt()];
  105. for (int j = 0; j < dices.length; j++) {
  106. // wenn die ausgewählt zahl im array ist wird sie ins
  107. // hilfsarray kopiert
  108. if (dices[j] == tempzahl) {
  109. dicepos[j] = tempzahl;
  110. }
  111. System.out.print(dicepos[j] + " ");
  112. }
  113. System.out.println();
  114. } else if (i == 2) {
  115. // man kann nicht dieselbe kategorie nochmals belegen
  116. boolean empty = false;
  117. while (empty == false) {
  118. empty = true;
  119. System.out.println("Bitte Kategorie auswählen : ");
  120. tempzahl = dices[read.nextInt()];
  121. for (int j = 0; j < dices.length; j++) {
  122. // berechnet die summe
  123. if (dices[j] == tempzahl) {
  124. sum += tempzahl;
  125. }
  126. }
  127. empty = addscore(score, tempzahl, sum, empty);
  128. }
  129. }
  130. System.out.println();
  131. }
  132. return sum;
  133. }
  134.  
  135. public static boolean addscore(int[] array, int tempzahl, int sum,
  136. boolean empty) {
  137. // addiert die summe also das ergebnis eines spiels in das score array
  138. // fängt ab ob die kategorie schon belegt ist
  139. if (array[tempzahl - 1] == 0) {
  140. array[tempzahl - 1] = sum;
  141. } else {
  142. System.out.println("Kategorie schon belegt. Bitte neu wählen");
  143. empty = false;
  144. }
  145. System.out.println("Kategorie : " + tempzahl + "\nInhalt : "
  146. + array[tempzahl - 1]);
  147. return empty;
  148. }
  149.  
  150. static void printmenu() {
  151.  
  152. System.out.println("1. Nächste Spielrunde");
  153. System.out.println("2. Überblick");
  154. System.out.println("3. Anleitung");
  155. System.out.println("4. Spiel beenden");
  156.  
  157. }
  158.  
  159. static int wuerfeln() {
  160.  
  161. return (int) ((Math.random() * 6) + 1);
  162. }
  163.  
  164. static void anleitung() {
  165.  
  166. System.out.println("Jede Runde darf dreimal gewürfelt werden. Es ist ");
  167. System.out.println("erlaubt, nur mit manchen Würfeln zu würfeln. ");
  168. System.out.println("Am Ende jeder Runde muss das Ergebnis in eine der");
  169. System.out.println("folgenden Kategorien geschrieben werden: ");
  170. System.out.println("Einser, Zweier, Dreier, Vierer, Fünfer, Sechser. ");
  171. System.out.println("Es zählen jeweils alle Augen der jew. Sorte. ");
  172. System.out.println("Bei insg. mehr als 63 Punkten gibt es einen Bonus");
  173. System.out.println("von 35 Punkten obendrauf. ");
  174.  
  175. }
  176.  
  177. static void ueberblick(int[] array) {
  178.  
  179. for (int i = 0; i < array.length; i++) {
  180.  
  181. // wenn -1 true ist, dann beweist das, dass in der Kategorie noch
  182. // nichts eingetragen ist
  183. if (array[i] == -1) {
  184. System.out.println("In der Kategorie" + (i + 1)
  185. + "er ist noch nichts enthalten!");
  186.  
  187. } else {
  188.  
  189. System.out.println("Kategorie:" + (i + 1) + "er" + array[i]);
  190. }
  191.  
  192. }
  193.  
  194. }
  195.  
  196. public static void main(String[] args) {
  197. System.out.println("Das Kniffelspiel bitte wählen sie :");
  198.  
  199. boolean beende = false;
  200. // Ruft Spielmenü solange auf bis Spieler Spiel von selsbt beendet
  201.  
  202. while (beende == false) {
  203. printmenu();
  204.  
  205. beende = choose();
  206. }
  207.  
  208. }
  209.  
  210. }
Add Comment
Please, Sign In to add comment