Fach:Systemsoftware Project Tank

Aus StudyWiki

Wechseln zu: Navigation, Suche

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
Persönliche Werkzeuge
Seminare
Fächer Grundstudium