Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
70
Task/Snake/J/snake.j
Normal file
70
Task/Snake/J/snake.j
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
require'ide/qt/gl2'
|
||||
coinsert 'jgl2'
|
||||
|
||||
open=: wd@{{)n
|
||||
pc s closeok;
|
||||
cc n isidraw;
|
||||
set n wh 400 400;
|
||||
pshow;
|
||||
}}
|
||||
|
||||
start=: {{
|
||||
speed=: {.y,200
|
||||
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=: {{
|
||||
s_timer=: move@y
|
||||
wd 'ptimer ',":speed
|
||||
head=. y+{.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,}: snake
|
||||
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=: {{
|
||||
wd 'ptimer 0'
|
||||
if. 1<#snake do.
|
||||
echo 'game over'
|
||||
echo 'score: ',":(#snake)*1000%speed
|
||||
draw''
|
||||
glbrush glrgb 255 255 0
|
||||
glrect 10*x,1 1
|
||||
end.
|
||||
snake=: ,:_ _
|
||||
}}
|
||||
Loading…
Add table
Add a link
Reference in a new issue