Blog der Heimetli Software AG

Visualisierung eines Random Walks mit einer HTML-Tabelle

Ein Roboter-Konstrukteur wollte den Weg seines Roboters in einem unbekannten Terrain visualisieren. Er kam nicht so recht vorwärts und deshalb habe ich dieses Programm geschrieben.

Das Programm kam übrigens nicht zum Einsatz, weil es dem Konstrukteur aus verschiedenen Gründen nicht passte...

Das Terrain

Das Terrain besteht aus einer HTML-Tabelle mit 25 Zeilen und 25 Spalten. Im Grundzustand haben die Zellen keine Farbe. Wo der Roboter steht, wird mit einer roten Zelle markiert. Bereits vom Roboter besuchte Felder sind grün eingefärbt.

Der Weg des Roboters

Weil ich keinen Roboter zur Hand habe, wird hier ein Random Walk visualisiert. Ein Random Walk entsteht, wenn der simulierte Roboter bei jedem Schritt auf ein zufällig gewähltes Nachbarfeld fährt.

Diese Strategie erweist sich als sehr ineffizient für die Erforschung des Geländes weil der Roboter immer wieder auf schon besuchte Felder zurückkehrt.

Der JavaScript-Code

Die folgende Tabelle enthält Objekte die eine Bewegung in eine der acht möglichen Richtungen darstellen:

var deltas = [ { x: -1, y: -1}, { x:  0, y: -1}, { x: +1, y: -1},
               { x: -1, y:  0},                  { x: +1, y:  0},
               { x: -1, y: +1}, { x:  0, y: +1}, { x: +1, y: +1} ] ;

Das Programm wählt eines dieser Objekte aus, addiert x und y zu seiner aktuellen Position und prüft, ob sich die neue Position noch in der Tabelle befindet. Wenn nicht, wird eine andere Richtung ausgewählt.

Wenn eine passende Zelle gefunden ist, wird die aktuelle Position des Roboters grün eingefärbt und die neue Position bekommt eine rote Farbe.

Und so sieht es aus