ETH Zurich :
Computer Science :
Pervasive Computing :
Distributed Systems :
Education :
I2 HS2020 :
Reversi
| Informatik II Vorlesung
| Turnier
| Arena
| Installation
| Probleme
| Literatur
|
Reversi-Turnier HS 2020
Auch dieses Jahr werden wir in der letzten Semesterwoche, am Freitag 18.12. von 13:00 bis 14:00 Uhr Online via Zoom, wieder ein Reversi-Turnier veranstalten
bei dem es coole Gadgets zu gewinnen gibt!
Teams können beliebig gross sein, es gibt aber pro Team maximal zwei Preise, also
bieten sich zweier Teams an.
Die Abgabe-deadline für die Spieler ist am Mittwoch 16.12.2020 23:59.
|
1x DJI Tello Drone
Mit Hilfe von Technologien von DJI und Intel hat Ryze Technology die kleinste Drohne in der DJI-Palette entwickelt. Mit nur knapp 80 Gramm und mit einer Geschwindigkeit von bis zu 8 Metern pro Sekunde lassen sich akrobatische Flug-Kunststücke für höchsten Spielspass durchführen. Die kleine Drohne lässt sich per App mit dem Handy oder Tablet steuern und bietet sogar Kompatibilität für einen zusätzlichen Controller oder ein Virtual Reality Headset an. Trotz der geringen Grösse haben es die Entwickler geschafft eine Kamera inklusive elektronischer Bildstabilisierung in die Drohne zu integrieren. Der Flugspass ist besonders auch für Drohnenanfänger und Kinder geeignet und bietet dazu ein wesentlichstes zusätzliches Feature. Ryze Technology stellt nämlich ein ausgearbeitetes SDK (Software Development Kit) zur freien Programmierbarkeit der Drohne zur Verfügung. Um vor allem Kindern den Einstieg in die Welt des Programmierens schmackhaft zu machen, wird neben dem Tello SDK auch die visuelle Programmiersprache „Scratch“ unterstützt und ist dazu auch insbesondere für Nutzer mit vorhandenen Programmierkenntnissen eine durchaus interessante Drohne.
|
|
2x Ultimate Ears (UE) Wonderboom 2
Extrem mobiler Bluetooth-Lautsprecher mit überraschend sattem Sound, der so frisch und bombastisch ist wie ein Open-Air-Konzert. Jetzt mit Outdoor-Modus.
|
|
1x Raspberry Pi 4 B (4GB)
Der Raspberry Pi mit 1.5GHz 64-bit quad-core processor, dual-band wireless LAN, Bluetooth 4.2/BLE, faster Ethernet, and Power-over-Ethernet support (with separate PoE HAT)
|
|
2x Pimoroni Raspberry Pi Zero W Project Kit - Pirate Radio
Baue dein eigenes Internet Radio mit dem Pirate Radio Kit.
|
|
1x Pimoroni Raspberry Pi Zero W Project Kit - Scroll Bot
Ein Robofreund für auf den Tisch, welcher dir News, Tweets, das Wetter vorliest. Der Scrollbot verbindet den Pi Zero mit dem neuen Swish Scroll pHAT HD Board, und kleidet sich in einem schicken Orange, perfekt um auf dem Tisch oder auf einer Ablage zu liegen. Es ist dafür gedacht Nachrichten mit simplen Animationen zu visualisieren. Mit dem integrierten WLAN kann es aus dem Internet Nachrichten holen und wiedergeben.
|
|
2x Pimoroni Raspberry Pi Zero W Project Kit - Mood Light
Eine schöne, moderne Mood Lampe, welche grossartig auf dem Tisch oder auf dem Schrank aussieht und welche mit dem Internet verbunden ist. Diese Lampe kann zum Beispiel auch mit Twitter verbunden werden um den Gemütszustand der Tweets darzustellen oder bei Sonnenaufgang und Untergang aufzuleuchten.
|
|
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.
|
|
3x Evernote Smart Notebook
Nachdem du deine Notizen in Evernote digitalisiert hast, kannst du sie auf all deinen Geräten durchsuchen und hast somit überall und zu jeder Zeit Zugriff darauf. Per Smart Sticker kannst du zudem bestimmte Seitenelemente mit gewünschten Notizbüchern verbinden, wie zum Beispiel deine Packliste mit deinem Reisenotizbuch. Über freigegebene Notizbücher kannst du deine Notizen selektiv mit Freunden, Familienmitgliedern und Kollegen teilen.
|
|
1x Tile
From lost to found. The little Bluetooth tracker, paired with an intuitive app, makes it easy to find everything that matters.
|
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 16.12.2020 23:59
ü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.
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
Im Vergleich zu früheren Jahren bietet die aktuelle Version des Frameworks eine effizientere Gameboard
Implementation und 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.
- Es gibt ein fertiges Eclipse und ein IntelliJ Projekt was die *.jar, javadoc, HumanPlayer sowie die nötigen configuration fürs Ausführen und *.jar erstellen enhalten: Eclipse Project und IntelliJ Project
Probleme
Bei Problemen mit der Reversi-Distribution gehen Sie bitte nach folgender Eskalationsstrategie vor:
- Konsultieren Sie die Dokumentation.
- Wenden Sie sich per Email an Ihren Übungsgruppenleiter.
- Wenden Sie sich per Email an Alexander Viand.
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 https://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 sollte über das Netz der ETH bzw. via VPN kostenlos
möglich sein
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 online, wurde aber inzwischen mehrmals überarbeitet.
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.
Kontakt
Bei Fragen oder Problemen bezüglich der Reversi-Platform wenden Sie sich bitte an
|