Einführungspraktikum Kopie

Faculty of Computer Science Institute of Systems Architecture, Operating Systems Group
EINFÜHRUNGSPRAKTIKUM:
STRATEGIESPIELE
MICHAEL ROITZSCH
ORGANISATION
individuelles Arbeiten, keine Gruppen
plagiieren verboten
Einschreiben in „Schein“-Prüfung am 31.3.
ihr bekommt: Quellcode-Archiv
ihr liefert: einen Computer-Gegner
Fragen per auditorium.inf.tu-dresden.de
E-Mail: [email protected]
TU Dresden
Einführungspraktikum
2
ABGABE
Mittwoch, 25.3.2015
12:00 Uhr mittags MEZ
[email protected]
TU Dresden
Einführungspraktikum
3
PROGRAMMIEREN
TU Dresden
Einführungspraktikum
4
GAME GRID
Entwicklung unter
Linux in C oder C++
Referenz: PCs im ZIH
Kommandozeile
Tar-Archiv zu jedem
Spiel auf Webseite
bauen mit make
README
TU Dresden
Einführungspraktikum
5
SPIELER
interaktiver Tastatur-Spieler
euer Computer-Gegner
diese Datei ist von euch auszufüllen
Master Control Program
TU Dresden
Einführungspraktikum
6
MAKE
make all
baut alles
make demo
zwei Tastatur-Spieler
make run
euer Gegner und Tastatur
make fight euer Gegner zweimal
make clean gebaute Dateien löschen
make help
TU Dresden
Anleitung
Einführungspraktikum
7
MCP
verbindet zwei
Spieler
überträgt Spielfeld
empfängt Zug
siehe Tastatur-Spieler
überwacht Regeln
und Ressourcen
TU Dresden
Einführungspraktikum
8
MCP
MCP
fd 3
fd 3
fd 4
Spieler 1
TU Dresden
fd 4
Spieler 2
Einführungspraktikum
9
FAQ
?
TU Dresden
Linux-Installation in
VirtualBox
gezielte Übergabe eines
Spielzustands an Spieler
dynamische Arrays
Zufallszahlen
Einführungspraktikum
10
BESTEHEN
TU Dresden
Einführungspraktikum
11
ANFORDERUNG
euer Code muss fehlerfrei kompilieren
„schöner“ Code bringt Bonuspunkte
Computer-Gegner muss gültig spielen
Regelverstöße führen zum Nicht-Bestehen
nicht-triviale Strategie
klare Gewinnchancen nutzen
dem Gegner keine Steilvorlagen liefern
Tipp: reicht Zwischenstände ein
TU Dresden
Einführungspraktikum
12
REGELN
Spieler und MCP kommunizieren über
UNIX-Pipes
wie das geht seht ihr im Tastatur-Spieler
ihr dürft von dort abschreiben
MCP-Code darf nicht benutzt werden
ist deshalb auch teilweise in Assembler
erlaubt: C-Bibliothek, C++/STL, pthreads
andere Bibliotheken auf Anfrage
TU Dresden
Einführungspraktikum
13
CODEQUALITÄT
konsistente Formatierung
sprechende Bezeichner
Gültigkeitsbereich minimieren
erläuternde Kommentare
klare Code-Struktur
kein Spaghetti- oder Lasagne-Code
DRY: Don’t Repeat Yourself
TU Dresden
Einführungspraktikum
14
TURNIER
make fight
testet eure Spieler gegeneinander
60 Sekunden Bedenkzeit, 1GB Speicher
nach Ablauf der 60 Sekunden wird Signal
SIGXCPU zugestellt
nach einer weiteren Sekunde SIGKILL
Threads sind erlaubt, fork() nicht
wartender Gegner bekommt SIGSTOP
TU Dresden
Einführungspraktikum
15
ABLAUF
konzentriert euch zuerst darauf,
gültige Züge zu finden
Montag: Termin zur individuellen
Besprechung eures Designs
danach Zeit für fortgeschrittene Ideen
Mittwoch: Abgabe
nutzt auditorium oder E-Mail bei Fragen
TU Dresden
Einführungspraktikum
16
GRUPPEN
Matrikel
Spiel
Student
Mitarbeiter
Haliotis
Sven
Dziadek
Martin
Küttler
…08 – …30
Othello
Till
Smeijkal
Björn
Döbel
…31 – …54
Backgammon
Hendrik
Sollich
Jan
Bierbaum
Mühle
Christian
Menard
Michael
Roitzsch
Dame
Hannes
Weisbach
Nils
Asmussen
…00 – …07
…60 – …75
…76 – …99
TU Dresden
Einführungspraktikum
17
TU Dresden
Einführungspraktikum
18