Skip to content

Haskell project for the course "fortgeschrittene funktionale Programmierung" @ LMU Munich

Notifications You must be signed in to change notification settings

lm1909/webchess

Repository files navigation

webchess

A web-based chess platform with human-human & human-AI Games that allows for specators 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"

screenshots

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 is parallelized 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.

About

Haskell project for the course "fortgeschrittene funktionale Programmierung" @ LMU Munich

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published