It would be fun to implement WebGL as a renderer.
Here is a snake in 4k (sn4ke) mapped onto a sphere instead of a 2d playsurface, which is one of my favourites. http://www.pouet.net/prod.php?which=61035 Here is an awesome music-driven one that modifies the songs based on level and "danger" http://www.pouet.net/prod.php?which=57518
But the best snake ever was the one from FastTracker 2 by Triton! http://www.pouet.net/prod.php?which=13350
Similar bug with RIGHT->DOWN->LEFT
And so on for all the other initial directions.
(1) - You can only change directions that will change your axis, if you're going left your possible changes are up and down, ....
(2) - You should be only able to consume one direction change per game tick, what is happening here is that rule (1) is working but you can change into the other axis, and then back to the other axis again before the game loop computes another frame. Direction change can be read asynchronously but the actual change should be tied by each tick.
http://package.elm-lang.org/packages/elm-lang/html/latest/Ht...
Typed functional programming offers wins that forces more safety and modularity onto the code. These are all long term wins. Ultimately I would argue that elm's syntax is better suited for extremely complex projects that have low tolerance for bugs.
What functionality is difficult to render in C-like syntax?
Elm has been personally an inspiration too. Nice set of decisions and tradeoffs for what they're trying to achieve, though yeah, mainstream syntax might not be one of them, but that's fine.