SUN-SAR Softwarepreis 2008

Transcription

SUN-SAR Softwarepreis 2008
SUN-SAR Softwarepreis 2008
Einführungsveranstaltung
SUN-SAR Softwarepreis 2008 (I2 - RWTH)
Die verrückte Pyramide
1. September 2008
1 / 11
Das Spiel
Ziel des . . .
◮
◮
. . . Spiels: das meiste Gold sammeln
. . . Wettbewerbs: die meisten Siegpunkte sammeln und das Finale gewinnen
Das Spielfeld
◮
◮
Dreieckiges Spielfeld bestehend aus
dreieckigen Teilen
Kantenlänge ist variabel (max. 20)
◮
Zusätzliches Doppelteil zum
Schieben
◮
Vier Grundteile (0 bis 3 Wege)
Bis zu drei Spieler
◮
◮
Schätze mit bekannten Goldwerten
und Positionen (immer nur drei
freigegeben)
SUN-SAR Softwarepreis 2008 (I2 - RWTH)
Die verrückte Pyramide
1. September 2008
2 / 11
Das Spiel
Ziel des . . .
◮
◮
. . . Spiels: das meiste Gold sammeln
. . . Wettbewerbs: die meisten Siegpunkte sammeln und das Finale gewinnen
Der Spielablauf
◮
Rundenbasiert
◮
Spieler erhalten feste Anzahl
Aktionspunkte pro Runde
◮
Denken, Bewegen und Schieben
kostet Aktionspunkte
◮
Aktionspunkte verfallen am Ende
der Runde
Spiel endet wenn alle Schätze
geborgen sind oder nach 100
Runden
◮
SUN-SAR Softwarepreis 2008 (I2 - RWTH)
Die verrückte Pyramide
1. September 2008
2 / 11
Das Spiel
Ziel des . . .
◮
◮
. . . Spiels: das meiste Gold sammeln
. . . Wettbewerbs: die meisten Siegpunkte sammeln und das Finale gewinnen
Eine Runde
◮
◮
◮
◮
Denken: d.h. Rechnen
Bewegen: entlang der Wege nach
Norden, Osten, Süden oder Westen
Schieben: von Osten, Süden oder
Westen in Reihe 1, 2, . . . oder 8
nach Osten, Süden oder Westen
schieben.
Befehle für die nicht genügend
Aktionspunkte verfügbar sind
werden nicht mehr ausgeführt.
SUN-SAR Softwarepreis 2008 (I2 - RWTH)
Die verrückte Pyramide
1. September 2008
2 / 11
Das Spiel
Ziel des . . .
◮
◮
. . . Spiels: das meiste Gold sammeln
. . . Wettbewerbs: die meisten Siegpunkte sammeln und das Finale gewinnen
Schatz heben
◮
◮
Schätze mit fester Reihgenfolge.
Immer drei freigegebene Schätze.
◮
Nur freigegebene Schätze können
gehoben werden.
◮
Wird ein Schatz gehoben, so wird
der erste noch “versteckte” Schatz
freigegeben.
◮
Schatz kann nur aktiv durch Ziehen
auf das Feld gehoben werden.
SUN-SAR Softwarepreis 2008 (I2 - RWTH)
Die verrückte Pyramide
1. September 2008
2 / 11
Protokoll
Aufbau
Der Server unterscheidet zwei Arten von Clients:
◮
◮
Player: Ein Spieler, der aktiv an dem Spiel teilnimmt.
Observer: Ein reiner Beobachter, der vom Server das aktuelle Spielgeschehen
mitgeteilt bekommt.
Das Protokoll
◮
ASCII Nachrichten über TCP/IP.
◮
Jede Nachricht endet mit einem “@”.
Nachrichten können mit IDs versehen werden, sodass Antworten vom Server
leichter zugeordnet werden können, z.B.:
◮
move w @13 ⇒ failed move w @13
SUN-SAR Softwarepreis 2008 (I2 - RWTH)
Die verrückte Pyramide
1. September 2008
3 / 11
Protokoll
Allgemeine Bausteine für Nachrichten
[nsew]
[sew]
[int]
[string]
=
=
=
=
n+s+e+w
s+e+w
0 + 1 + ...
Strings ohne Sonderzeichen wie “@”
[game] = Stringdarstellung des Spiels (siehe Beispiel)
move-costs und push-costs pro Aktion
think-costs pro Sekunde
token x y name
treasure x y worth owner
SUN-SAR Softwarepreis 2008 (I2 - RWTH)
Die verrückte Pyramide
1. September 2008
4 / 11
Protokoll
Allgemeine Bausteine für Nachrichten
[nsew]
[sew]
[int]
[string]
=
=
=
=
n+s+e+w
s+e+w
0 + 1 + ...
Strings ohne Sonderzeichen wie “@”
[game] = Stringdarstellung des Spiels (siehe Beispiel)
move-costs und push-costs pro Aktion
think-costs pro Sekunde
token x y name
treasure x y worth owner
SUN-SAR Softwarepreis 2008 (I2 - RWTH)
Die verrückte Pyramide
1. September 2008
4 / 11
Protokoll
Beispiel für [game]
height 10
width 19
board
---|---|---|---|---|---|---|---|---|.S.|---|---|---|---|---|---|---|---|---|
---|---|---|---|---|---|---|---|W.E|wne|.S.|---|---|---|---|---|---|---|---|
---|---|---|---|---|---|---|WS.|.ne|W.E|.ne|W.E|---|---|---|---|---|---|---|
---|---|---|---|---|---|WS.|..e|.SE|wn.|WSE|wne|WSE|---|---|---|---|---|---|
---|---|---|---|---|WSE|..e|WS.|.n.|W..|w..|W..|wne|WS.|---|---|---|---|---|
---|---|---|---|WSE|..e|..E|wne|WS.|wne|W.E|w.e|W..|wne|..E|---|---|---|---|
---|---|---|W.E|.ne|WSE|wne|WSE|wne|WS.|wne|WSE|w.e|WSE|.ne|WS.|---|---|---|
---|---|WSE|wne|W.E|.ne|..E|.ne|..E|wne|W.E|wne|WSE|wne|WSE|.ne|.S.|---|---|
---|.S.|w..|WSE|wne|WSE|wn.|WSE|wne|WS.|..e|WSE|wne|WSE|wne|..E|wne|WSE|---|
..E|w..|.S.|w..|..E|wn.|.SE|w.e|.SE|wne|W.E|wn.|WSE|wne|WS.|wne|WSE|wn.|W..|
free-tile W.E|wne
coins-per-round 20
move-costs 1
push-costs 4
think-costs 2
token 18 9 Player0
treasure 11 5 0 -1
treasure 2 8 2 -1
treasure 14 8 1 -1
SUN-SAR Softwarepreis 2008 (I2 - RWTH)
Die verrückte Pyramide
1. September 2008
5 / 11
Protokoll
Player
1. Anmeldung mit Spielername: join name [string] @
2. Empfangen der eigenen Spieler Nummer: nr [int] @
3. Warten bis man an der Reihe ist: turn @
4. Bestätigung des Anfangs der Runde: turn @
5. Senden von Befehlen:
◮
◮
◮
◮
◮
game @
coins @
rotate @
move [nsew direction] @
push [sew from] [int row] [sew to] @
6. Befehle werden bestätigt bzw. abgelehnt und Anfragen beantwortet:
◮
◮
◮
move s @ ⇒ move s @
move s @ ⇒ failed move s @
coins @ ⇒ coins 5 @
7. Ende des Zuges: turnover @ (muss nicht bestätigt werden)
8. Das Ende des Spiels kann zu einem beliebigen Zeitpunkt vom Server bekannt
gegeben werden: finished @
SUN-SAR Softwarepreis 2008 (I2 - RWTH)
Die verrückte Pyramide
1. September 2008
6 / 11
Protokoll
Player
1. Anmeldung mit Spielername: join name [string] @
2. Empfangen der eigenen Spieler Nummer: nr [int] @
3. Warten bis man an der Reihe ist: turn @
4. Bestätigung des Anfangs der Runde: turn @
5. Senden von Befehlen:
◮
◮
◮
◮
◮
game @
coins @
rotate @
move [nsew direction] @
push [sew from] [int row] [sew to] @
6. Befehle werden bestätigt bzw. abgelehnt und Anfragen beantwortet:
◮
◮
◮
move s @ ⇒ move s @
move s @ ⇒ failed move s @
coins @ ⇒ coins 5 @
7. Ende des Zuges: turnover @ (muss nicht bestätigt werden)
8. Das Ende des Spiels kann zu einem beliebigen Zeitpunkt vom Server bekannt
gegeben werden: finished @
SUN-SAR Softwarepreis 2008 (I2 - RWTH)
Die verrückte Pyramide
1. September 2008
6 / 11
Protokoll
Player
1. Anmeldung mit Spielername: join name [string] @
2. Empfangen der eigenen Spieler Nummer: nr [int] @
3. Warten bis man an der Reihe ist: turn @
4. Bestätigung des Anfangs der Runde: turn @
5. Senden von Befehlen:
◮
◮
◮
◮
◮
game @
coins @
rotate @
move [nsew direction] @
push [sew from] [int row] [sew to] @
6. Befehle werden bestätigt bzw. abgelehnt und Anfragen beantwortet:
◮
◮
◮
move s @ ⇒ move s @
move s @ ⇒ failed move s @
coins @ ⇒ coins 5 @
7. Ende des Zuges: turnover @ (muss nicht bestätigt werden)
8. Das Ende des Spiels kann zu einem beliebigen Zeitpunkt vom Server bekannt
gegeben werden: finished @
SUN-SAR Softwarepreis 2008 (I2 - RWTH)
Die verrückte Pyramide
1. September 2008
6 / 11
Protokoll
Player
1. Anmeldung mit Spielername: join name [string] @
2. Empfangen der eigenen Spieler Nummer: nr [int] @
3. Warten bis man an der Reihe ist: turn @
4. Bestätigung des Anfangs der Runde: turn @
5. Senden von Befehlen:
◮
◮
◮
◮
◮
game @
coins @
rotate @
move [nsew direction] @
push [sew from] [int row] [sew to] @
6. Befehle werden bestätigt bzw. abgelehnt und Anfragen beantwortet:
◮
◮
◮
move s @ ⇒ move s @
move s @ ⇒ failed move s @
coins @ ⇒ coins 5 @
7. Ende des Zuges: turnover @ (muss nicht bestätigt werden)
8. Das Ende des Spiels kann zu einem beliebigen Zeitpunkt vom Server bekannt
gegeben werden: finished @
SUN-SAR Softwarepreis 2008 (I2 - RWTH)
Die verrückte Pyramide
1. September 2008
6 / 11
Protokoll
Observer
1. Registrierung beim Server: observe @
2. Empfangen der Spielinformationen: game [game] @
3. Empfangen der Ereignisse:
◮
◮
◮
◮
◮
◮
◮
turn [int playerNr] @
rotate @
move [nsew direction] @
failed move [nsew direction] @
push [sew from] [int row] [sew to] @
failed push [sew from] [int row] [sew to] @
finished @
SUN-SAR Softwarepreis 2008 (I2 - RWTH)
Die verrückte Pyramide
1. September 2008
7 / 11
Sonstige Informationen
Rahmenbedingungen
◮
◮
◮
Die Sprache kann beliebig gewählt werden.
Abzugeben sind die Sourcen und ein Script zum Compilieren (make/ant).
Der ausgegebenen Server- und Beispielcode darf für den Client verwendet und
angepasst werden.
Hardware
◮
CPU: 2x 2.33 GHz Intel Dual-Core Xeons (Woodcrest)
RAM: 16 GB
◮
Grafik: Onboard Grafikkarte mit Shared Memory
◮
SUN-SAR Softwarepreis 2008 (I2 - RWTH)
Die verrückte Pyramide
1. September 2008
8 / 11
Sonstige Informationen
Download unter tdi2008.informatik.rwth-aachen.de
◮
py.jar (mit Sourcen)
◮
◮
◮
◮
◮
Spiel-Modell
Server
Recorder-Observer
Statistic-Observer
Zufallsspieler
◮
viewer.jar
◮
mapEditor.jar
interactivePlayer.jar
◮
Termine
06.11.2008
23.11.2008
05.12.2008
14:00
24:00
17:00
Testspiel am Lehrstuhl
Abgabe der Spieler-Clients
Finale am Tag der Informatik
SUN-SAR Softwarepreis 2008 (I2 - RWTH)
Die verrückte Pyramide
1. September 2008
9 / 11
Sonstige Informationen
Download unter tdi2008.informatik.rwth-aachen.de
◮
py.jar (mit Sourcen)
◮
◮
◮
◮
◮
Spiel-Modell
Server
Recorder-Observer
Statistic-Observer
Zufallsspieler
◮
viewer.jar
◮
mapEditor.jar
interactivePlayer.jar
◮
Termine
06.11.2008
23.11.2008
05.12.2008
14:00
24:00
17:00
Testspiel am Lehrstuhl
Abgabe der Spieler-Clients
Finale am Tag der Informatik
SUN-SAR Softwarepreis 2008 (I2 - RWTH)
Die verrückte Pyramide
1. September 2008
9 / 11
Sonstige Informationen
SUN-SAR Softwarepreis 2008 (I2 - RWTH)
Die verrückte Pyramide
1. September 2008
10 / 11

Documents pareils