Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
170
Task/Snake/Craft-Basic/snake.basic
Normal file
170
Task/Snake/Craft-Basic/snake.basic
Normal file
|
|
@ -0,0 +1,170 @@
|
|||
rem Snake example game for Craft Basic
|
||||
rem by Gemino Smothers 2022
|
||||
rem www.lucidapogee.com
|
||||
|
||||
title "Snake!"
|
||||
|
||||
define gfxx = 330, gfxy = 296
|
||||
define upkey = 0, rightkey = 0, downkey = 0, leftkey = 0, esckey = 0
|
||||
define speed = 0, delay = 0, score = 0, game = 1
|
||||
define maxsize = 1000, size = 9, direction = int(rnd * 4) + 1
|
||||
define rx = int(rnd * (gfxx - 24)) + 12
|
||||
define ry = int(rnd * (gfxy - 40)) + 25
|
||||
|
||||
dim sx[maxsize]
|
||||
dim sy[maxsize]
|
||||
|
||||
let sx[0] = gfxx / 2
|
||||
let sy[0] = gfxy / 2
|
||||
|
||||
fill on
|
||||
bgcolor 128, 64, 0
|
||||
cls graphics
|
||||
|
||||
resize 0, 0, gfxx + 10, gfxy + 56
|
||||
center
|
||||
|
||||
formid 1
|
||||
staticform 1, 1, 100, 14
|
||||
fgcolor 255, 255, 0
|
||||
bgcolor 0, 80, 0
|
||||
colorform
|
||||
|
||||
alert "Snake! by Gemino Smothers 2022"
|
||||
alert "Get the gray little rodents and avoid hitting yourself or walls."
|
||||
alert "Use arrow keys to move. Esc to exit."
|
||||
|
||||
input "Enter game speed between 0 to 100+", speed
|
||||
|
||||
fgcolor 0, 80, 0
|
||||
rect 0, 0, gfxx, gfxy
|
||||
|
||||
do
|
||||
|
||||
button upkey, 38
|
||||
button rightkey, 39
|
||||
button downkey, 40
|
||||
button leftkey, 37
|
||||
button esckey, 27
|
||||
|
||||
if upkey = 1 and direction <> 3 then
|
||||
|
||||
let direction = 1
|
||||
|
||||
endif
|
||||
|
||||
if rightkey = 1 and direction <> 4 then
|
||||
|
||||
let direction = 2
|
||||
|
||||
endif
|
||||
|
||||
if downkey = 1 and direction <> 1 then
|
||||
|
||||
let direction = 3
|
||||
|
||||
endif
|
||||
|
||||
if leftkey = 1 and direction <> 2 then
|
||||
|
||||
let direction = 4
|
||||
|
||||
endif
|
||||
|
||||
fgcolor 0, 80, 0
|
||||
oval sx[size], sy[size], 15, 15
|
||||
|
||||
let i = size + 1
|
||||
|
||||
do
|
||||
|
||||
let i = i - 1
|
||||
let c = i - 1
|
||||
|
||||
if sx[0] = sx[i] and sy[0] = sy[i] = 1 then
|
||||
|
||||
let game = 0
|
||||
|
||||
endif
|
||||
|
||||
let sx[i] = sx[c]
|
||||
let sy[i] = sy[c]
|
||||
|
||||
fgcolor 0, 255, 0
|
||||
oval sx[i], sy[i], 15, 15
|
||||
|
||||
loop i > 1
|
||||
|
||||
fgcolor 0, 0, 255
|
||||
oval sx[0] + 5, sy[0] + 5, 3, 3
|
||||
oval sx[0] + 9, sy[0] + 5, 3, 3
|
||||
|
||||
if direction = 1 then
|
||||
|
||||
let sy[0] = sy[0] - 15
|
||||
|
||||
endif
|
||||
|
||||
if direction = 2 then
|
||||
|
||||
let sx[0] = sx[0] + 15
|
||||
|
||||
endif
|
||||
|
||||
if direction = 3 then
|
||||
|
||||
let sy[0] = sy[0] + 15
|
||||
|
||||
endif
|
||||
|
||||
if direction = 4 then
|
||||
|
||||
let sx[0] = sx[0] - 15
|
||||
|
||||
endif
|
||||
|
||||
if sx[0] <= -10 or sx[0] >= gfxx or sy[0] <= -10 or sy[0] >= gfxy = 1 then
|
||||
|
||||
let game = 0
|
||||
|
||||
endif
|
||||
|
||||
if sx[0] + 15 >= rx and sx[0] <= rx + 15 and sy[0] + 15 >= ry and sy[0] <= ry + 15 = 1 then
|
||||
|
||||
playwave "examples\tada.wav"
|
||||
|
||||
fgcolor 0, 80, 0
|
||||
rect 0, 0, gfxx, gfxy
|
||||
|
||||
let rx = int(rnd * (gfxx - 24)) + 12
|
||||
let ry = int(rnd * (gfxy - 40)) + 25
|
||||
|
||||
let size = size + 3
|
||||
let score = score + 1
|
||||
|
||||
endif
|
||||
|
||||
fgcolor 100,100,100
|
||||
oval rx, ry, 15, 15
|
||||
|
||||
fgcolor 255, 0, 0
|
||||
oval rx + 5, ry + 5, 3, 3
|
||||
oval rx + 9, ry + 5, 3, 3
|
||||
|
||||
fgcolor 255, 255, 0
|
||||
formid 1
|
||||
formtext "Score: ", score
|
||||
updateform
|
||||
|
||||
let delay = clock
|
||||
|
||||
do
|
||||
|
||||
wait
|
||||
|
||||
loop clock < delay + speed
|
||||
|
||||
loop esckey <> 1 and game = 1
|
||||
|
||||
playwave "examples\boom.wav"
|
||||
alert "Game over! Score: ", score
|
||||
Loading…
Add table
Add a link
Reference in a new issue