Demohamster stehe im folgenden fuer den Namen eures Hamsters. Lasst euch wohlklingende Namen fuer euren Hamster einfallen (oder wenigstens eindeutige)!
Legt ein package an, welches alle Klassen enthaelt ausser einer Startklasse, die vom System aufgerufen wird (package demohamster und Startklassen-Datei Demohamster.java). Den Packagenamen solltet ihr klein schreiben, weil das immer so gemacht wird. Die Dokumentation soll ebenfalls in diesem package (=Unterverzeichnis) liegen.
Wuenschenswert waere diese Dateistruktur im Verzeichnis java/contest/hamster(*):
Demohamster.java (Erbt von demohamster.Demohamster) demohamster/Demohamster.java (Enthaelt die Hamsterroutinen) demohamster/Hilfsklasse1.java (Ein paar..) demohamster/Hilfsklasse2.java (..andere..) demohamster/NochmehrHilfe.java (..Klassen ) demohamster/readme.txt (Die Doku als TXT) demohamster/readme.html (oder als HTML)Die Datei Demohamster.java muss nicht mehr enthalten als das folgende:
/** * Demohamster. * @author ... */ public class Demohamster extends demohamster.Demohamster{ }Alle Hamstereigenschaften stehen in demohamster/Demohamster.java:
package demohamster; // Hier ist die Angabe, in welchem Package der Hamster ist. // Diese Zeile muss als erste in allen Quelltexten stehen, // die im Package liegen. import algds.c2002.Hamster; // Hiermit kann man den Hamster ohne sein Package ansprechen /** * Der eigentliche Hamster. * @author ... */ public class Demohamster extends Hamster{ ... ... public void run(){ ... }
public String getHamsterAuthor() { ... } public String getHamsterVersion() { ... } public String getHamsterDate() { ... } ... ... }Ein Beispiel:
H2D2.java // Startklasse h2d2/H2D2.java // Hamsterklasse h2d2/Map.java // Interne Karte h2d2/Cell.java // Einzelnes Feld der Karte h2d2/DoStopException.java // Geworfen um Hamster zu stoppen h2d2/IntPoint.java // Kapselung eines 2d-Punktes h2d2/Way.java // Informationen fuer Suchalgorithmus h2d2/H2D2Constants.java // Konstanten fuer alle Klassen h2d2/readme.html // DokumentationMeine Hamsterklasse beginnt so:
package h2d2; import algds.c2002.Hamster2; import java.util.LinkedList; /** * @author Christian Semrau */ public class H2D2 extends Hamster2 implements H2D2Constants {Tip zum Kompilieren: Ich hab mir eine Batch-Datei angelegt (namens c_h2d2) mit folgendem Befehl, damit auch sicher alles kompiliert wird:
Wenn ihr so sparsam seid, dass ihr für dem Hamster nur eine einzige Klasse (und keine inneren Klassen!) und fuer die Dokumentation auch nur eine einzige Datei braucht, kann es aber auch einfach so aussehen:
Demohamster.java (Enthaelt den Hamster als eine Klasse) Demohamster.txt (Die Doku als TXT oder als HTML)Als ZIP packen koennt ihr euren Hamster im Verzeichnis hamster so:
jar cvfM demohamster.zip demohamster/*.* Demohamster.*
(Nennt eure ZIPs entsprechend eurem Hamsternamen,
ich moechte nicht ein Dutzendmal hamster.zip oder demohamster.zip bekommen!)
Natuerlich koennt ihr jedes ZIP-Programm eurer Wahl benutzen.
(jar, winzip, zip oder wie sie alle heissen)
Die ZIP schickt ihr per EMail an contest2002@cs.uni-magdeburg.de.
Seitenanfang
Status vom 04.04.2002, Christian Semrau