yampa2048: 2048 game clone using Yampa/Gloss

[ game, mit, program ] [ Propose Tags ]

A simple game clone of a popular 2048 game using Yampa FRP library and Gloss for graphics.

Use the arrow keys to slide the rows or columns of the board and try to survive for as long as possible. When there is no more move possible you will be presented with a game over message for 5 seconds and the game will be restarted after that.

[Skip to Readme]


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Versions [RSS]
Dependencies base (>=4.7 && <4.8), gloss (>=1.9 && <1.10), random, Yampa (>=0.9 && <0.10) [details]
License MIT
Copyright (C) 2015 Konstantin Saveljev, Josh Kirklin, Maia Werbos
Author Konstantin Saveljev <konstantin.saveljev@gmail.com>
Maintainer Konstantin Saveljev <konstantin.saveljev@gmail.com>
Category Game
Home page https://github.com/ksaveljev/yampa-2048
Bug tracker https://github.com/ksaveljev/yampa-2048/issues
Uploaded by ksaveljev at 2015-02-05T09:29:55Z
Reverse Dependencies 1 direct, 0 indirect [details]
Executables yampa2048
Downloads 1040 total (5 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
Last success reported on 2015-05-21 [all 7 reports]

Readme for yampa2048-

[back to package description]

2048 game clone using Yampa FRP library

After trying to grasp the idea of FRP (mostly concentrating on Yampa library) I have finally found myself understanding it enough to write something simple.

yampa-2048 using Gloss

This project is based on some code by other people. I wasn't interested in implementing the logic of 2048 myself or drawing to Gloss window from scratch. As a result this repository contains some chunks of the code written by other people:

Josh Kirklin and his excellent implementation of 2048 in Elm provided me with the game logic.

Maia Werbos and her great implementation of 2048 using Gloss provided me with the rendering chunk of code.

I was able to come up with my solution after reading the code by Keera Studios and their amazing Haskanoid project


cabal sandbox init
cabal install --dependencies-only
cabal run

The gameplay is pretty simple. Nothing fancy. Try to survive for as long as possible.

Things I would like to change but probably won't:

  • Gloss lacks the ability to style the font, therefore those numbers don't look nice but as long as works it seems to be ok
  • I wanted the game to exit upon the Esc button press but didn't bother to investigate why it is not closing or how to do it