https://github.com/haukesomm/sokoban
Clone of the popular puzzle game Sokoban with a web-based frontend written in fritz2
https://github.com/haukesomm/sokoban
fritz2 kotlin sokoban
Last synced: 6 months ago
JSON representation
Clone of the popular puzzle game Sokoban with a web-based frontend written in fritz2
- Host: GitHub
- URL: https://github.com/haukesomm/sokoban
- Owner: haukesomm
- License: mit
- Created: 2020-03-06T21:26:54.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2025-04-05T21:27:46.000Z (6 months ago)
- Last Synced: 2025-04-05T22:24:12.595Z (6 months ago)
- Topics: fritz2, kotlin, sokoban
- Language: Kotlin
- Homepage: https://sokoban.haukesomm.de/
- Size: 5.64 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Sokoban

[](https://github.com/KotlinBy/awesome-kotlin)This project is a web-based clone of the popular puzzle game [Sokoban](https://de.wikipedia.org/wiki/Sokoban) written
in Kotlin and based on the [fritz2](https://fritz2.dev) framework. The game features all 50 levels of the original
game published in 1984 by Spectrum Holobyte.The latest snapshot version can be played [here](https://sokoban.haukesomm.de) or installed as a progressive web app (PWA).
## Screenshots (PWA)
| Mobile | Tablet |
|---------------------------------------------------------|---------------------------------------------|
||
|
## Modules
The project consists of a plain Kotlin `core` library containing the game logic and bundled levels, as well as a
`web` module that uses the `core` library to create a web app using the [fritz2](https://fritz2.dev) framework.Additionally, there is a `legacy` module that contains a legacy Java app using Swing. This is a rewrite of the original
version that I wrote back in school. It has been refactored to use the new `core` library as well. However, it will
not get any new features and is only kept for nostalgic reasons.Brief overview of the modules:
| Module | Description |
|----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `core` | Core library written in Kotlin containing the actual game logic and bundled levels. |
| `web` | Web app written in Kotlin using the [fritz2](https://fritz2.dev) framework. It is based on the `core` library. This is the actual game that can be played online. |
| `legacy` | Legacy Java app using Swing. Back in school, the original version was one of my first coding projects. Has been rewritten to use the new `core` library as well. Will not get any new features. |> **Please note:** Even though the core module is used by the legacy Java code, it is intended to be used in Kotlin
> projects only and is not fully compatible with Java!
>
> The `jvmMain` target of the `core` module provides a limited set of compatibility classes that can be used to
> initialize and run the game on the JVM, though.