An open API service indexing awesome lists of open source software.

https://github.com/red1c3/sokoban-go

A Sokoban puzzle solver written in Go
https://github.com/red1c3/sokoban-go

sokoban

Last synced: 21 days ago
JSON representation

A Sokoban puzzle solver written in Go

Awesome Lists containing this project

README

          

# sokoban-go
sokoban-go is a CLI automated sokoban puzzles solver written in Go.

It provides easy to extend structures for implementing better searching algorithms
without having to design the whole program.

## Usage:

sokoban-go [algorithm] [puzzlepath]

current algorithm options are:

human
dfs
bfs
astar-gh2
astar-gh1
astar-h1
astar-h2
hc-gh2
hc-gh1
hc-h2
hc-h1

puzzlepath should be a suitable 2D JSON string array,
see "puzzles" folder for examples and [state/consts] for possible tiles characters.

## Example:
Input (I know the puzzle is not hard but I kept the name for some reason):

sokoban-go astar-gh2 ./puzzles/hard.json

Output:
```
πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯
πŸŸ₯⬜⬜⬜⬜πŸŸ₯
πŸŸ₯β­•πŸŸ©πŸŸ©β­•πŸŸ₯
πŸŸ₯⬜⬜⬜⬜πŸŸ₯
πŸŸ₯⬜🐈⬜⬜πŸŸ₯
πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯

πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯
πŸŸ₯⬜⬜⬜⬜πŸŸ₯
πŸŸ₯β­•πŸŸ©πŸŸ©β­•πŸŸ₯
πŸŸ₯⬜🐈⬜⬜πŸŸ₯
πŸŸ₯⬜⬜⬜⬜πŸŸ₯
πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯

πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯
πŸŸ₯⬜⬜⬜⬜πŸŸ₯
πŸŸ₯β­•πŸŸ©πŸŸ©β­•πŸŸ₯
πŸŸ₯🐈⬜⬜⬜πŸŸ₯
πŸŸ₯⬜⬜⬜⬜πŸŸ₯
πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯

πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯
πŸŸ₯⬜⬜⬜⬜πŸŸ₯
πŸŸ₯πŸ˜ΏπŸŸ©πŸŸ©β­•πŸŸ₯
πŸŸ₯⬜⬜⬜⬜πŸŸ₯
πŸŸ₯⬜⬜⬜⬜πŸŸ₯
πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯

πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯
πŸŸ₯🐈⬜⬜⬜πŸŸ₯
πŸŸ₯β­•πŸŸ©πŸŸ©β­•πŸŸ₯
πŸŸ₯⬜⬜⬜⬜πŸŸ₯
πŸŸ₯⬜⬜⬜⬜πŸŸ₯
πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯

πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯
πŸŸ₯⬜🐈⬜⬜πŸŸ₯
πŸŸ₯β­•πŸŸ©πŸŸ©β­•πŸŸ₯
πŸŸ₯⬜⬜⬜⬜πŸŸ₯
πŸŸ₯⬜⬜⬜⬜πŸŸ₯
πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯

πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯
πŸŸ₯⬜⬜⬜⬜πŸŸ₯
πŸŸ₯β­•πŸˆπŸŸ©β­•πŸŸ₯
πŸŸ₯⬜🟩⬜⬜πŸŸ₯
πŸŸ₯⬜⬜⬜⬜πŸŸ₯
πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯

πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯
πŸŸ₯⬜⬜⬜⬜πŸŸ₯
πŸŸ₯β­•β¬œπŸˆβœ…πŸŸ₯
πŸŸ₯⬜🟩⬜⬜πŸŸ₯
πŸŸ₯⬜⬜⬜⬜πŸŸ₯
πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯

πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯
πŸŸ₯⬜⬜⬜⬜πŸŸ₯
πŸŸ₯β­•β¬œβ¬œβœ…πŸŸ₯
πŸŸ₯⬜🟩🐈⬜πŸŸ₯
πŸŸ₯⬜⬜⬜⬜πŸŸ₯
πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯

πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯
πŸŸ₯⬜⬜⬜⬜πŸŸ₯
πŸŸ₯β­•β¬œβ¬œβœ…πŸŸ₯
πŸŸ₯🟩🐈⬜⬜πŸŸ₯
πŸŸ₯⬜⬜⬜⬜πŸŸ₯
πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯

πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯
πŸŸ₯⬜⬜⬜⬜πŸŸ₯
πŸŸ₯β­•β¬œβ¬œβœ…πŸŸ₯
πŸŸ₯🟩⬜⬜⬜πŸŸ₯
πŸŸ₯⬜🐈⬜⬜πŸŸ₯
πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯

πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯
πŸŸ₯⬜⬜⬜⬜πŸŸ₯
πŸŸ₯β­•β¬œβ¬œβœ…πŸŸ₯
πŸŸ₯🟩⬜⬜⬜πŸŸ₯
πŸŸ₯🐈⬜⬜⬜πŸŸ₯
πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯

πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯
πŸŸ₯⬜⬜⬜⬜πŸŸ₯
πŸŸ₯βœ…β¬œβ¬œβœ…πŸŸ₯
πŸŸ₯🐈⬜⬜⬜πŸŸ₯
πŸŸ₯⬜⬜⬜⬜πŸŸ₯
πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯πŸŸ₯

YAY
Moves = 12
```

## License
[UNLICENSE](./UNLICENSE)