Links und Funktionen
Sprachumschaltung

Navigationspfad


Inhaltsbereich

Projektgalerie

7 von insgesamt 18 interessanten Abschlussprojekten zur FFP, deren Autoren der Veröffentlichung inklusive Quellcode zugestimmt haben (weitere folgen hoffentlich noch)
Checkers in Haskell Projektname Checkers in Haskell
Autor Henrik Wachowitz, Philipp Koch
Kurzbeschreibung

Als Vorbild für dieses Projekt diente der im Systempraktikum bereitgstellte Dame-Server.

Es soll möglich sein auf dem Webserver gegen andere ein Spiel zu spielen. Das wird über eine eindeutige GameID realisiert, die genutzt wird um einem Spiel, das von jemand anderem erstellt wurde beizutreten. Der Zustand eines Spiels wird auf einer Datenbank abgelegt. Somit kann ein Spiel auch unterbrochen und wieder aufgenommen werden. Der Server überprüft ob ein Spielzug gültig war und gibt ggf. einen Fehler an den Nutzer. Der Server kann auf "http://localhost:3000" erreicht werden.

Materialien ffp-dame.zip
connectfour Projektname connectfour
Autor Daniel Ellert
Kurzbeschreibung

connectfour ist ein "Vier gewinnt"-Spiel implementiert in Haskell. Es bietet sowohl einen Singleplayer als auch einen Multiplayer Modus an.
Die GUI der Applikation wird per Webbrowser unter der Adresse http://127.0.0.1:8023/ aufgerufen.

Um die Applikation zu bauen und zu starten folgende Befehle im Projektverzeichnis ausführen:
$ stack build
$ stack exec connectfour-exe

Materialien connectfour.zip
FUN 2000 Projektname FUN 2000
Autor Filip Hristov, Adina Klink
Kurzbeschreibung

Das Spiel "FUN 2000", inspiriert vom klassischen "Asteroids" Spiel wurde in Haskell implementiert mit Hilfe der Bibliothek Gloss.

Das Hauptziel ist es, eine möglichst hohe Punktzahl zu erhalten, indem man sich als Spaceship im Weltraum bewegt (arrow keys) und die Disco Asteroids abschießt (spacebar). Zusätztliche Powerups auf dem Spielfeld ("Extra Life" und "The Applicative Functor") erhöhen die Interaktivität und die Wiederspielbarkeit. In der README Datei finden Sie Instruktionen für die Ausführung des Spiels.

Viel Spaß beim Spielen wünscht das FUN2000-Team :) 

Materialien haskell_game.zip
Klötzchenchaos Projektname Klötzchenchaos
Autor Pascal Eckmann, Dominik Heinrich, Patrick Mailänder
Kurzbeschreibung

Implementierung des beliebten Spiels Tetris, inklusive einer persistenten Highscoreliste mit Sortier- und Suchfunktion.

Das Projekt wurde robust umgesetzt mit Gtk2hs/Cairo und nutzt Laziness in einer essentiellen Weise aus. Eine kurze Installations- und Bedienungsanleitung zu dem Programm ist enthalten.

Materialien kloetzchenchaos.zip
PVI Stats Projektname PVI Stats
Autor Florian Edelmann, Markus Jürgens, Thomas Kagermeier
Kurzbeschreibung

PVI Stats

Statistiken über deine Noten 

Lade dein Notentranskript-XML (pruefungen.xml) von der Uni-Webseite hier hoch und analysiere deinen Studienfortschritt.

Haskell Setup

  1. Installiere Stack
  2. Installiere das yesod command line tool: stack install yesod-bin --install-ghc
  3. Baue das Projekt: stack build
  4. Starte den Webserver: stack run (für mehr Debug-Ausgaben und automatisches Rekompilieren bei Änderungen: stack exec -- yesod devel) 

Test-Daten

Im Ordner sample-data befinden sich einige (anonymisierte) pruefungen.xml-Dateien zum Testen. bernd_neu.xml ist von der gleichen Person wie bernd.xml, allerdings später abgerufen

Materialien PVI_Stats.zip
webchess Projektname webchess
Autor Maximilian Lutz
Kurzbeschreibung

webchess

A web-based chess platform with human-human & human-AI Games that allows for spectators and has many social features, such as rankings, a lobby and more. Webchess is written completely in Haskell for the final project of the course Fortgeschrittene funktionale Programmierung @LMU Munich by Maximilian Lutz.

build

easiest to build with stack via:

stack build webchess --ghc-options "-O2 -threaded" stack exec webchess --rts-options "-N4"

features

  • accounts & elo system
    Users can create an account and modify their profile. There is an elo system that allows for ranking the users.
  • human-human games
    Users can play against each other. The board is clickable, there is a spectator mode (that means everybody can follow the game with live 
    autoupdates by just visiting the stable link of the game) There is account verification, so only the authorized players can make moves.
  • AI games
    The user can choose to play against two available AIs:
    • Easy: The easy AI is just a vanilla min-max-search (with a depth of 4). This AI computes in parallel and uses all available cores on the server system. (Note: in some situations the computation can take up to a few minutes)
    • Medium: The medium AI uses an alpha-beta-pruning algorithm with dynamical search depth, move ordering, horizontal pruning & quiescence search (quiescence yet to be implemented). Moreover the medium AI utilizes an opening book. Static board evaluation is done by piece-square tables with game phase differentiation. 
  • platform features
    The platforms allows to see profiles of other users, join a lobby to find others that are currently searching to be challenged to a game, provides a list of running games (for spectators) and a highscore ranking (by elo) of the best users on the platform
Materialien webchess_galerie.zip
Zugkontrolle Projektname Zugkontrolle
Autor Wolfgang Witt
Kurzbeschreibung

Ermöglicht die nebenläufige Steuerung einer Modelleisenbahnanlage über einen Raspberry Pi. Unterstützte Zugtypen sind (analoge) Märklin- und Lego-Modelleisenbahnen. 

Die Funktion der Pins wird mit eigenen Datentypen realisiert, welche zur Laufzeit erstellten werden können. Je nach Datentyp stehen einem so registrierten Pin vorgefertigte Aktionen (z.B. Schalten einer Weiche, Schalten eines Streckabschnitts, Schalten einer Kupplung, Regeln der Geschwindigkeit) zur Verfügung. Mehrere Aktionen lassen sich komponieren zu komplexeren Wegstrecken und (ggf zeitgesteuerten) Plänen.

Die Festlegung erfolgt wahlweise über ein CLI (Command Line Interface) oder eine GUI, wobei letztere mit Hilfe der Haskell Pakete GTK3 und Lens realisiert wurde.

Weitere Informationen zu den Fähigkeiten der Software, Quellcode und Installationsanweisung finden sich auf:

https://github.com/spamviech/Zugkontrolle/tree/FFP-Abgabe


Materialien Zugkontrolle-FFP-Abgabe.zip

Artikelaktionen


Funktionsleiste