snake.md
· 2.2 KiB · Markdown
Brut
Playground
[unfinished snake game](https://playground.nova-lang.net/?p=%7C%7C%20%27INSTRUCTIONS%27%20you%20can%20move%20using%20the%20WASD%20keys!%0A%0A%27%40include%27%20(%0A%20%20lib%2Frpn.nv%0A%20%20lib%2Fplatforms%2Fbrowser_dom.nv%0A%20%20lib%2Fplatforms%2Fbrowser_game.nv%0A)%0A%0A%27snake%27%20200%20200%0A%0A%27%27%20start%20a%20400%20by%20400%20game%0A%0A%7C%20%27%27%20game%20loop%0A%7C%20%27%27%0A%20%20.%20check%20if%20w%20is%20pressed%0A%20%20.%20check%20if%20a%20is%20pressed%0A%20%20.%20check%20if%20s%20is%20pressed%0A%20%20.%20check%20if%20d%20is%20pressed%0A%20%20.%20draw%20background%0A%20%20.%20draw%20snake%0A%20%20.%20next%20frame%0A%0A%7C%20%27key%20pressed%27%20w%20%7C%20%27vector%27%20%2B%200%20-%201%0A%7C%20%27key%20pressed%27%20a%20%7C%20%27vector%27%20-%201%20%2B%200%0A%7C%20%27key%20pressed%27%20s%20%7C%20%27vector%27%20%2B%200%20%2B%201%0A%7C%20%27key%20pressed%27%20d%20%7C%20%27vector%27%20%2B%201%20%2B%200%0A%7C%20%27snake%27%20%24x%20%24y%20%27vector%27%20%241%20%242%20%243%20%244%0A%7C%20%27%27%20move%20snake%20%27%40rpn%27%20(%24y%20%244%20%243%20%24x%20%242%20%241)%0A%7C%20%27%27%20move%20snake%20%27%40rpn%20data%27%20(%24x%20%24y)%0A%7C%20%27snake%27%20%24x%20%24y%0A%0A%7C%20%27%27%20draw%20background%20%7C%20%27%40graphics%27%20clear%20black%0A%0A%7C%20%27%27%20draw%20snake%20%27snake%27%20%24x%20%24y%3F%0A%7C%20%27%40graphics%27%20draw%20square%20%24x%20%24y%2010%20green%0A%0A%7C%20%27%40graphics%27%20draw%20square%20%24x%20%24y%20%24size%20%24color%0A%20%20%27%40%40canvas%20context%27%20%24context%3F%0A%7C%20%27%40js%27%0A%20%20%24context.fillStyle%20%3D%20%24color%3B%0A%20%20%24context.fillRect(%24x%2C%20%24y%2C%20%24size%2C%20%24size)%3B%0A%0A%0A%0A%7C%20%27%27%20start%20a%20%24x%20by%20%24y%20game%0A%7C%20%27%40graphics%27%20.%20canvas%20init%20canvas%20.%20set-resolution%20_%20%24x%20%24y%0A%20%20%27DOM%27%20(%20%3Cquery%20canvas%20%3Cstyle%20display%20%3D%20block%20margin%20%3D%20%5B1rem%20auto%5D%20%3E%20%3E%20)%0A%20%20%27%27%20game%20loop%0A%0A%7C%20%27%27%20next%20frame%0A%7C%20%27%40js%27%20window.requestAnimationFrame(nextFrame)%3B%0A%0A%7C%7C%20%27%40js%27%20const%20nextFrame%20%3D%20()%20%3D%3E%20%7B%20f(%22%22%2C%20%22game%22%2C%20%22loop%22)%3B%20me.run()%3B%20%7D%0A)