Schnick Schnack Schnuck – Stein, Schere, Papier – Java Applet
In unserer Serie “Programmierung mit Java” soll es weitergehen. Nachdem SHOKer euch mit einem Java Applet für sein Spiel Reversi versorgt hat, möchte ich mit einem Anfänger-Applet nachlegen.
Dabei wird das Spiel Schnick Schnack Schnuck simuliert. Es wird dabei zufällig eine Zahl 0, 1 oder 2 generiert. 0 steht dabei für Stein, 1 für Schere und 2 für Papier.
Zunächst sollen jedoch die Namen von Spieler 1 und Spieler 2 eingegeben werden sowie festgelegt werden, wieviele Runden gespielt werden sollen. Wenn auf den Button geklickt wird, sollen die Runden gespielt werden und ein Ergebnis angezeigt werden.
So funktionierts
1. Random hinzufügen: Damit wir Zufallswerte bekommen, muss man etwas importieren.
import java.util.Random;
2. Variablen definieren:
private int zufall1, zufall2, a, b; private String runden; Random randomizer1 = new Random(); Random randomizer2 = new Random();
- zufall: Ermittelt den Zufallswert für Spieler 1
- zufall2: Ermittelt den Zufallswert für Spieler 2
- a: Gewinnt ein Spieler, wird die Variable um 1 erhöht (gleiches gilt für b)
- runden: nicht zwingend notwendig; holt nur den Wert vom Textfeld “tfrunden”
- Random randomizer1: ermittelt den Zufallswert, welcher später unter zufall1 gespeichert wird
3. Das Programm
runden = tfrunden.getText(); int runde = Integer.parseInt(runden);
Zunächst wird vom Textfeld tfrunden der Wert unter “runden” gespeichert und dann in einen Integer-Wert umgewandelt in “runde”. Dann geht es in die For Schleife. int i wird dem Wert 0 zugewiesen und solange i kleiner als der int runde ist, soll die Schleife durchgelaufen werden.
for (int i = 0; i < runde; i++) { zufall1 = randomizer1.nextInt(3); zufall2 = randomizer2.nextInt(3); if ((zufall1==0) && (zufall2==1)) a++; if ((zufall1==1) && (zufall2==2)) a++; if ((zufall1==2) && (zufall2==0)) a++; if ((zufall1==0) && (zufall2==2)) b++; if ((zufall1==1) && (zufall2==0)) b++; if ((zufall1==2) && (zufall2==1)) b++; }
Zum Schluss muss es nur nach ausgegeben werden
ausgabe();
Was ausgabe(); macht, wird hier festgelegt:
private void ausgabe() { if (a==b) tfsieger.setText("Unentschieden"); else if (a>b) tfsieger.setText(tfspielera.getText() + " hat gewonnen"); else tfsieger.setText(tfspielerb.getText() + " hat gewonnen"); }
Und schon ist das Spiel fertig.