Kennen Sie aus Ihre Schulzeit noch "Schiffe versenken"? Bei Armada übernimmt der Computer die Aufgabe ihres Schulkameraden, den Sie mit
java -cp classes armada.Player
aufrufen können. Ihr virtueller Kollege setzt Ihnen auch gleich Ihre Schiffe, so dass Sie sofort mit der Eingabe der Koordinaten (z.B. A4) beginnen können:
_A_B_C_D_E_F_G_H_I_J_ _A_B_C_D_E_F_G_H_I_J_
0| |0 0| 1 |0
1| |1 1| 2 |1
2| |2 2| 2 # |2
3| |3 3| 3 4 3 |3
4| # |4 4| 3 1 4 3 |4
5| |5 5| 3 4 3 |5
6| |6 6| |6
7| |7 7| 2 2 1 |7
8| |8 8| |8
9| |9 9| 2 2 1 |9
-A-B-C-D-E-F-G-H-I-J- -A-B-C-D-E-F-G-H-I-J-
4er:0/4 3er:1/6 2er:0/6 1er:0/4 4er:1/4 3er:0/6 2er:0/6 1er:0/4
Schuss: A4 3er Treffer Schuss: G2 4er Treffer
Zug: b4
Na ja, die Ausgabe ist sicherlich nicht mehr State-of-the-Art, aber das Programm dient mir in meinem Buch "Java SW-Engineering unter Linux" (SuSE PRESS) hauptsächlich zur Verdeutlichung der Arbeitsweise von CVS. Deswegen finden Sie in diesem Verzeichnis nicht nur die Sourcen, sondern unter cvsroot auch das CVS-Repository für eigene Experimente. Zum Beispiel, um Armada ein zeitgemäßeres Frontend zu spendieren. Oder um es als Einstieg in CVS zu benutzen und die Zusammenarbeit im Team auszuprobieren. Was immer Sie damit anfangen wollen, dürfen Sie damit tun, wenn Sie mich über Änderungen auf dem Laufenden halten und meinen Namen nicht aus den Sourcen löschen.
"Schiffe versenken" war eines meiner ersten Programme, die ich zur Erlernung von C geschrieben habe (falls Sie neugierig sind, können Sie es sich unter src/C/ship.c anschauen). Ich war damals für ein halbes Jahr als Werksstudent bei Siemens tätig, und es war nicht nur meine erste Schritte in C, sondern auch meine erste Berührung mit einem Unix-System, genauer, mit SINIX 1.0. Das war 1985.
Auf der Suche nach einem Beispiel für das Kapitel "CVS" bin ich zufällig wieder über dieses Programm gestolpert. Ich habe das Armada-Beispiel gewählt, weil es überschaubar ist, dennoch aber eine Arbeitstrennung ermöglicht. In dem im Buch beschriebenen Szenario beschäftigt sich Oliver vorwiegend mit dem Algorithmus, während Stan mehr für die Ausgabe zuständig ist. Vielleicht war aber auch einfach ein bißchen Sentimentalität dabei, als ich mich für dieses Beispiel entschieden habe (ach ja, die guten alten Zeiten ;-).