A simple non-ticking snake game which supports playing with any board size.
if on computer, you can move using the mouse too
Passing ?size=<number>
controls the vertical number of squares of the grid. The default is 8.
The horizontal number of squares is computed to be about 50% more than vertical.
- SnakePony, very small
- SnakePony, small
- SnakePony, normal size
- SnakePony, big
- SnakePony, bigger
- SnakePony, too big
Passing ?topology=<name>
controls how the border reacts to the player hitting it.
- SnakePony, ribbon (wall + loop)
- SnakePony, mobius strip (wall + crossed)
- SnakePony, klein bottle (looping+crossed)
- SnakePony, torus (all borders looping)
- SnakePony, real projective plan (crossed+crossed)
- SnakePony, normal (4 wall borders)
Note: the topology argument can be combined with the size argument. Example:
https://snakepony.now.sh/?size=4?topology=torus
If you want to challenge yourself a bit, you can add ?showMoveCount
in the URL. It will show the number of moves you made since the beginning of the game.
(Example link)
If you have any idea that you'd like to see added to the game, please create an issue in the issue tracker to share your feature request with us (remember to search-check for duplicate issues first).
You're also welcome to report bugs, ask questions and make other use of the issue tracker, as you see fit. We try to be welcoming.
Use yarn install
to install the dependencies. See yarnpkg.com.
Use ./tsc.cmd
to run typescript type checking.
Use ./parcel.cmd
to run the development server.
All branches and pull requests to are built and deployed by Vercel who runs the now.sh service. Verecel runs npm run build
-on a linux machine- to build the project.
The first released version, that already implemented thrifty screen refresh, took 8 hours to write.