Last active 1751739830

a snake game that runs on the Myte playground !

autumn's Avatar autumn revised this gist 1750832636. Go to revision

2 files changed, 53 insertions, 1 deletion

snake.md (file deleted)

@@ -1 +0,0 @@
1 - [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)

snake.nv(file created)

@@ -0,0 +1,53 @@
1 + || 'INSTRUCTIONS' you can move using the WASD keys!
2 +
3 + '@include' (
4 + lib/rpn.nv
5 + lib/platforms/browser_dom.nv
6 + lib/platforms/browser_game.nv
7 + )
8 +
9 + 'snake' 200 200
10 +
11 + '' start a 400 by 400 game
12 +
13 + | '' game loop
14 + | ''
15 + . check if w is pressed
16 + . check if a is pressed
17 + . check if s is pressed
18 + . check if d is pressed
19 + . draw background
20 + . draw snake
21 + . next frame
22 +
23 + | 'key pressed' w | 'vector' + 0 - 1
24 + | 'key pressed' a | 'vector' - 1 + 0
25 + | 'key pressed' s | 'vector' + 0 + 1
26 + | 'key pressed' d | 'vector' + 1 + 0
27 + | 'snake' $x $y 'vector' $1 $2 $3 $4
28 + | '' move snake '@rpn' ($y $4 $3 $x $2 $1)
29 + | '' move snake '@rpn data' ($x $y)
30 + | 'snake' $x $y
31 +
32 + | '' draw background | '@graphics' clear black
33 +
34 + | '' draw snake 'snake' $x $y?
35 + | '@graphics' draw square $x $y 10 green
36 +
37 + | '@graphics' draw square $x $y $size $color
38 + '@@canvas context' $context?
39 + | '@js'
40 + $context.fillStyle = $color;
41 + $context.fillRect($x, $y, $size, $size);
42 +
43 +
44 +
45 + | '' start a $x by $y game
46 + | '@graphics' . canvas init canvas . set-resolution _ $x $y
47 + 'DOM' ( <query canvas <style display = block margin = [1rem auto] > > )
48 + '' game loop
49 +
50 + | '' next frame
51 + | '@js' window.requestAnimationFrame(nextFrame);
52 +
53 + || '@js' const nextFrame = () => { f("", "game", "loop"); me.run(); }

autumn's Avatar autumn revised this gist 1750832557. Go to revision

1 file changed, 1 insertion

snake.md(file created)

@@ -0,0 +1 @@
1 + [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)
Newer Older