AD Teaching Wiki:

Es gibt drei Projekte zur Auswahl:

Projekt 1: 2048 (Das Spiel)

Projekt 2: 2048 (Automatischer Löser)

Projekt 3: Ein Projekt eigener Wahl (nur für Fortgeschrittene)

Im Folgenden werden wir zunächst das Spielprinzip von 2048 erklären und danach die drei Projekte detaillierter beschreiben.

Spielprinzip von 2048

Projekt 1: 2048 (das Spiel)

Implementieren Sie das Spiel 2048 mit Konsolengrafik (verwenden Sie hierfür ncurses).

Anforderungen (Minimum)

Folgende Anforderungen müssen Sie mindestens erfüllen, um volle Punktzahl zu erreichen.

Anforderungen (Optional)

Wenn Sie möchten, können Sie ihr Spiel um beliebige Funktionalitäten erweitern (müssen es aber nicht, um volle Punktzahl zu bekommen). Hier sind einige Ideen:

Projekt 2: 2048 (Automatischer Löser)

Die Formulierung in diesen Absatz werden noch überarbeitet, vom Prinzip her sind aber alle Informationen schon enthalten.

Implementieren Sie ein Programm, das versucht 2048 automatisch zu lösen. Als Hilfe stellen wir Ihnen die Bibliothek libgame2048.a zur Verfügung. Diese enthält eine Klasse Game2048State mit den folgenden Methoden:

Anforderungen

Folgende Anforderungen müssen Sie erfüllen, um volle Punktzahl zu erreichen.

Tipp

Überlegen Sie sich eine nicht-triviale heuristische Funktion, die bewertet, wie gut ein Zustand ist. Schreiben Sie eine Methode, die einige Züge simuliert und einen Zug in die Richtung des bestmöglichen Zustandes macht. Behandeln Sie dabei die zufällige Kachel als den Gegner (siehe Vorlesung 11) und simulieren Sie auch verschiedene (bzw. alle) Züge des Gegners, um den Erwartungswert zu approximieren (bzw. zu berechnen) (siehe Expectimax).

Projekt 3: Ein Projekt Ihrer Wahl

Alternativ zu den beiden oben beschriebenen Projekten können Sie auch ein Projekt Ihrer Wahl, das in Umfang und Komplexität vergleichbar zu den beiden Projekten ist, wählen.

Anforderungen (Minimum)

AD Teaching Wiki: ProgrammierenCplusplusSS2020/Projekt (last edited 2020-07-21 12:58:40 by adpult)