Jump to content

Snake: Difference between revisions

1,187 bytes added ,  1 year ago
J
(J)
Line 2,105:
(x,y) = w^.food & head
in (a-x)^2 + (b-y)^2</lang>
 
=={{header|J}}==
 
Needs j9 qt:
 
Use WASD to move. Relies on keyboard repeat for traversing the board.
 
<lang J>require'ide/qt/gl2'
coinsert 'jgl2'
 
open=: wd@{{)n
pc s closeok;
cc n isidraw;
set n wh 400 400;
pshow;
}}
 
snake=: {{
open''
snake=: 10 10,10 11,:10 12
newdot''
draw''
}}
 
newdot=: {{
dot=: ({~ ?@#) snake -.~ ,/(#: i.)40 40
}}
 
s_n_char=: {{
select. {.toupper sysdata
case. 'W' do. move 0 _1
case. 'A' do. move _1 0
case. 'S' do. move 0 1
case. 'D' do. move 1 0
end.
}}
 
move=: {{
head=. y+{.snake
tail=. }: snake
if. head e. snake do. head gameover'' return. end.
if. _1 e. head do. (0>.head) gameover'' return. end.
if. 1 e. 40 <: head do. (39<.head) gameover'' return. end.
if. dot -: head do.
snake=: dot,snake
newdot''
else.
snake=: head,tail
end.
draw''
}}
 
draw=: {{
glclear''
glbrush glrgb 0 0 255
glrect 10*}.snake,"1(1 1)
glbrush glrgb 0 255 0
glrect 10*({.snake),1 1
glbrush glrgb 255 0 0
glrect 10*dot,1 1
glpaint''
EMPTY
}}
 
gameover=: {{
if. 1<#snake do.
echo 'game over'
draw''
glbrush glrgb 255 255 0
glrect 10*x,1 1
end.
snake=: ,:_ _
}}</lang>
 
=={{header|Java}}==
6,962

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.