Small logo of ETH main building ETH Zurich : Computer Science : Pervasive Computing : Distributed Systems : Education : I2 FS2016 : Reversi

| Informatik II Vorlesung | Turnier | Arena | Installation | Probleme | Literatur |

Reversi-Turnier FS 2017

Reversi-Turnier findet am Mittwoch, den 31.05.2017, ab 12:30 Uhr, im CABinett (Stuz2) statt. Wie auch in den letzten Jahren organisierten wir das Turnier gemeinsam mit dem AMIV. Nochmal herzlichen Glückwunsch an den Gewinner ichVerstahNur.Bahnhof und den Zweitplatzierten Trash.Can! Hier gibt es ein paar Eindrücke vom 2017.

Preise

Auch dieses Jahr werden unter den Gewinnern coole Gadgets vergeben - und zwar jeweils zwei pro Team. Für jedes Team, welches das Viertelfinale erreicht, ist etwas dabei (Preise noch vom letzten Jahr!):
Speaker 1x JBL Flip3 Bluetooth Speaker

"JBL Flip 3 ist die nächste Generation in der preisgekrönten Flip-Serie: es ist ein komplett ausgestatteter tragbarer Bluetooth-Lautsprecher, der überall einen ausserordentlich kraftvollen, raumfüllenden Stereo-Sound erzeugt. Dieser kompakte Lautsprecher verfügt über einen wiederaufladbaren 3.000mAh-Lithium-Ionen-Akku, der ausreichend Leistung für 10 Stunden von reinem, hochwertigen Musikgenuss bietet. Mit seinen langlebigen, spritzwasserfesten Materialien in 8 verschiedenen lebhaften Farben ist der Flip 3 ein perfekter Begleiter bei jedem Wetter und bindet die Musik in jeden Bereich Deines Lebens ein - am Schreibtisch wie am Pool, an sonnigen Morgen wie in verregneten Nächten. Flip 3 verfügt zudem über eine Geräusch- und Echounterdrückungsfunktion für kristallklare Telefonate, sowie über JBL Connect für die drahtlose Verbindung mehrerer JBL Connect-fähiger Lautsprecher und ein noch intensiveres Musikerlebnis."
Amazon 3x Amazon Echo Dot (2. Generation)

"Amazon Echo Dot ist ein sprachgesteuertes Gerät, das mithilfe von Alexa Musik wiedergibt, deine Smart Home-Geräte steuert, Informationen bereitstellt, die Nachrichten liest, Wecker stellt und vieles mehr."
Raspberry Pi 3 Model B 3x Raspberry Pi 3 Model B + Gehäuse + Speicherkarte

"The Raspberry Pi is a low cost, credit-card sized computer that plugs into a computer monitor or TV, and uses a standard keyboard and mouse. It is a capable little device that enables people of all ages to explore computing, and to learn how to program in languages like Scratch and Python. It’s capable of doing everything you’d expect a desktop computer to do, from browsing the internet and playing high-definition video, to making spreadsheets, word-processing, and playing games." (https://www.raspberrypi.org/help/what-is-a-raspberry-pi/)
Fitbit Aria 2x Fitbit Charge HR

"Dieses schmale, modische Armband kannst du rund um die Uhr tragen. Tagsüber zeichnet es Schritte, Strecke, Herzfrequenz und verbrannte Kalorien auf. In der Nacht verfolgt es deinen Schlafrhythmus und morgens weckt es dich geräuschlos auf." (www.fitbit.com)
Reversi-Brettspiel 1x Reversi-Brettspiel aus Holz

"Ein altbekanntes Strategiespiel für 2 Spieler, welches das logische Denken fördert. Maße (cm): B 25 x L 25" (www.spiel-viel.de)
Amphiro 1x Amphiro b1

"Die erste intelligente Verbrauchsanzeige mit drahtloser Verbindung sendet die Verbrauchsdaten via Bluetooth 4.0 zu Ihrem Mobiltelefon. Amphiro b1 ist eine ressourcenschonende, aber auch belohnende Erfahrung und hilft Ihnen 440 kWh Wärmeenergie sowie 8.500 l Trink- und Abwasser zu sparen – jedes Jahr. Die Module von Amphiro benötigen keine Batterien oder Netzinstallationen, da sie ihre Energie aus dem fließenden Wasser gewinnen. Die Technologie ist das Ergebnis einer engen Zusammenarbeit mit der ETH Zürich und der Hochschule Luzern." (http://amphiro.com/)
Power Bank 4x Evernote Smart Notebook

"The new Evernote Smart Notebook designed by Moleskine uses Evernote's Page Camera feature to capture the pages of your notebook with your smartphone or tablet. Smart Stickers introduce Smart Tagging into your workflow. When you capture a page with Evernote, the Smart Sticker icons become searchable, digital tags that make it easy to keep your ideas organized and to keep your digital and analog workspaces synced. 3 months Evernote Premium subscription included."
Power Bank 2x Slim Powerbank

Othelligence Event

Dieses Jahr findet ca. 2 Wochen vor dem Turnier ein Spezial-Event statt. An der Othelligence gibt es die Möglichkeit, von einem Profi-Othellospieler Tipps für Strategien zu bekommen. Das Event richtet sich an alle, die sich für Reversi/Othello interessieren. Spezielle Vorkenntnisse sind nicht notwendig. Weitere Informationen sind auf der Webseite von Othelligence erhältlich.

Regeln

Es gibt verschiedene Varianten dieses einfachen Spiels. Wir verwenden diese Regeln: reversi-spielregeln.pdf

Einsendungen

Wer selbst mit einem Spieler teilnehmen möchte, muss diesen bis spätestens Mittwoch, den 24.05.2017, 23:59 Uhr (Zürich Time) über die Reversi-Platform einsenden. Dabei müssen folgende Regeln beachtet werden:

  • Teilnehmen können Sie entweder alleine oder im Zweierteam. Alle Teammitglieder müssen jedoch dieses Semester die Vorlesung "Informatik II für ITET" belegt haben.
  • Alle Programmteile müssen in Java geschrieben sein und als Quellcode abgegeben werden. Die Einbindung von C++-Code (z.B. über JNI) ist nicht gestattet. Einsendungen ohne vollständigen Quellcode können nicht teilnehmen!
  • Alle Programmteile müssen in einem eigenen Package untergebracht sein (also nicht im Reversi-Package!)
  • Das Programm muss sich mit Java 1.8 übersetzen und ausführen lassen.
  • Verwenden Sie UTF-8 für Ihre Quelldateien.
  • Zitieren ist erlaubt – Abschreiben nicht: Falls Sie Teile Ihres Quellcodes von anderen Spielern kopiert haben, so müssen Sie das im Quellcode kenntlich machen. Anderenfalls ist das ein Disqualifikationsgrund.
  • Ihr Spieler muss eine eigene Leistung erkennen lassen, um am Turnier teilnehmen zu können, d.h. Sie können also nicht einfach einen RandomPlayer abgeben!
  • Sie können Ihren Spieler im Vorfeld des Turniers gegen andere, etablierte Spieler antreten lassen (El Pulpo, Holy Gamma). Informationen, wie man diese Spieler einbindet, finden Sie in dieser Readme. Die Zugangsdaten erhalten Sie von Ihrem Übungsgruppenleiter.
Bitte senden Sie zusätzlich den Quellcode, unter Angabe des Paket- und Klassennamens in einem (zip-, tar- oder rar-) Archiv, per E-Mail an Leyna Sadamori. Nennen Sie bitte in der E-Mail den Vor- und Nachnamen der Autoren und tragen Sie als Betreff "Reversispieler" ein.

Wettkampfbedingungen

  • Die Zugdauer beträgt 5 Sekunden, der für Ihren Spieler verfügbare Speicher 128 MB. Diese Angaben gelten als Richtwert und können für das richtige Turnier variieren.
  • Wird das Zeitlimit überschritten oder ein ungültiger Zug gemacht, gilt das Spiel als verloren.
  • Es sind keine zusätzlichen Threads erlaubt (dazu zählt auch der Aufruf des Garbage Collectors), die Priorität des gegebenen Threads darf nicht verändert werden.
  • Um einen störungsfreien Ablauf des Turniers zu gewährleisten, dürfen die Spieler keine GUI-Elemente verwenden (wie z.B. Fenster öffnen) oder die System-Streams (System.in, System.out, System.err) umleiten. Textausgabe auf die Konsole ist jedoch erlaubt.
  • "Unfaires" Verhalten, wie z.B. Netzwerkzugriffe, exzessive Berechnungen während des Konstruktors bzw. des initialize()-Aufrufs oder Manipulationsversuche führen zum Ausschluss vom Turnier.

Ermittlung des Siegers

Die genauen Wettkampfmodalitäten, also das System, nach dem der Sieger ermittelt wird, hängen von der Anzahl der Teilnehmer ab und werden vor Beginn des Turniers angekündigt. Typischerweise gibt es 2-4 (abhängig von der Anzahl der Einsendungen) parallel durchgeführte und zufällig ausgeloste Vorrunden. Jeweils die Gruppensieger oder die zwei Gruppenersten kommen in die Finalrunden, in denen dann nach dem K.O.-System gespielt wird.

Reversi-Arena

Für Reversi haben wir ein Programm namens Arena entwickelt, welches es ermöglicht, Computerspieler gegeneinander antreten zu lassen. Dieses Programm befindet sich im Reversi-Framework zusammen mit dessen öffentlichen Schnittstellen und internen Implementierungen. Das Framework gibt es als Paket, welches Sie bei sich lokal installieren müssen.

Installation

Achtung, neue Version (18.04.2016)! Die neue Version bietet zusätzlich weitere Startpositionen (Option -s, siehe Dokumentation), ist aber vollständig backwards kompatibel.

  • Das Reversi-Framework können Sie hier beziehen: reversi.jar
  • Hier gibt es eine kurze Anleitung zur Integration des Reversi-Frameworks in Eclipse.
  • Die Dokumentation können Sie hier beziehen: reversi-doc.zip. Binden Sie sie über den Java Build Path, Reiter "Libraries" an das Jarfile an. Expandieren Sie hierzu den Punkt "reversi.jar" und setzen Sie die "Javadoc location" auf das reversi-doc.zip-Archiv.
  • Für das Reversi-Turnier benötigen Sie - wie auch für die Übungen - Java Version 1.8. Ihre Java-Version können Sie mit dem Befehl java -version feststellen.
  • Die main-Methode ist in der Klasse reversi.Arena. Die Dokumentation erklärt nähere Details.

Probleme

Bei Problemen mit der Reversi-Distribution gehen Sie bitte nach folgender Eskalationsstrategie vor:
  1. Konsultieren Sie die Dokumentation.
  2. Wenden Sie sich per Email an Ihren Übungsgruppenleiter.
  3. Wenden Sie sich per Email an Leyna Sadamori.
Bekannte Probleme:
  • Unter Ubuntu 8.10 mit Gnome wurden Probleme mit dem X-Server festgestellt, die nicht direkt vom Reversi-Framework ausgelöst werden.
    Bisher ist leider keine Lösung – ausser auf ein anderes System umzusteigen – bekannt.
  • Alte Eclipse-Versionen 3.2.x unterstützen die .launch-Dateien noch nicht.
    Installieren Sie die aktuelle Version, die Sie unter http://www.eclipse.org/downloads/ finden (Eclipse IDE for Java Developers). Beachten Sie, dass manche Linux-Distributionen ältere Versionen im Paketmanager anbieten.

Literatur

Der Zugriff auf die unten angegebenen Dokumente ist passwortgeschützt. Bitte fragen Sie Ihren Übungsgruppenleiter nach Benutzernamen und Passwort. Bei Problemen können Sie sich an Leyna Sadamori wenden.

Des Weiteren finden sich hier hilfreiche Tipps und Erklärungen zu Implementierungen, Bewertungsfunktionen und Strategien (zur Verfügung gestellt von Severin Wischmann).

Reversi-Platform

Die Reversi-Platform dient als Trainingsarena für Ihre Reversi-Player. Sie ist seit dem Frühjahrsemester 2015, und somit erst das zweite Mal im Einsatz. Sie wird deshalb unter den gewonnen Erfahrungen und mithilfe des Feedbacks von Studenten stetig ausgebaut. Jeder Student kann einen oder mehrere Reversi-Player hochladen und gegen andere Teilnehmer der Platform antreten. Ein Ratingsystem, das sogenannte ELO-Rating, bewertet die Spieler nach ihrer Stärke, basierend auf der bisher absolvierten Spiele und deren Ausgänge.

Die Verwendung der Platform zum Trainieren ist freiwillig, jedoch ist die Verwendung der Platform zur Einsendung eines Spielers für das Turnier zwingend. Weitere Informationen finden Sie auch auf der Platform unter FAQ.

Login

Für den Login verwenden Sie bitte Ihren nethz-Account.

Upload

Um einen Reversi-Player hochzuladen, klicken Sie in der Profilansicht auf das "+"-Symbol oben rechts. Bitte beachten Sie die Namensgebung Ihres Spielers.

Einsendungen zur Turnierteilnahme

Für die Teilnahme am Turnier markieren Sie bitte einen Ihrer Reversi-Player für die Teilnahme am Turnier. Hierfür klicken Sie neben einem Ihrer Reversi-Player auf den "Submit"-Button. Eine erfolgreiche Einsendung wird Ihnen durch den Wechsel des Buttontexts auf "Submitted" angezeigt. Bitte beachten Sie, dass für die Einsendefunktion zuerst die Turnierphase freigeschaltet werden muss!

Kontakt

Bei Fragen oder Problemen bezüglich der Reversi-Platform wenden Sie sich bitte an
ETH ZurichDistributed Systems Group
Last updated July 7 2017 12:40:24 PM MET hs