ETH Zurich :
Computer Science :
Pervasive Computing :
Distributed Systems :
Education :
I2 SS2001
Reversi Turnier 2001
Termin: Montag, 2. Juli 2001, 15:30 Uhr
Ort: RZ F21, Clausiusstr. 59, direkt ans IFW grenzend (s. Gebäudeplan)
Ergebnisse
Folgende Programme wurde zur Teilnahme eingesendet:
Team | Programm
| Christian Hitz, Stefan Schuler | presto.Presto
| Daniel Furrer, Valentin Keller | goldkueste.Goldkueste
| Marco Graf und Jens Temnitzer | fortuna.fortuna
| Roger Fischer, Roger Kaspar | FischRog.FischRog
| Clemens Lombriser, Marc Andre | yarp.Player
| Markus Wenk | RhineValley.RhineValley
| Peter Schudel | speedygonzales.SpeedyGonzales
| Stefan Christiani | Waldsterben
| Daniel Hobi, Thomas Kaufmann | freakyPlayer.freakyPlayer
| Thomas Frech | thomasFrechsLion.ThomasFrechsLion
| Andreas Weibel | whoTheFuckProgrammedThis.NudePlayer
| Manuel Aschwanden | zusammenfuegen.zusammenfuegen
| Mark Blum, Andreas Grüter | Zug
| Meier, Andreas | dude.Dude
| Michael Casty, Christoph Fink | cfmc.MyPlayer
| Raphi Berner, Gion-P. Gross | Sibesiech.Sibesiech
| Christof Gutscher | Champignon.Champignon
| Cyril Stutz, Jon Rohrer | BBplayer.BBplayer
| Linard Moll, Marc Herzog | rotfluhstrasse_12.rotfluhstrasse_12
| Lukas Winterhalter, Gabriel Mueller | Speedy.Speedy
|
Als Wettkampfsystem wurde ein der Fussball-Weltmeisterschaft ähnliches angewendet. Zunächst werden (zufällig) 4 Gruppen zu je 5 Teilnehmern gebildet. Die besten zwei jeder Gruppe erreichen das Viertelfinale. Im Halbfinale und Finale wird dann um die Plätze 1 bis 5 gekämpft.
Die Ergebnisse im einzelnen
Gruppe 1
Rang | Name | Spiele | Siege | Niederlagen | Unentschieden | Punkte
|
1
| BBplayer.BBplayer | 4 | 4 | 0 | 0 | 156
|
2
| Zug | 4 | 3 | 1 | 0 | 126
|
3
| whoTheFuckProgrammedThis.NudePlayer | 4 | 2 | 2 | 0 | 102
|
4
| FischRog.FischRog | 4 | 1 | 3 | 0 | 49
|
5
| zusammenfuegen.zusammenfuegen | 4 | 0 | 4 | 0 | 18
|
Gruppe 2
Rang | Name | Spiele | Siege | Niederlagen | Unentschieden | Punkte
|
1
| fortuna.fortuna | 4 | 4 | 0 | 0 | 147
|
2
| freakyPlayer.freakyPlayer | 4 | 3 | 1 | 0 | 92
|
3
| Waldsterben | 4 | 2 | 2 | 0 | 53
|
4
| cfmc.MyPlayer | 4 | 1 | 3 | 0 | 72
|
5
| goldkueste.Goldkueste | 4 | 0 | 4 | 0 | 151
|
Gruppe 3
Rang | Name | Spiele | Siege | Niederlagen | Unentschieden | Punkte
|
1
| dude.Dude | 4 | 4 | 0 | 0 | 218
|
2
| presto.Presto | 4 | 3 | 1 | 0 | 112
|
3
| Speedy.Speedy | 4 | 2 | 2 | 0 | 75
|
4
| speedygonzales.SpeedyGonzales | 4 | 1 | 3 | 0 | 92
|
5
| RhineValley.RhineValley | 4 | 0 | 4 | 0 | 75
|
Gruppe 4
Rang | Name | Spiele | Siege | Niederlagen | Unentschieden | Punkte
|
1
| Sibesiech.Sibesiech | 4 | 4 | 0 | 0 | 164
|
2
| thomasFrechsLion.ThomasFrechsLion | 4 | 3 | 1 | 0 | 133
|
3
| rotfluhstrasse_12.rotfluhstrasse_12 | 4 | 2 | 2 | 0 | 53
|
4
| Champignon.Champignon | 4 | 1 | 3 | 0 | 47
|
5
| yarp.Player | 4 | 0 | 4 | 0 | 11
|
I | Sieger Gruppe 1 | Zweiter Gruppe 2
| | BBPlayer | Presto | 54:10
| II | Zweiter Gruppe 1 | Sieger Gruppe 2
| | Zug | Dude | 18:40
| III | Sieger Gruppe 3 | Zweiter Gruppe 4
| | Sibesiech | freakyPlayer | 47:17
| IV | Zweiter Gruppe 3 | Sieger Gruppe 4
| | thomasFrech | fortuna | 25:39
|
H1 | Sieger I | Sieger III
| | Sibesiech | BBPlayer | 34:30
|
H2 | Sieger II | Sieger IV
| | fortuna | Dude | 10:54
|
Spiel um den 5. Platz (Vorentscheidung)
H3 | Zweiter I | Zweiter III
| | Presto | freakyPlayer | 41:21
|
H4 | Zweiter II | Zweiter IV
| | Zug | thomasFrech | 35:29
|
Sieger H1 | Sieger H2
| Dude | Sibesiech | 49:15
|
Spiel um den 3. Platz
Zweiter H1 | Zweiter H2
| BBPlayer | fortuna | 12:52
|
Spiel um den 5. Platz
Sieger H3 | Sieger H4
| Zug | Presto | 53:10
|
Endplatzierung
1. | Dude
| 2. | Sibesiech
| 3. | fortuna
| 4. | BBplayer
| 5. | Zug
|
Spiel | Zeit | Rot | Punkte Rot | Grün | Punkte Grün | Ergebnis | Kommentar
| rif35-153822 | 00:05:16.419 | Zug | 58 | whoTheFuckProgrammedThis.NudePlayer | 5 | no moves left | | rif35-154353 | 00:05:35.783 | FischRog.FischRog | 25 | whoTheFuckProgrammedThis.NudePlayer | 39 | | | rif35-154941 | 00:05:49.770 | BBplayer.BBplayer | 57 | whoTheFuckProgrammedThis.NudePlayer | 7 | | | rif35-155543 | 00:03:21.498 | whoTheFuckProgrammedThis.NudePlayer | 51 | zusammenfuegen.zusammenfuegen | 13 | | | rif35-155917 | 00:05:16.415 | FischRog.FischRog | 6 | Zug | 49 | red makes illegal move | | rif35-160446 | 00:05:50.289 | BBplayer.BBplayer | 47 | Zug | 17 | | | rif35-161049 | 00:00:12.626 | zusammenfuegen.zusammenfuegen | 2 | Zug | 2 | red exceeds time limit | | rif35-161115 | 00:06:00.544 | FischRog.FischRog | 16 | BBplayer.BBplayer | 48 | | | rif35-161728 | 00:00:12.409 | zusammenfuegen.zusammenfuegen | 2 | FischRog.FischRog | 2 | red exceeds time limit | | rif35-161753 | 00:00:18.700 | BBplayer.BBplayer | 4 | zusammenfuegen.zusammenfuegen | 1 | green exceeds time limit | |
Spiele Gruppe 2
Spiel | Zeit | Rot | Punkte Rot | Grün | Punkte Grün | Ergebnis | Kommentar
| rif36-153834 | 00:03:20.514 | fortuna.fortuna | 39 | Waldsterben | 25 | | | rif36-154208 | 00:03:53.132 | Waldsterben | 11 | freakyPlayer.freakyPlayer | 53 | | | rif36-154614 | 00:01:56.255 | goldkueste.Goldkueste | 33 | Waldsterben | 0 | red makes illegal move | | rif36-154823 | 00:03:34.727 | Waldsterben | 17 | cfmc.MyPlayer | 44 | green makes illegal move | | rif36-155210 | 00:04:19.681 | freakyPlayer.freakyPlayer | 26 | fortuna.fortuna | 18 | red makes illegal move | | rif36-155642 | 00:05:20.500 | fortuna.fortuna | 37 | goldkueste.Goldkueste | 27 | | | rif36-160215 | 00:05:35.343 | fortuna.fortuna | 53 | cfmc.MyPlayer | 11 | | | rif36-160803 | 00:02:55.587 | freakyPlayer.freakyPlayer | 0 | goldkueste.Goldkueste | 30 | green makes illegal move | | rif36-161111 | 00:02:36.900 | cfmc.MyPlayer | 15 | freakyPlayer.freakyPlayer | 13 | red makes illegal move | | rif36-161402 | 00:05:38.277 | cfmc.MyPlayer | 2 | goldkueste.Goldkueste | 61 | green makes illegal move | |
Spiele Gruppe 3
Spiel | Zeit | Rot | Punkte Rot | Grün | Punkte Grün | Ergebnis | Kommentar
| rif37-153916 | 00:02:30.615 | RhineValley.RhineValley | 26 | speedygonzales.SpeedyGonzales | 38 | | | rif37-154200 | 00:03:43.205 | speedygonzales.SpeedyGonzales | 21 | Speedy.Speedy | 43 | | | rif37-154556 | 00:03:45.296 | dude.Dude | 50 | speedygonzales.SpeedyGonzales | 14 | | | rif37-154954 | 00:04:20.405 | presto.Presto | 45 | speedygonzales.SpeedyGonzales | 19 | | | rif37-155427 | 00:02:36.761 | RhineValley.RhineValley | 25 | Speedy.Speedy | 9 | red exceeds time limit | | rif37-155716 | 00:03:58.60 | dude.Dude | 54 | RhineValley.RhineValley | 10 | | | rif37-160127 | 00:02:22.587 | RhineValley.RhineValley | 14 | presto.Presto | 12 | red exceeds time limit | | rif37-160402 | 00:05:09.757 | dude.Dude | 54 | Speedy.Speedy | 10 | | | rif37-160925 | 00:05:44.338 | presto.Presto | 51 | Speedy.Speedy | 13 | | | rif37-161522 | 00:06:09.996 | presto.Presto | 4 | dude.Dude | 60 | | |
Spiele Gruppe 4
Spiel | Zeit | Rot | Punkte Rot | Grün | Punkte Grün | Ergebnis | Kommentar
| rif38-153855 | 00:00:18.127 | rotfluhstrasse_12.rotfluhstrasse_12 | 5 | yarp.Player | 2 | green makes illegal move | | rif38-153927 | 00:00:10.466 | yarp.Player | 3 | thomasFrechsLion.ThomasFrechsLion | 3 | red makes illegal move | | rif38-153949 | 00:00:08.788 | yarp.Player | 3 | Sibesiech.Sibesiech | 3 | red makes illegal move | | rif38-154010 | 00:00:10.502 | yarp.Player | 3 | Champignon.Champignon | 3 | red makes illegal move | | rif38-154033 | 00:05:12.532 | rotfluhstrasse_12.rotfluhstrasse_12 | 1 | thomasFrechsLion.ThomasFrechsLion | 62 | no moves left | | rif38-154558 | 00:04:40.203 | Sibesiech.Sibesiech | 52 | rotfluhstrasse_12.rotfluhstrasse_12 | 12 | | | rif38-155051 | 00:05:54.821 | Champignon.Champignon | 29 | rotfluhstrasse_12.rotfluhstrasse_12 | 35 | | | rif38-155658 | 00:04:33.513 | thomasFrechsLion.ThomasFrechsLion | 9 | Sibesiech.Sibesiech | 55 | | | rif38-160144 | 00:05:36.565 | thomasFrechsLion.ThomasFrechsLion | 59 | Champignon.Champignon | 5 | | | rif38-160733 | 00:04:47.295 | Sibesiech.Sibesiech | 54 | Champignon.Champignon | 10 | | |
Teilnahme
Alle Studenten der Informatik II-Vorlesung sind aufgerufen, ein
Programm zur Teilnahme am Turnier einzusenden. Die Programme werden
gegeneinander antreten, um einen Sieger zu ermitteln. Die genauen
Wettkampfmodalitäten, also das System, nach dem der Sieger ermittelt
wird, hängen von der Anzahl der Teilnehmer ab und werden rechtzeitig
angekündigt.
Technisch müssen die Programme die Bedingungen erfüllen, die im Laufe
der Übungen vorgegeben wurden. Die Spielqualität selbst hat
keinen Einfluss darauf, ob das Programm teilnehmen kann oder
nicht. (Aber natürlich aller Voraussicht nach auf die Platzierung.)
Selbstverständlich müssen die Reversi-Spielregeln eingehalten
werden, da nur so ein sinnvolles Spiel möglich ist. Ausserdem wird ein
Mindestmass an Kooperation verlangt, um den technischen Ablauf
eines Spiels nicht zu gefährden.
Wettkampfbedingungen
Von der Anzahl der Einsendungen hängt ab, auf welche Weise der Sieger
ermittelt wird. Bei vielen Teilnehmern werden Vorrunden ausgetragen,
deren Sieger dann in der Finalrunde gegeneinander antreten. Bei
wenigen Teilnehmern kann jeder gegen jeden antreten. Die
Zeit, die pro Zug zur Verfügung steht, beträgt
5 Sekunden. Wenn ein Programm dieses Limit
überschreitet, gilt das Spiel als verloren.
Die Spielprogramme werden auf einer Sun Workstation Ultra-1
ausgeführt. Diese Rechner stehen in den Studentenpools des IFW zur
Verfügung.
Anmeldung Programme müssen bis Donnerstag, 28. Juni, 24
Uhr bei uns eingegangen sein. Alle Programmteile müssen in
Java geschrieben sein und sowohl im Quellcode als auch als
übersetzte Klassendateien abgegeben werden. Einsendungen ohne
vollständigen Quellcode können nicht teilnehmen! Einsendungen
bitte per Mail an Harald Vogt
senden. Wenn möglich, sollten alle notwendigen Dateien in einer
ZIP-Datei oder einem tar-Archiv zusammengefasst werden. Ausserdem
bitten wir um die Wahl eines Namens für das Programm
und alle Klassen sollten Teil eines Package sein, das
eben diesen Namen trägt. Das erleichtert uns die Benennung der
Programme.
Programme
Wir verwenden zur Austragung des Turniers ein Monitor-Programm, das
ein animiertes Reversi-Spielbrett zeigt und die Spieler-Programme
überwacht. Dieses Programm kann hier heruntergeladen werden, um die
eigene Implementierung auf Verträglichkeit zu testen. Dieses
Programm soll nicht zusammen mit dem eigenen Programm eingesendet
werden! Allfällige Probleme bitte melden!
Der Monitor wurde unter Linux entwickelt und getestet. Es ist zu
erwarten, dass die Animation der Spielzüge unter anderen Systemen
(Solaris, Windows) nicht unbedingt zufriedenstellend
funktioniert. Dies soll demnächst behoben werden. Wer selbst eine
Lösung hackt, kann sie mir gerne mitteilen.
Der Monitor wird wie folgt aufgerufen: java
reversi.Arena 4711 package1.spieler1 package2.spieler2
5000 Dabei ist "4711" ein beliebiger String (ohne
Space), der das Spiel bezeichnet. Durch diesen Namen kann man mehrere
durchgeführte Spiele bei der Auswertung
unterscheiden. "package1.spieler1" bezeichnet Paket und Klasse des
roten Spielers, analog ist "package2.spieler2" der grüne
Spieler. "5000" ist die Zeit, die pro Zug zur Verfügung steht.
Der Monitor legt eine Logdatei an (reversilog ), in der
alle Spielzüge aufgezeichnet werden. Diese Logdatei wird verwendet, um
Auswertungen für mehrere Spiele zu erstellen. Dazu gibt es ein Skript,
das aus der Logdatei eine HTML-Seite erzeugt, die mit einem Browser
angeschaut werden kann. Benutzung des Skripts:
chart >chart.html
Code des Monitors: [monitor.tar.gz][monitor.zip]
Skript zur Auswertung der
Logdatei: [chart]
|