Skip to content

beleon/sokoban

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sokoban

An implementation of the classic Sokoban game in Haskell. The fully functioning prototype including one hardcoded map and a very simple terminal UI was build over the course of two train rides. Later a basic GUI was added using the awesome SDL2 Haskell bindings.

Acknowledgements

The free pixel art used for the game comes from these awesome artists:

The Dino Rush project was a very helpful reference that helped me make sense of the SDL2 Haskell bindings.

What works

  • Basic GUI
  • Complete game logic
  • Advancing to the next level

Not supported (yet)

  • Level selection
  • Undo move
  • Move counter
  • Game menu
  • Sound

Dependencies

  • stack
  • sdl2
  • sdl2-image

Installation

Clone the project, change into the root directory of the project and use

stack build && stack exec sokoban

to first build and then run Sokoban.

How to play

Use arrow keys or vim style keybindings to move. Press r to restart a level. Map will automatically change after successfully finishing a level.

Rules

Push all boxes on top of goals. Pulling boxes is not possible.

Releases

No releases published

Packages

No packages published