Spielprogrammierung mit Java
HomeAufgabenDruckenJava-Online

Aufgaben 4: LightsOut-Game


Das Spiel besteht aus 25 Lampen, die in einem 5 x 5 Grid angeordnet sind. Zu Beginn des Spiels sind alle Lampen eingeschaltet. Ziel des Spiels ist es, alle Lampen zu löschen. Wenn man mit einem Mausklick eine Lampe löscht, bzw. aufschaltet, wird sie selbst und die 4 benachbarten Lampen "invertiert".

Das Ziel ist es, alle Lampen zu löschen.

 

In der Vorlage LightsOut_0.java wird ein 5x5 Grid erstellt und eine Lampe, die mit einem Mausklick ein- und ausgeschaltet werden kann.

LightsOut_0.java im Online-Editor bearbeiten

Programmcode für lokale Bearbeitung downloaden (LightsOut_0.zip)

Schritt 1: Erzeugen Sie in allen Zellen des Gitters solche Lampen

Schritt 2: Nicht nur die Lampe, die mit Maus geklickt wurde, sondern auch die vier benachbarten Lampen wechseln ihr Spritebild.

Die betreffenden Zellen können z.B. in einem Array erfasst werden:
Location loc = toLocationInGrid(mouse.getX(), mouse.getY());
Location[] locs = new Location[5];
locs[0] = new Location(loc.x, loc.y);
locs[1] = new Location(loc.x, loc.y -1);
....

 

 

Ein LightsOut-Game müss nicht mit "alles Lampen on" gestartet werden. Man kann mit einem beliebigen Muster beginnen, wobei die Aufgaben nicht für alle Muster löbar ist. Die Lösungen lassen sich mathematisch berechnen..

(siehe LightsOutGame)