Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /** Papier Schere Stein
- * Marten Räßler
- * 31.10.2020,14:20
- */
- import basis.*; //Hier werden die Import Pakete eingefügt, die für die Erstellung des Fensters und den Zuallsgenerator zuständig sind
- import java.awt.*;
- import java.util.Random;
- public class Spiel {
- //Deklaration
- private Fenster fenster;
- private Fenster fenster1;
- private Knopf kPapier;
- private Knopf kStein;
- private Knopf kSchere;
- private Knopf kEnde;
- private Knopf kHilfe;
- private Knopf kHilfeEnde;
- private Knopf kZurücksetzen;
- private Knopf kZufall;
- private ZahlenFeld zahlenfeld;
- private ZahlenFeld zahlenfeld0;
- private TextFeld textFeld;
- private TextFeld textFeld1;
- private BeschriftungsFeld bf;
- private BeschriftungsFeld bf1;
- private BeschriftungsFeld bf2;
- private BeschriftungsFeld bf3;
- private BeschriftungsFeld bf4;
- private BeschriftungsFeld bf5;
- public Spiel() {
- this.initGui(); // Hiermit werden die Befehle in public void initGui() ausgeführt um das Fenster zu erzeugen
- this.spielStart(); // Startet das Spiel
- }
- public void initGui() {
- fenster = new Fenster("Papier Schere Stein", 395, 200); //Erzeugt das Fenster, indem das Spiel gespielt wird
- kStein = new Knopf("Stein", 40, 110, 80, 30); //Erzeugt die Knöpfe: Stein, Schere, Papier, Ende, Hilfe und Spiel Reset
- kSchere = new Knopf("Schere", 40, 70, 80, 30);
- kPapier = new Knopf("Papier", 40, 30, 80, 30);
- kEnde = new Knopf("Ende", 240, 160, 150, 30);
- kHilfe = new Knopf("Hilfe", 140, 160, 80, 30);
- kZurücksetzen = new Knopf("Spiel Reset", 260, 120, 130, 30);
- kZufall = new Knopf("Zufall",40,160,80,30);
- fenster.setzeHintergrundFarbe(Color.gray); //Ändert die Hintergrundfarbe des Fensters auf Grau
- kEnde.setzeSchriftFarbe(Color.red); //Ändert die Schriftfarbe vom Ende Knopf auf rot
- zahlenfeld0 = new ZahlenFeld(140, 110, 40, 30); //Erzeugt die Zahlenfelder für den Punktezähler und setzt diese auf 0
- zahlenfeld0.setzeZahl(0);
- zahlenfeld = new ZahlenFeld(210, 110, 40, 30);
- zahlenfeld.setzeZahl(0);
- zahlenfeld.setzeSchriftFarbe(Color.blue); //Ändert die Schriftfarbe des Punktezählers auf Blau
- zahlenfeld0.setzeSchriftFarbe(Color.blue);
- textFeld = new TextFeld(140, 30, 180, 30); //Erzeugt das Textfeld, welches anzeigt, ob man Gewonnen/Verloren/Unentschieden hat
- textFeld.setzeText("Spielstart"); //Setzt das Textfeld am Anfang auf "Spielstart"
- textFeld1 = new TextFeld(140, 70, 180, 30); //Erstellt das zweite Textfeld, welches anzeigt wer führt
- bf = new BeschriftungsFeld(":", 190, 110, 10, 30); //Erstellt ein Beschrifungsfeld, welches einen ":" zwischen die Punkte vom Spieler und Computer setzt
- }
- public void spielStart() {
- boolean ende = false; //Setzt einen boolean (ende) der die while-schleife steuert
- int zufall; //Erstellt den integer zufall
- int zufall1;
- int counterPlayer = 0; //Erstellt die beiden Integer, die den Punktezähler für Spieler und Computer bildet und setzt sie auf 0
- int counterCom = 0;
- Random wuerfel = new Random(); //Erzeugt den Zufallsgenerator
- Random wuerfel1 = new Random();
- String eingabeSpieler1 = ""; //Erstellt die strings eingabeSpieler 1 und 2
- String eingabeSpieler2 = "";
- while (!ende) { //Erstellt eine while-Schleife, die solange läuft, bis ende auf true gesetzt wird
- Hilfe.kurzePause(); //Sorgt dafür, dass sich nicts aufhängt
- if(kZufall.wurdeGedrueckt()) {
- zufall1 = wuerfel1.nextInt(3);
- }
- zufall = wuerfel.nextInt(3); //Erstellt eine zufällige Zahl von 0 bis 2
- eingabeSpieler1 = ""; //Setzt die strings eingabeSpieler1/2 nach jeder Runde auf "", damit das Spiel nicht bis ins Unendliche läuft
- eingabeSpieler2 = "";
- if (kHilfe.wurdeGedrueckt()) { //Wenn der Knopf "Hilfe" gedrückt wird, wird ein neues Fenster (fenster1) erstellt
- fenster1 = new Fenster("Hilfe", 620, 250);
- bf1 = new BeschriftungsFeld("So wird gespielt:", 20, -60, 320, 160); //Erstellt Beschriftungsflder, die in fenster1 in verschiedenen Zeilen einen Text ausgeben
- bf2 = new BeschriftungsFeld("Drücke einen der Drei Knöpfe: Schere, Stein oder Papier.", 20, -45, 600, 160);
- bf3 = new BeschriftungsFeld("Im Textfeld rechts daneben siehst du, ob du gewonnen/verloren hast oder es unentschieden steht.", 20, -30, 600, 160);
- bf4 = new BeschriftungsFeld("Darunter siehst du, ob du oder der Computer führt.", 20, -15, 600, 160);
- bf5 = new BeschriftungsFeld("Die beiden Zahlen zeigen den Punktestand.", 20, 0, 600, 160);
- bf5 = new BeschriftungsFeld("Mit dem Knopf `Ende` kannst du das Spiel beenden.", 20, 30, 600, 160);
- 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
- bf1.setzeSchriftFarbe(Color.red);
- fenster1.setzeHintergrundFarbe(Color.gray);
- while (true) { //Erstellt eine while-Schleife mit Hilfe.kurzePause() damit das Spiel nicht einfriert
- Hilfe.kurzePause();
- if (kHilfeEnde.wurdeGedrueckt()) { //Wenn der Knopf (Zurück zum Spiel) gedrückt wurde wird fenster1 mit fenster1.gibFrei() wieder geschlossen
- fenster1.gibFrei();
- break;
- }
- }
- }
- if (kPapier.wurdeGedrueckt()) { //Wenn die Knöpfe Schere/Stein/Papier gedrückt wurden gibt Spieler1 das entsprechende aus
- eingabeSpieler1 = "Papier";
- }
- if (kStein.wurdeGedrueckt()) {
- eingabeSpieler1 = "Stein";
- }
- if (kSchere.wurdeGedrueckt()) {
- eingabeSpieler1 = "Schere";
- }
- switch (zufall) { //Setzt einen Switch (Zufall) der festlegt, bei welchen Zufallszahlen Spieler2 (Computer)
- case 0: //Schere/Stein/Papier ausgibt
- eingabeSpieler2 = "Papier";
- break;
- case 1:
- eingabeSpieler2 = "Schere";
- break;
- case 2:
- eingabeSpieler2 = "Stein";
- break;
- }
- switch (zufall1) { //Setzt einen Switch (Zufall) der festlegt, bei welchen Zufallszahlen Spieler2 (Computer)
- case 0: //Schere/Stein/Papier ausgibt
- eingabeSpieler1 = "Papier";
- break;
- case 1:
- eingabeSpieler1 = "Schere";
- break;
- case 2:
- eingabeSpieler1 = "Stein";
- break;
- }
- if (eingabeSpieler1.equals("Papier") && eingabeSpieler2.equals("Stein")) { //Vergleicht die Eingaben von Spieler 1 und 2
- textFeld.setzeText("Gewonnen"); //Lässt das Textfeld ausgeben, ob man Gewonnen/Veroren/Unentschieden hat
- counterPlayer = counterPlayer + 2; //Fügt für Sieg/Niederlage/Unentschieden die ensprechenden Punkte für Spieler/Computer fest
- counterCom = counterCom + 0;
- zahlenfeld.setzeZahl(counterCom); //Aktualiseritdie Punkteanzeige fü Spieler/Computer
- zahlenfeld0.setzeZahl(counterPlayer);
- textFeld.setzeSchriftFarbe(Color.green); //Passt die Schritfarbe an das Ergebnis an
- }
- if (eingabeSpieler1.equals("Stein") && eingabeSpieler2.equals("Schere")) {
- textFeld.setzeText("Gewonnen");
- counterPlayer = counterPlayer + 2;
- counterCom = counterCom + 0;
- zahlenfeld.setzeZahl(counterCom);
- zahlenfeld0.setzeZahl(counterPlayer);
- textFeld.setzeSchriftFarbe(Color.green);
- }
- if (eingabeSpieler1.equals("Schere") && eingabeSpieler2.equals("Papier")) {
- textFeld.setzeText("Gewonnen");
- counterPlayer = counterPlayer + 2;
- counterCom = counterCom + 0;
- zahlenfeld.setzeZahl(counterCom);
- zahlenfeld0.setzeZahl(counterPlayer);
- textFeld.setzeSchriftFarbe(Color.green);
- }
- if (eingabeSpieler1.equals("Papier") && eingabeSpieler2.equals("Schere")) {
- textFeld.setzeText("Verloren");
- counterCom = counterCom + 2;
- counterPlayer = counterPlayer + 0;
- zahlenfeld.setzeZahl(counterCom);
- zahlenfeld0.setzeZahl(counterPlayer);
- textFeld.setzeSchriftFarbe(Color.red);
- }
- if (eingabeSpieler1.equals("Schere") && eingabeSpieler2.equals("Stein")) {
- textFeld.setzeText("Verloren");
- counterCom = counterCom + 2;
- counterPlayer = counterPlayer + 0;
- zahlenfeld.setzeZahl(counterCom);
- zahlenfeld0.setzeZahl(counterPlayer);
- textFeld.setzeSchriftFarbe(Color.red);
- }
- if (eingabeSpieler1.equals("Stein") && eingabeSpieler2.equals("Papier")) {
- textFeld.setzeText("Verloren");
- counterCom = counterCom + 2;
- counterPlayer = counterPlayer + 0;
- zahlenfeld.setzeZahl(counterCom);
- zahlenfeld0.setzeZahl(counterPlayer);
- textFeld.setzeSchriftFarbe(Color.red);
- }
- if (eingabeSpieler1.equals("Papier") && eingabeSpieler2.equals("Papier")) {
- textFeld.setzeText("Unentschieden");
- counterCom = counterCom + 1;
- counterPlayer = counterPlayer + 1;
- zahlenfeld.setzeZahl(counterCom);
- zahlenfeld0.setzeZahl(counterPlayer);
- textFeld.setzeSchriftFarbe(Color.gray);
- }
- if (eingabeSpieler1.equals("Schere") && eingabeSpieler2.equals("Schere")) {
- textFeld.setzeText("Unentschieden");
- counterCom = counterCom + 1;
- counterPlayer = counterPlayer + 1;
- zahlenfeld.setzeZahl(counterCom);
- zahlenfeld0.setzeZahl(counterPlayer);
- textFeld.setzeSchriftFarbe(Color.gray);
- }
- if (eingabeSpieler1.equals("Stein") && eingabeSpieler2.equals("Stein")) {
- textFeld.setzeText("Unentschieden");
- counterCom = counterCom + 1;
- counterPlayer = counterPlayer + 1;
- zahlenfeld.setzeZahl(counterCom);
- zahlenfeld0.setzeZahl(counterPlayer);
- textFeld.setzeSchriftFarbe(Color.gray);
- }
- if (kZurücksetzen.wurdeGedrueckt()) { //Wenn der Knopf (Spiel Reset) gedrückt wird, wir das Spiel wieder auf 0 gesetzt
- counterCom = 0; //Setzt die Punkte der Spieler wieder auf 0
- counterPlayer = 0;
- zahlenfeld.setzeZahl(counterCom); //Aktualisiert die Punkteanzeige für Spieler 1 und 2
- zahlenfeld0.setzeZahl(counterPlayer);
- textFeld.setzeText("Spielstart"); //Setzt das Textfeld wieder auf Spielstart und ändert die Schriftfarbe wieder auf Grau
- textFeld.setzeSchriftFarbe(Color.gray);
- }
- if (kEnde.wurdeGedrueckt()) { //Wenn Ende gedrückt wurde, wird der boolean ende auf true gesetzt und die while-Schleife wird verlassen
- ende = true;
- }
- if (counterCom < counterPlayer) { //Wenn die Punkte des Spielers höher sind, als die des Computers zeigt das Textfeld an, wer führt
- textFeld1.setzeText("Der Spieler führt");
- textFeld1.setzeSchriftFarbe(Color.green); //Passt die Schritfarbe an das Ergebnis an
- }
- if (counterCom > counterPlayer) { //Wenn die Punkte des Computers höher sind, als die des Spielers zeigt das Textfeld an, wer führt
- textFeld1.setzeText("Der Computer führt");
- textFeld1.setzeSchriftFarbe(Color.red);
- }
- if (counterCom == counterPlayer) { //Wenn der Spieler und der Computer gleich viele Punkte haben, zeigt das Textfeld an, dass Gleichstand steht
- textFeld1.setzeText("Gleichstand");
- textFeld1.setzeSchriftFarbe(Color.gray);
- }
- }
- fenster.gibFrei(); //Wenn die While-Schleife in der das Spiel läuft verlassen wird wir das Fenster mit fenster.gibFrei()
- } //geschlossen und das Spiel beendet
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement