Aufgabe war es die physischen Aspekte von Sensoren und Aktoren zu erkunden und die dazugehörige Software zu entwickeln – von Embedded über die Kommunikation via verschiedener Protokolle, bis hin zur Schnittstelle mit dem Nutzer.
Klassischerweise wird das Spiel mit Papier und Stift gespielt. Jeder Spieler hat zwei Felder, Schiffe und Angriffe. Auf einem Feld werden die Schiffe platziert und auf dem anderen die Angriffe, um die Schiffe des Gegners zu versenken.
Spielablauf
Zu Beginn positionieren die zwei Spieler ihre 6 Schiffe auf dem Feld. Der erste Spieler nimmt einen Angriff und setzt ihn auf das Angriff-Feld. War der Angriff erfolgreich, leuchtet die LED unter dem Angriff grün und das betroffene Schiff des zweiten Spielers leuchtet rot und wurde versenkt. War der Angriff nicht erfolgreich, leuchtet die LED des ersten Spielers rot. Hat der erste Spieler seinen Zug beendet, setzt der zweite Spieler seinen Angriff. Dieser Vorgang wird so lange wiederholt, bis von einem Spieler alle 6 Schiffe versenkt wurden.
Skizzen
In der Skizzenphase haben wir uns überlegt, wie der Aufbau der Kiste und der Schiffe sein könnte, wie die Schiffe auf dem Brett befestigt werden und welche Sensoren wir verwenden. Die Schiffe sollten Löcher haben, damit die LEDs durchscheinen und damit dem Spieler Rückmeldung geben, ob er ein Schiff versenkt hat oder sein Schiff versenkt wurde.
Um den Verlauf des Spiels besser zu verstehen haben wir ein Storyboard erstellt. Wir haben zu jedem Schritt notiert, welche Funktionen das Spiel braucht. Dabei sind uns ein paar wichtige Funktionen eingefallen, an die wir vorher nicht gedacht hatten.
Aufbau der Box
Das Alu Rohr wird für die Schiffe und die Angriffe verwendet.
Die Kupferstäbe sind die Sensoren, welche die Position des Alu Rohrs bestimmen.
Die LEDs geben die Rückmeldung, ob der Angriff erfolgreich war und ein Schiff versenkt wurde.
Anfangs sollte jeder Spieler noch zwei Boxen bekommen. Eine für die Schiffe und eine zum Versenken. Im Laufe des Projekts, wurden aus zwei den Boxen jeweils eine Box, sodass jeder Spieler nur noch eine Box mit zwei Feldern hatte. Diese Entwicklung erleichterte das Aufbauen der Kiste, das Schreiben des Codes und die Kommunikation zwischen den Feldern.
Die Kiste besteht aus einem Boden, einem Deckel, vier Wänden und einer Ebene für die LEDs. Auf dieser Ebene wurden die LEDs so positioniert, dass unter jedem Loch vom Deckel eine LED sitzt. Die vier Wände außen haben etwas oberhalb der LEDs Löcher für die Kupferstäbe.
Code
Das Spielfeld ist in der Vertikalen von a bis e und in der Horizontalen von 1 bis 5 aufgeteilt und jede Position wird auf dem Feld und im Code durch zwei Werte bestimmt. Im Code werden die Positionen von 0 hochgezählt. Die “1a” auf dem Spielfeld ist [0][0] im Code, “1b”ist [0][1] und “2a” ist [1][0].
Jeder Spieler sendet über einen Publish seine Position als String. Wenn der empfangene String mit der Position des eigenen Schiffes/Angriffs übereinstimmt (z.B. empfangen: “1a”, eigene Position: [0][0]), wurde das Schiff versenkt.
Hinterlasse einen Kommentar