a haskell implementation of Game 2048 https://github.com/Javran/h2048

Latest on Hackage:

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.

MIT licensed by Javran Cheng
Maintained by Javran.C@gmail.com


Build Status

A haskell implementation of Game 2048. Including:

  • a library for experimenting game strategies for Game 2048
  • a simple CLI that merely pretty-prints the game board
  • a better CLI implemented using vty-ui

Based on 2048


Simple CLI version

vty CLI version

Build and run

With cabal

h2048 is now available on hackage.

If you have Cabal installed, you can use the following command to install this project:

cabal update
cabal install h2048

The binaries are h2048-simple for simple CLI version, h2048-vty for CLI version implemented using vty-ui.


If you just want the functionality of this library, you can turn off flag exe. If you have trouble building the vty CLI version, you can try to turn off flag vty.

An example for turning off flag vty:

# if you are installing package from hackage:
cabal install --flag="-vty"

# or if you are building from the github repo
cabal configure --flag="-vty"
cabal build

Without cabal

First make sure the following dependencies are installed:

In addition, if you want to play with vty CLI version, the following dependencies are also required:

You can use following commands to run the program without cabal:

cd src # assume your working directory is the project home.
# to play the simple CLI version
runhaskell MainSimple.hs
# to play the vty CLI version
runhaskell MainVty.hs

How to play


  • q: quit
  • i: up
  • k: down
  • j: left
  • l: right

If you are using h2048-vty, you can also use arrow keys.


  • build with vty 5 and vty-ui 1.8 (thanks to @vikraman)

  • conditional flags: exe and vty
  • can now proceed after winning the game
  • version number changed from to due to version policy
  • change System.Game to Game
Depends on 7 packages:
Used by 1 package:
comments powered byDisqus