Aufbau und Grundstruktur

Das Spielfeld ist wie ein Schachbrett aus vielen kleinen Quadraten aufgebaut, wobei jedes Quadrat ein eigenes Objekt mit diversen Eigenschaften darstellt. Die wichtigsten Parameter eines solchen Objektes sind: Brennstärke, Brennmaterial, Materialfaktor, Löschfaktor.
Die Brennstärke gibt an, wie stark das jeweilige Objekt brennt. Sie kann Werte zwischen -1 und 1 annehmen. Wobei man die negativen Werte so interpretieren muss, dass das Objekt durch das Löschen Feuchtigkeit aufgenommen hat.
Das Brennmaterial steht für das Quantum an brennbarem Material. Das Brennmaterial nimmt proportional zur Brennstärke ab. Wenn es auf Null ist, ist das Objekt abgebrannt und kann nicht mehr anfangen zu brennen.
Materialfaktor gibt an, wie gut ein bestimmtes Objekt brennt und der Löschfaktor, wie gut mit einer bestimmten Wassermenge gelöescht werden kann.
Des Weiteren gibt es verschieden Feldtypen. Wir haben uns der einfachheithalber auf vier Objekttypen beschränkt:
Baum, Dorf, Strasse, Wasser.
Durch geeignetes Anordnen dieser vier Feldtypen können beliebige Spielfelder gebildet werden.

Ausbreitung des Feuers

Der wahrscheinlich wichtigste und komplexeste Teil des Programmes bildet der Algorithmus der Feuerausbreitung. Wir haben uns dabei für folgende Implementierung entschieden.
Ähnlich wie bei den Filtern in der Bildbearbeitung legen wir eine Matrix über das Spielfeld. Die einzelnen Matrixelmente sind mit Wahrscheilichkeiten behaftet, mit der das Objekt auf welches die Matrix angewendet wird, die umliegenden Objekte zum brennen bringen kann. Diese Matrix lässt man nun über alle Objekte des Spielfeldes laufen.
Natürlich gibt es so eine exakt symmetrische Ausbreitung des Feuers, was wir eigentlich nicht möchten. Deshalb haben wir noch den Einfluss des Windes berücksichtigt. Der Wind, bestehend aus Richtung und Betrag, wirkt sich auf die Werte der Matrix aus, und beeinflusst so die Ausbreitung des Feuers.
Die Strassen können in diesem Spiel nicht brennen. In Folge unserer Implementierung der Feuerausbreitung ist es dem Feuer aber trotzdem möglich sich über Strassen hinweg auszubreiten, allerdings wird es dabei deutlich gehemmmt. Um dem Benutzer die momentane Stärke des Feuers visuell zu vermitteln, haben wir die Brennstärke in Intervalle aufgeteilt, und diesen Intervallen Farben von Gelb bis Rot zugeordnet. Dabei steht Gelb für ein sehr schwaches und Rot für ein sehr starkes Feuer. Dementsprechend ist es schwieriger Feuer mir rötlicher Färbung zu löschen, als solches mit gelblicher.

Feuerwehr

Die Feuerwehrfahrzeuge sind durch zwei rote Kreise mit weissem F dargestellt. Sie können sich nur auf den Strassen bewegen. Da die Strassen nach Definition nicht brennbar sind, können auch die Feuerwehrfahrzeuge nicht anfangen zu brennen. Es ist jedoch darauf zu achten, dass alle Fahrzeuge einen beschränkten Wasservorat besitzen. Wenn dieser zu Ende ist, müssen die Fahrzeuge ins Depot (befindet sich im Dorf und ist durch ein rotes Viereck mit rotem F gekennzeichnet) gebracht werden, wo sie von selbst wieder aufgetankt werden. Der Momentane Innhalt des Wassertankes ist der Darstellung des Feuerwehrautos zu entnehmen. Ähnlich wie bei einer Uhr fährt ein dunkler Balken über die Kreisfläche des Autos. Ist das Auto komplett dunkler als normal, ist der Tank leer.

Darstellung durch Polygone

Durch unseren Schachbrett ähnlichen Aufbau des Spielfeldes, besteht nun dieses auch graphisch aus vielen Vierecken. Um diesem eckigen Aussehen entgegen zu wirken, haben wir versucht, nicht jedes Objekt für sich, sondern alle zusammenhängenden Objekte des selben Types als Ganzes zu Zeichen. Als Darstellung verwenden wir nun nicht mehr Quadrate sondern Polygone, um so die Ecken abzurunden, und dadurch eine schönere Darstellung zu erhalten.