Snake: Difference between revisions

108 bytes added ,  2 years ago
m
No edit summary
Line 88:
SET( i,1 )
 
[1:w] {BORDER} CPUT(board) // top
[ SUB(MUL(h,w),MINUS-ONE(w)) : end] {BORDER} CPUT(board) // bottom
[1:w:end] {BORDER} CPUT(board) // left
 
SET(i, 1)
FOR( LE?(i, h), ++i )
[ MUL(i, w )] {BORDER} PUT(board) // right
NEXT
LET( nHead := MUL( w, SUB( SUB( h, 1 ), MOD(h,2) )) DIV-INTO(2) )
Line 176:
SWITCH( [nHead]CGET(board))
CASE (SPACE){
--len, LET( len := IF( EQIS-ZERO?(len,0), 1, len) )
[nHead] { len }, CPUT(board) // keep in mind len is negative
GOSUB( age )
Line 182:
}
CASE (FOOD){
--len, LET( len := IF( EQIS-ZERO?(len,0), 1, len) )
[nHead] { len }, CPUT(board)
GOSUB( plant )
Line 211:
 
DEF-FUN( put titles )
LOCATE(2,52) PRNL("\033[38;5;15mSCORE\OFF")
{SCORE, 4, 52} GOSUB( put score )
LOCATE(10,52) PRNL("\033[38;5;11mTIME\OFF")
{TIME, 12, 52} GOSUB( put time )
RET
Line 255:
PERF-UP( i, ln, 1)
LET( s := VAL( MID( 1, i, sp )) )
[ PLUS-ONE(s) ] // set interval to read element of arrays
LOCATE( posx, posy )
PRNL ( STR-TO-UTF8([ PLUS-ONE(s) ] CGETGET(numL1) ))
LOCATE( PLUS-ONE(posx),posy )
PRNL ( STR-TO-UTF8([PLUS-ONE(s)] CGETGET(numL2) ))
LOCATE( PLUS-TWO(posx),posy )
PRNL ( STR-TO-UTF8([PLUS-ONE(s)] CGETGET(numL3) ))
posy += 2
NEXT
546

edits