Information Technology Reference
In-Depth Information
else if (msg.result == 'hit') {
game.you.grid[msg.field].setAttribute("class",
msg.result);
}
...
Aus Sicht des Angreifers bedeutet die Antwort
hit
, dass das angeklickte Feld rot
markiert wird. Ist die Antwort
destroyed
, werden alle Felder dieses Schiffes als
Treffer von Rot in Grün umgewandelt. Zur gleichen Zeit wird am anderen Ende
der Leitung im Spielfeld des Angegriffenen bei
hit
dessen getroffene Position
rot markiert und bei
destroyed
alle bis dahin in Rot markierten Schiffsteile in
water
umgewandelt - je mehr Blau also auf dem eigenen Spielfeld erscheint,
desto schlechter ist die Lage, und je mehr Grün im gegnerischen Spielfeld zu
finden ist, desto größer ist die Chance, einen Sieg davonzutragen.
Lautet die Antwort allerdings
water
, ist der angegriffene Spieler an der Rei-
he und kann seinerseits angreifen (die
deactivateField()
-Funktion verhindert
weitere Eingaben). Auf diese Weise wechselt das Spiel so lange hin und her, bis
einer der Spieler alle Schiffe des Gegners versenkt hat und zum Sieger erklärt
wird. Das Markieren des Status eigener und feindlicher Schiffe erfolgt, wie be-
reits erwähnt wurde, über CSS-Formate für die jeweiligen
button
-Elemente.
Der Wechsel zwischen den Spielern wird dadurch ermöglicht, dass das geg-
nerische Spielfeld beim jeweils inaktiven Spieler mit
pointer-events:none
und
opacity:0.2
deaktiviert wird.
Nach Beendigung des Spieles werden beide Kontrahenten wieder getrennt; ihr
Status wird auf
Frei zum Spielen
gesetzt, und die nächste Einladung kann erfol-
gen. In der derzeitigen Version von
Schiffe versenken!
ist noch nicht vorgesehen,
dass mehrere Spiele hintereinander mit dem gleichen Spieler gespielt werden
können - vielleicht versuchen Sie ja, dieses neue Feature zu implementieren?
Auch ein
L
OGOUT
-Button könnte nicht schaden, und wer ganz mutig ist, kann
sich auch an einen
Multiplayer-Modus
wagen. Möglichkeiten, diese Applikation
weiterzuentwickeln, gibt es viele - Ihrer Fantasie sind keine Grenzen gesetzt!
Das Beispiel demonstriert eindrucksvoll, welche neuen Möglichkeiten das
Websocket-Protokoll für die Entwicklung von interaktiven Applikationen bietet.
In den hier vorgestellten Beispielen ging es immer um die Interaktion zwischen
Benutzern. Sehr einfach zu implementieren wäre es auch, dass der Web-
socket-Server Informationen aus dem Internet bezieht, diese aufbereitet und
dann an die angeschlossenen Benutzer verteilt. Die schon eingangs erwähn-
te Applikation mit der Verteilung von aktuellen Börsenkursen wäre ein gutes