Fach:Systemsoftware Project Tank
Aus StudyWiki
Hier die abgabe variablen für mein tank projekt:
URL='http://pubwww.hsz-t.ch/~mracic/systemsoftware' PACKAGE='abgabe'
Ich habe das ganze auf der selma getestet und es hat kompilliert und die tests sind durchgelaufen.
Folgende Befehle habe ich für den test verwendet: (online auf http://pubwww.hsz-t.ch/~mracic/systemsoftware/testpackage)
clear URL='http://pubwww.hsz-t.ch/~mracic/systemsoftware' PACKAGE='abgabe' PORT='8888' wget $URL/$PACKAGE.tgz gtar xzf $PACKAGE.tgz cd $PACKAGE gmake ./server --test $PORT & run_tests $PORT > test.log cat test.log ps -ef | grep ./server | grep -v grep | grep -v root | grep mracic|awk {'print $2'} | xargs kill
Zu den Weitere Bedingungen:
- Auch ohne '--test' Switch muss der Server funktionieren.
Funktioniert mit und ohne test switch
- Die Spielfeld Grösse muss entweder per Option, Variable oder Konstante innerhalb des Source Codes frei bestimmbar sein.
Ist im sourcecode als makro definiert #define PLAYFIELD_SIZE_X 10 #define PLAYFIELD_SIZE_Y 10
- Der Server muss zumindest mit so viel Clients wie Feldern zurecht kommen.
Wurde mit dem bot switch getestet, der server funktioniert auch bei anzahl clients = anzahl felder. Das lustige dabei ist, egal wieviele bots auf dem spielfeld sind, nach einer gewissen zeit stabilisiert sich die anzahl bots auf eine norm anzahl.
Switches, die der server annehmen kann:
-t oder --test: Startet den Server im Test modus
-p {port} oder einfach portnummer als letztes argument: Startet den Server auf dem jeweiligen port (mandatory)
-g: Startet den Server für human telnet clients, d.h. Grafische ausgabe beim Client (ANSI compatible)
-v: Startet den Server im verbose mode, d.h. nach der anzeige mit welchen argumenten er gestartet wurde,
kommt kein weiterer output was der server gerade macht
-b {anzahl} startet den server mit {anzahl} bots
Commands des clients im game:
up, down, left, right: directions shoot show: zeige map help: zeige alle dokumentierten befehle
Server befehle (von client aus):
srv shutdown: fahre den server herunter, clients werden beim nächsten befehl disconected anschliessend wird der Server prozess gekillt srv watcher: zeige die map (sekündlich aktualisiert) und schalte den client in watcher modus, d.h. ist nicht auf spielfeld sichtbar
Special effect: Server im -g modus gestarted: client 1 steht neben client 2 und schiesst auf ihn. schöne animation ist ersichtlich ;-)
[bearbeiten] Benotung des Projekts von Pospisek
| kompilierts | 2 out of 2 |
| test funktionieren | 3 out of 3 |
| sauberkeit/verständlichkeit des codes | 2.25 out of 3 |
| Kommentar | 153 Zeichen pro Zeile... passt eben noch auf meinen 18"er.
tabstop=5 ist auch exotisch typedef verwenden lieber 3 printf's als 3 zeilen text.. mehr suroutinen verwenden #define UP 2 DRY: suroutinen statt copy/paste |
| grad der konkurrenz | 2.5 out of 3 |
| Kommentar | per feld mutex
lock old, lock new -> Deadlock |
| bonus für umfang | +0.5 out of +1 |
| Kommentar | special effects! |
| total | 10.25 out of 12 |
| note | 5.5 |
| Notenberechnung | 11 ergibt eine 6, 0 eine 1, dazwischen linear |
