public class Schlangenspiel extends Spielfeld { public static void main(String[] args) { // Positionen der Spielsteine (anfangs: 0 = Startposition): int player0 = 0, player1 = 0; int currentPlayer = 0; // aktueller Spieler (0 oder 1) paintField(player0, player1); // Spielfeld erstmals mit Startpositionen while (player0 < 35 && player1 < 35) { // -> solange keiner gewonnen hat // Würfeln und Zielfeld aus Wurf berechnen: int wurf = dice(); // Wurf int zielfeld; // aus Position und Wurf berechnete neue Position if (currentPlayer == 0) { zielfeld = player0 + wurf; player0 = zielfeld; // neue Poisition zuweisen } else { zielfeld = player1 + wurf; player1 = zielfeld; // neue Poisition zuweisen } // Ausgabe: write("Spieler " + (currentPlayer+1) + " würfelt " + wurf + " und kommt auf Feld " + zielfeld + "."); // Schlangen und Leitern beachten (ggf. mehrere hintereinander): if (zielfeld > 0 && zielfeld < 35) { // -> nur Felder zwischen 0 und 35 können Leitern/Schlangen sein while (zielfeld % 5 == 0 || zielfeld % 7 == 0) { // -> solange man auf einer Schlange oder Leiter landet paintField(player0, player1); // letzte Position zeichnen if (zielfeld % 5 == 0) { // -> durch 5 teilbar zielfeld += 3; write("Du bist auf einer Leiter gelandet und " + "ziehst 3 Felder nach vorn."); } else if (zielfeld % 7 == 0) { // -> durch 7 teilbar zielfeld -= 4; write("Du bist auf einer Schlange gelandet und " + "fällst 4 Felder zurück."); } // veränderte Position neu zuweisen: if (currentPlayer == 0) player0 = zielfeld; else player1 = zielfeld; } } paintField(player0, player1); // Spielfeld zeichnen currentPlayer = 1 - currentPlayer; // Spieler wechseln } write("Spieler " + (currentPlayer+1) + " gewinnt."); // Gewinner ausgeben } }