# Schere Stein Papier Spiel



## kamil.winter (18. Okt 2012)

```
import java.awt.*;
import java.awt.event.*;
import java.applet.*;

public class SchereSteinPapier1          // -- Unser neues Elaborat
    extends Applet                  // -- .. ist ein Applet
    implements ActionListener       // -- .. und reagiert auf Knopfdruck
    
    {public static void main(String[] args) {
    }
    // "globale" Variablen
    TextField eingabeFeld = null;   // -- das im GUI erscheinende Eingabefeld
    Button druckKnopf = null;       // -- der Druckknopf, auf den wir reagieren
    String Wahl = "";  // -- der Text aus dem Eingabefeld

    /*
     * init() wird EINMAL beim Start des Applets aufgerufen. Hier wird das
     * Graphical User Interface (GUI) angelegt. Zuerst ein Eingabefeld, dann
     * einen Druckknopf. Fuer den Druckknopf bezeichnen wir uns selbst ("this")
     * als zustaendig, sollte er betaetigt werden.
     */
    public void init() {
        // Groesse der Zeichenflaeche festlegen
        setSize(320, 205);
        setMinimumSize(getSize());
        // Beschriftung erzeugen und einfuegen
        Label aufforderung = new Label("Eingabe: ");
        this.add(aufforderung);
        // Eingabefeld erzeugen und einfuegen
        eingabeFeld = new TextField(Wahl, 20);
        this.add(eingabeFeld);
        // Druckknopf erzeugen und einfuegen
        druckKnopf = new Button("Los");
        this.add(druckKnopf);
        // Der Druckknopf soll actionPerformed() aufrufen, wenn er gedrueckt wird.
        druckKnopf.addActionListener(this);
    }

    /*
     * Diese Methode wird aufgerufen, sobald der Druckknopf betaetigt wird. Das
     * gemeldete "ereignis" enthaelt als Quelle (source) den Eingabeknopf, der
     * den Aufruf ausgeloest hat. Da wir nur einen Knopf haben intressiert es
     * uns nicht im Detail. Es muss jedoch trotzdem entgegengenommen werden.
     */
    public void actionPerformed(ActionEvent ereignis) {
        // -- lies die Information aus dem Eingabefeld aus.
    	Wahl = eingabeFeld.getText();
        // -- jetzt kann hier etwas gerechnet werden ...
        // -- und wenn wir damit fertig geworden sind,
        // -- veranlassen wir das Neuzeichnen des Applets.
        this.repaint();
        
    }

    /*
     * Neuzeichnen des Applet-Inhalts. Diese Methode wird jedes Mal aufgerufen,
     * wenn das Fenster veraendert wird (z.B. Groesse) oder wenn repaint()
     * aufgerufen wird.
     */
    public void paint(Graphics g) {
    	
        int wahlComputer = (int)(Math.random()*3);
        int wahlSpieler = Integer.parseInt(Wahl);
        
        final int Schere = 0;
        final int Stein = 1;
        final int Papier = 2;
        String resultat= "";
     
       
        if ( wahlSpieler == Schere ) {
        	if (wahlComputer == Schere){
        	 resultat = "Unentschieden";
        	}else if (wahlComputer == Stein){
        	resultat = "Computer gewinnt";
            } else if (wahlComputer == Papier){
        	resultat = "Spieler gewinnt";
        	}
        } else  {	
        	if ( wahlSpieler == Stein ) {
        	if (wahlComputer == Schere){
           	 resultat = "Spieler gewinnt";
           	} else if (wahlComputer == Stein){
           	resultat = "Unentschieden";
               } else if (wahlComputer == Papier){
           	resultat = "Computer gewinnt";
           	}
           } else  {	
            if ( wahlSpieler == Papier ) {
            if (wahlComputer == Schere){
               	 resultat = "Computer gewinnt";
               	} else if (wahlComputer == Stein){
               	resultat = "Spieler gewinnt";
                   } else if (wahlComputer == Papier){
               	resultat = "Unentschieden";
               	}
               }
        }}
       	
        g.drawString("Spieler: " + wahlSpieler, 10, 50);
        g.drawString("Computer: " + wahlComputer, 10, 70);
        g.drawString("Resultat: " + resultat, 10, 90);
       
    }
}
```


----------



## eRaaaa (18. Okt 2012)

Frage?


----------



## kamil.winter (18. Okt 2012)

Ja, wie kann ich die Logik des spiels mit switch-Konstrukt implementieren??


----------



## Marcinek (18. Okt 2012)

Javabeginners - switch-case-Verzweigung

Ziemllich viel Logik in der Paint methode -.-


----------

