Advertisement
Guest User

Untitled

a guest
Nov 2nd, 2020
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.55 KB | None | 0 0
  1.  
  2. /** Papier Schere Stein
  3. * Marten Räßler
  4. * 31.10.2020,14:20
  5. */
  6. import basis.*; //Hier werden die Import Pakete eingefügt, die für die Erstellung des Fensters und den Zuallsgenerator zuständig sind
  7. import java.awt.*;
  8. import java.util.Random;
  9.  
  10.  
  11. public class Spiel {
  12. //Deklaration
  13. private Fenster fenster;
  14. private Fenster fenster1;
  15.  
  16.  
  17. private Knopf kPapier;
  18.  
  19. private Knopf kStein;
  20.  
  21. private Knopf kSchere;
  22.  
  23. private Knopf kEnde;
  24.  
  25. private Knopf kHilfe;
  26.  
  27. private Knopf kHilfeEnde;
  28.  
  29. private Knopf kZurücksetzen;
  30.  
  31. private Knopf kZufall;
  32.  
  33. private ZahlenFeld zahlenfeld;
  34. private ZahlenFeld zahlenfeld0;
  35.  
  36. private TextFeld textFeld;
  37. private TextFeld textFeld1;
  38.  
  39.  
  40. private BeschriftungsFeld bf;
  41. private BeschriftungsFeld bf1;
  42. private BeschriftungsFeld bf2;
  43. private BeschriftungsFeld bf3;
  44. private BeschriftungsFeld bf4;
  45. private BeschriftungsFeld bf5;
  46. public Spiel() {
  47. this.initGui(); // Hiermit werden die Befehle in public void initGui() ausgeführt um das Fenster zu erzeugen
  48. this.spielStart(); // Startet das Spiel
  49. }
  50.  
  51. public void initGui() {
  52. fenster = new Fenster("Papier Schere Stein", 395, 200); //Erzeugt das Fenster, indem das Spiel gespielt wird
  53. kStein = new Knopf("Stein", 40, 110, 80, 30); //Erzeugt die Knöpfe: Stein, Schere, Papier, Ende, Hilfe und Spiel Reset
  54. kSchere = new Knopf("Schere", 40, 70, 80, 30);
  55. kPapier = new Knopf("Papier", 40, 30, 80, 30);
  56. kEnde = new Knopf("Ende", 240, 160, 150, 30);
  57. kHilfe = new Knopf("Hilfe", 140, 160, 80, 30);
  58. kZurücksetzen = new Knopf("Spiel Reset", 260, 120, 130, 30);
  59. kZufall = new Knopf("Zufall",40,160,80,30);
  60. fenster.setzeHintergrundFarbe(Color.gray); //Ändert die Hintergrundfarbe des Fensters auf Grau
  61. kEnde.setzeSchriftFarbe(Color.red); //Ändert die Schriftfarbe vom Ende Knopf auf rot
  62.  
  63. zahlenfeld0 = new ZahlenFeld(140, 110, 40, 30); //Erzeugt die Zahlenfelder für den Punktezähler und setzt diese auf 0
  64. zahlenfeld0.setzeZahl(0);
  65. zahlenfeld = new ZahlenFeld(210, 110, 40, 30);
  66. zahlenfeld.setzeZahl(0);
  67. zahlenfeld.setzeSchriftFarbe(Color.blue); //Ändert die Schriftfarbe des Punktezählers auf Blau
  68. zahlenfeld0.setzeSchriftFarbe(Color.blue);
  69.  
  70.  
  71. textFeld = new TextFeld(140, 30, 180, 30); //Erzeugt das Textfeld, welches anzeigt, ob man Gewonnen/Verloren/Unentschieden hat
  72. textFeld.setzeText("Spielstart"); //Setzt das Textfeld am Anfang auf "Spielstart"
  73.  
  74.  
  75. textFeld1 = new TextFeld(140, 70, 180, 30); //Erstellt das zweite Textfeld, welches anzeigt wer führt
  76.  
  77.  
  78. bf = new BeschriftungsFeld(":", 190, 110, 10, 30); //Erstellt ein Beschrifungsfeld, welches einen ":" zwischen die Punkte vom Spieler und Computer setzt
  79. }
  80.  
  81.  
  82. public void spielStart() {
  83.  
  84. boolean ende = false; //Setzt einen boolean (ende) der die while-schleife steuert
  85.  
  86.  
  87. int zufall; //Erstellt den integer zufall
  88.  
  89. int zufall1;
  90.  
  91. int counterPlayer = 0; //Erstellt die beiden Integer, die den Punktezähler für Spieler und Computer bildet und setzt sie auf 0
  92. int counterCom = 0;
  93.  
  94. Random wuerfel = new Random(); //Erzeugt den Zufallsgenerator
  95. Random wuerfel1 = new Random();
  96.  
  97. String eingabeSpieler1 = ""; //Erstellt die strings eingabeSpieler 1 und 2
  98. String eingabeSpieler2 = "";
  99.  
  100.  
  101. while (!ende) { //Erstellt eine while-Schleife, die solange läuft, bis ende auf true gesetzt wird
  102.  
  103. Hilfe.kurzePause(); //Sorgt dafür, dass sich nicts aufhängt
  104.  
  105.  
  106. if(kZufall.wurdeGedrueckt()) {
  107. zufall1 = wuerfel1.nextInt(3);
  108. }
  109.  
  110.  
  111. zufall = wuerfel.nextInt(3); //Erstellt eine zufällige Zahl von 0 bis 2
  112.  
  113.  
  114. eingabeSpieler1 = ""; //Setzt die strings eingabeSpieler1/2 nach jeder Runde auf "", damit das Spiel nicht bis ins Unendliche läuft
  115. eingabeSpieler2 = "";
  116.  
  117. if (kHilfe.wurdeGedrueckt()) { //Wenn der Knopf "Hilfe" gedrückt wird, wird ein neues Fenster (fenster1) erstellt
  118. fenster1 = new Fenster("Hilfe", 620, 250);
  119. bf1 = new BeschriftungsFeld("So wird gespielt:", 20, -60, 320, 160); //Erstellt Beschriftungsflder, die in fenster1 in verschiedenen Zeilen einen Text ausgeben
  120. bf2 = new BeschriftungsFeld("Drücke einen der Drei Knöpfe: Schere, Stein oder Papier.", 20, -45, 600, 160);
  121. bf3 = new BeschriftungsFeld("Im Textfeld rechts daneben siehst du, ob du gewonnen/verloren hast oder es unentschieden steht.", 20, -30, 600, 160);
  122. bf4 = new BeschriftungsFeld("Darunter siehst du, ob du oder der Computer führt.", 20, -15, 600, 160);
  123. bf5 = new BeschriftungsFeld("Die beiden Zahlen zeigen den Punktestand.", 20, 0, 600, 160);
  124. bf5 = new BeschriftungsFeld("Mit dem Knopf `Ende` kannst du das Spiel beenden.", 20, 30, 600, 160);
  125. kHilfeEnde = new Knopf("Zurück zum Spiel", 420, 200, 150, 30); //Erstellt in fenster1 einen Knopf (Zurück zum Spiel) mit dem man fenster1 wieder schließen kann
  126. bf1.setzeSchriftFarbe(Color.red);
  127. fenster1.setzeHintergrundFarbe(Color.gray);
  128. while (true) { //Erstellt eine while-Schleife mit Hilfe.kurzePause() damit das Spiel nicht einfriert
  129. Hilfe.kurzePause();
  130. if (kHilfeEnde.wurdeGedrueckt()) { //Wenn der Knopf (Zurück zum Spiel) gedrückt wurde wird fenster1 mit fenster1.gibFrei() wieder geschlossen
  131. fenster1.gibFrei();
  132. break;
  133. }
  134. }
  135. }
  136.  
  137. if (kPapier.wurdeGedrueckt()) { //Wenn die Knöpfe Schere/Stein/Papier gedrückt wurden gibt Spieler1 das entsprechende aus
  138. eingabeSpieler1 = "Papier";
  139. }
  140. if (kStein.wurdeGedrueckt()) {
  141. eingabeSpieler1 = "Stein";
  142. }
  143. if (kSchere.wurdeGedrueckt()) {
  144. eingabeSpieler1 = "Schere";
  145. }
  146.  
  147.  
  148. switch (zufall) { //Setzt einen Switch (Zufall) der festlegt, bei welchen Zufallszahlen Spieler2 (Computer)
  149. case 0: //Schere/Stein/Papier ausgibt
  150. eingabeSpieler2 = "Papier";
  151. break;
  152. case 1:
  153. eingabeSpieler2 = "Schere";
  154. break;
  155. case 2:
  156. eingabeSpieler2 = "Stein";
  157. break;
  158. }
  159.  
  160. switch (zufall1) { //Setzt einen Switch (Zufall) der festlegt, bei welchen Zufallszahlen Spieler2 (Computer)
  161. case 0: //Schere/Stein/Papier ausgibt
  162. eingabeSpieler1 = "Papier";
  163. break;
  164. case 1:
  165. eingabeSpieler1 = "Schere";
  166. break;
  167. case 2:
  168. eingabeSpieler1 = "Stein";
  169. break;
  170. }
  171.  
  172.  
  173.  
  174.  
  175.  
  176. if (eingabeSpieler1.equals("Papier") && eingabeSpieler2.equals("Stein")) { //Vergleicht die Eingaben von Spieler 1 und 2
  177. textFeld.setzeText("Gewonnen"); //Lässt das Textfeld ausgeben, ob man Gewonnen/Veroren/Unentschieden hat
  178. counterPlayer = counterPlayer + 2; //Fügt für Sieg/Niederlage/Unentschieden die ensprechenden Punkte für Spieler/Computer fest
  179. counterCom = counterCom + 0;
  180. zahlenfeld.setzeZahl(counterCom); //Aktualiseritdie Punkteanzeige fü Spieler/Computer
  181. zahlenfeld0.setzeZahl(counterPlayer);
  182. textFeld.setzeSchriftFarbe(Color.green); //Passt die Schritfarbe an das Ergebnis an
  183. }
  184. if (eingabeSpieler1.equals("Stein") && eingabeSpieler2.equals("Schere")) {
  185. textFeld.setzeText("Gewonnen");
  186. counterPlayer = counterPlayer + 2;
  187. counterCom = counterCom + 0;
  188. zahlenfeld.setzeZahl(counterCom);
  189. zahlenfeld0.setzeZahl(counterPlayer);
  190. textFeld.setzeSchriftFarbe(Color.green);
  191. }
  192. if (eingabeSpieler1.equals("Schere") && eingabeSpieler2.equals("Papier")) {
  193. textFeld.setzeText("Gewonnen");
  194. counterPlayer = counterPlayer + 2;
  195. counterCom = counterCom + 0;
  196. zahlenfeld.setzeZahl(counterCom);
  197. zahlenfeld0.setzeZahl(counterPlayer);
  198. textFeld.setzeSchriftFarbe(Color.green);
  199. }
  200. if (eingabeSpieler1.equals("Papier") && eingabeSpieler2.equals("Schere")) {
  201. textFeld.setzeText("Verloren");
  202. counterCom = counterCom + 2;
  203. counterPlayer = counterPlayer + 0;
  204. zahlenfeld.setzeZahl(counterCom);
  205. zahlenfeld0.setzeZahl(counterPlayer);
  206. textFeld.setzeSchriftFarbe(Color.red);
  207. }
  208. if (eingabeSpieler1.equals("Schere") && eingabeSpieler2.equals("Stein")) {
  209. textFeld.setzeText("Verloren");
  210. counterCom = counterCom + 2;
  211. counterPlayer = counterPlayer + 0;
  212. zahlenfeld.setzeZahl(counterCom);
  213. zahlenfeld0.setzeZahl(counterPlayer);
  214. textFeld.setzeSchriftFarbe(Color.red);
  215. }
  216. if (eingabeSpieler1.equals("Stein") && eingabeSpieler2.equals("Papier")) {
  217. textFeld.setzeText("Verloren");
  218. counterCom = counterCom + 2;
  219. counterPlayer = counterPlayer + 0;
  220. zahlenfeld.setzeZahl(counterCom);
  221. zahlenfeld0.setzeZahl(counterPlayer);
  222. textFeld.setzeSchriftFarbe(Color.red);
  223. }
  224. if (eingabeSpieler1.equals("Papier") && eingabeSpieler2.equals("Papier")) {
  225. textFeld.setzeText("Unentschieden");
  226. counterCom = counterCom + 1;
  227. counterPlayer = counterPlayer + 1;
  228. zahlenfeld.setzeZahl(counterCom);
  229. zahlenfeld0.setzeZahl(counterPlayer);
  230. textFeld.setzeSchriftFarbe(Color.gray);
  231. }
  232. if (eingabeSpieler1.equals("Schere") && eingabeSpieler2.equals("Schere")) {
  233. textFeld.setzeText("Unentschieden");
  234. counterCom = counterCom + 1;
  235. counterPlayer = counterPlayer + 1;
  236. zahlenfeld.setzeZahl(counterCom);
  237. zahlenfeld0.setzeZahl(counterPlayer);
  238. textFeld.setzeSchriftFarbe(Color.gray);
  239. }
  240. if (eingabeSpieler1.equals("Stein") && eingabeSpieler2.equals("Stein")) {
  241. textFeld.setzeText("Unentschieden");
  242. counterCom = counterCom + 1;
  243. counterPlayer = counterPlayer + 1;
  244. zahlenfeld.setzeZahl(counterCom);
  245. zahlenfeld0.setzeZahl(counterPlayer);
  246. textFeld.setzeSchriftFarbe(Color.gray);
  247. }
  248. if (kZurücksetzen.wurdeGedrueckt()) { //Wenn der Knopf (Spiel Reset) gedrückt wird, wir das Spiel wieder auf 0 gesetzt
  249. counterCom = 0; //Setzt die Punkte der Spieler wieder auf 0
  250. counterPlayer = 0;
  251. zahlenfeld.setzeZahl(counterCom); //Aktualisiert die Punkteanzeige für Spieler 1 und 2
  252. zahlenfeld0.setzeZahl(counterPlayer);
  253. textFeld.setzeText("Spielstart"); //Setzt das Textfeld wieder auf Spielstart und ändert die Schriftfarbe wieder auf Grau
  254. textFeld.setzeSchriftFarbe(Color.gray);
  255. }
  256. if (kEnde.wurdeGedrueckt()) { //Wenn Ende gedrückt wurde, wird der boolean ende auf true gesetzt und die while-Schleife wird verlassen
  257. ende = true;
  258. }
  259. if (counterCom < counterPlayer) { //Wenn die Punkte des Spielers höher sind, als die des Computers zeigt das Textfeld an, wer führt
  260. textFeld1.setzeText("Der Spieler führt");
  261. textFeld1.setzeSchriftFarbe(Color.green); //Passt die Schritfarbe an das Ergebnis an
  262. }
  263. if (counterCom > counterPlayer) { //Wenn die Punkte des Computers höher sind, als die des Spielers zeigt das Textfeld an, wer führt
  264. textFeld1.setzeText("Der Computer führt");
  265. textFeld1.setzeSchriftFarbe(Color.red);
  266. }
  267. if (counterCom == counterPlayer) { //Wenn der Spieler und der Computer gleich viele Punkte haben, zeigt das Textfeld an, dass Gleichstand steht
  268. textFeld1.setzeText("Gleichstand");
  269. textFeld1.setzeSchriftFarbe(Color.gray);
  270. }
  271. }
  272. fenster.gibFrei(); //Wenn die While-Schleife in der das Spiel läuft verlassen wird wir das Fenster mit fenster.gibFrei()
  273. } //geschlossen und das Spiel beendet
  274.  
  275. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement