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