Fork me on GitHub
-- title:   Grid Collide
-- author:  congusbongus
-- desc:    Tile/grid based movement and collision
-- license: CC0
-- script:  moon
-- tags:    collision sprite physics grid tile

TILESIZE=8
-- Screen size in tiles
SCREEN_X=29
SCREEN_Y=16
-- tile ids for walls - add more if needed
WALLS={1}

tileisclear=(x,y)->
	return WALLS[mget(x,y)]==nil

class Sprite
	new:(x,y,s)=>
		-- Tile coordinates
		@x=x
		@y=y
		@s=s

	move:(dx,dy)=>
		if tileisclear(@x+dx,@y+dy)
			@x+=dx
			@y+=dy

	draw:=>
		spr @s,@x*TILESIZE,@y*TILESIZE,14

sprite=Sprite(10,5,256)
export TIC=->
	dx=0
	dy=0
	if btnp 0
		dy-=1
	if btnp 1
		dy+=1
	if btnp 2
		dx-=1
	if btnp 3
		dx+=1
	sprite\move(dx,dy)

	cls 13
	map 0,0,SCREEN_X+1,SCREEN_Y+1
	sprite\draw!

-- <TILES>
-- 000:8888888888888888888888888888888888888888888888888888888888888888
-- 001:1111111133213321222122211111111121332133212221221111111133213321
-- </TILES>

-- <SPRITES>
-- 000:caaaaaceaccccc9cac0c0c90ac0c0c90abaaab90aaccca9ca999999cc00c00ce
-- </SPRITES>

-- <MAP>
-- 000:101010101010101010101010101010101010101010101010101010101010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-- 001:100000000000000000000000100000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-- 002:100000000000000000000000100000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-- 003:100000000000000000000000100000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-- 004:100000000000000000000000100000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-- 005:100000001010101000000000000000101010101010000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-- 006:100000000000001000000000000000000000000010000000101010101010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-- 007:100000000000001000000000000000000000000010000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-- 008:100000000000001000000000000000000000000010000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-- 009:100000000000001010101010000000000000000010000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-- 010:100000000000000000000000000000000000000010000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-- 011:100000000000000000000000000010000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-- 012:101010101010000000000000000010000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-- 013:100000000000000000000000000010000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-- 014:100000000000000000000000000010000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-- 015:100000000000000000000000000010000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-- 016:101010101010101010101010101010101010101010101010101010101010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-- </MAP>

-- <WAVES>
-- 000:00000000ffffffff00000000ffffffff
-- 001:0123456789abcdeffedcba9876543210
-- 002:0123456789abcdef0123456789abcdef
-- </WAVES>

-- <SFX>
-- 000:000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000304000000000
-- </SFX>

-- <TRACKS>
-- 000:100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-- </TRACKS>

-- <SCREEN>
-- 000:111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
-- 001:332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321
-- 002:222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221
-- 003:111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
-- 004:213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133
-- 005:212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122
-- 006:111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
-- 007:332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321
-- 008:111111118888888888888888888888888888888888888888888888888888888888888888888888888888888888888888111111118888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111
-- 009:332133218888888888888888888888888888888888888888888888888888888888888888888888888888888888888888332133218888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888833213321
-- 010:222122218888888888888888888888888888888888888888888888888888888888888888888888888888888888888888222122218888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888822212221
-- 011:111111118888888888888888888888888888888888888888888888888888888888888888888888888888888888888888111111118888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111
-- 012:213321338888888888888888888888888888888888888888888888888888888888888888888888888888888888888888213321338888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888821332133
-- 013:212221228888888888888888888888888888888888888888888888888888888888888888888888888888888888888888212221228888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888821222122
-- 014:111111118888888888888888888888888888888888888888888888888888888888888888888888888888888888888888111111118888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111
-- 015:332133218888888888888888888888888888888888888888888888888888888888888888888888888888888888888888332133218888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888833213321
-- 016:111111118888888888888888888888888888888888888888888888888888888888888888888888888888888888888888111111118888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111
-- 017:332133218888888888888888888888888888888888888888888888888888888888888888888888888888888888888888332133218888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888833213321
-- 018:222122218888888888888888888888888888888888888888888888888888888888888888888888888888888888888888222122218888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888822212221
-- 019:111111118888888888888888888888888888888888888888888888888888888888888888888888888888888888888888111111118888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111
-- 020:213321338888888888888888888888888888888888888888888888888888888888888888888888888888888888888888213321338888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888821332133
-- 021:212221228888888888888888888888888888888888888888888888888888888888888888888888888888888888888888212221228888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888821222122
-- 022:111111118888888888888888888888888888888888888888888888888888888888888888888888888888888888888888111111118888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111
-- 023:332133218888888888888888888888888888888888888888888888888888888888888888888888888888888888888888332133218888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888833213321
-- 024:111111118888888888888888888888888888888888888888888888888888888888888888888888888888888888888888111111118888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111
-- 025:332133218888888888888888888888888888888888888888888888888888888888888888888888888888888888888888332133218888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888833213321
-- 026:222122218888888888888888888888888888888888888888888888888888888888888888888888888888888888888888222122218888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888822212221
-- 027:111111118888888888888888888888888888888888888888888888888888888888888888888888888888888888888888111111118888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111
-- 028:213321338888888888888888888888888888888888888888888888888888888888888888888888888888888888888888213321338888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888821332133
-- 029:212221228888888888888888888888888888888888888888888888888888888888888888888888888888888888888888212221228888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888821222122
-- 030:111111118888888888888888888888888888888888888888888888888888888888888888888888888888888888888888111111118888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111
-- 031:332133218888888888888888888888888888888888888888888888888888888888888888888888888888888888888888332133218888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888833213321
-- 032:111111118888888888888888888888888888888888888888888888888888888888888888888888888888888888888888111111118888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111
-- 033:332133218888888888888888888888888888888888888888888888888888888888888888888888888888888888888888332133218888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888833213321
-- 034:222122218888888888888888888888888888888888888888888888888888888888888888888888888888888888888888222122218888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888822212221
-- 035:111111118888888888888888888888888888888888888888888888888888888888888888888888888888888888888888111111118888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111
-- 036:213321338888888888888888888888888888888888888888888888888888888888888888888888888888888888888888213321338888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888821332133
-- 037:212221228888888888888888888888888888888888888888888888888888888888888888888888888888888888888888212221228888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888821222122
-- 038:111111118888888888888888888888888888888888888888888888888888888888888888888888888888888888888888111111118888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111
-- 039:332133218888888888888888888888888888888888888888888888888888888888888888888888888888888888888888332133218888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888833213321
-- 040:111111118888888888888888888888881111111111111111111111111111111188888888888888888888888888888888888888888888888888888888111111111111111111111111111111111111111111111111888888888888888888888888888888888888888888888888888888888888888811111111
-- 041:332133218888888888888888888888883321332133213321332133213321332188888888888888888888888888888888888888888888888888888888332133213321332133213321332133213321332133213321888888888888888888888888888888888888888888888888888888888888888833213321
-- 042:222122218888888888888888888888882221222122212221222122212221222188888888888888888888888888888888888888888888888888888888222122212221222122212221222122212221222122212221888888888888888888888888888888888888888888888888888888888888888822212221
-- 043:111111118888888888888888888888881111111111111111111111111111111188888888888888888888888888888888888888888888888888888888111111111111111111111111111111111111111111111111888888888888888888888888888888888888888888888888888888888888888811111111
-- 044:213321338888888888888888888888882133213321332133213321332133213388888888888888888888888888888888888888888888888888888888213321332133213321332133213321332133213321332133888888888888888888888888888888888888888888888888888888888888888821332133
-- 045:212221228888888888888888888888882122212221222122212221222122212288888888888888888888888888888888888888888888888888888888212221222122212221222122212221222122212221222122888888888888888888888888888888888888888888888888888888888888888821222122
-- 046:111111118888888888888888888888881111111111111111111111111111111188888888888888888888888888888888888888888888888888888888111111111111111111111111111111111111111111111111888888888888888888888888888888888888888888888888888888888888888811111111
-- 047:332133218888888888888888888888883321332133213321332133213321332188888888888888888888888888888888888888888888888888888888332133213321332133213321332133213321332133213321888888888888888888888888888888888888888888888888888888888888888833213321
-- 048:111111118888888888888888888888888888888888888888888888881111111188888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111888888888888888888888888111111111111111111111111111111111111111111111111
-- 049:332133218888888888888888888888888888888888888888888888883321332188888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888833213321888888888888888888888888332133213321332133213321332133213321332133213321
-- 050:222122218888888888888888888888888888888888888888888888882221222188888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888822212221888888888888888888888888222122212221222122212221222122212221222122212221
-- 051:111111118888888888888888888888888888888888888888888888881111111188888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111888888888888888888888888111111111111111111111111111111111111111111111111
-- 052:213321338888888888888888888888888888888888888888888888882133213388888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888821332133888888888888888888888888213321332133213321332133213321332133213321332133
-- 053:212221228888888888888888888888888888888888888888888888882122212288888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888821222122888888888888888888888888212221222122212221222122212221222122212221222122
-- 054:111111118888888888888888888888888888888888888888888888881111111188888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111888888888888888888888888111111111111111111111111111111111111111111111111
-- 055:332133218888888888888888888888888888888888888888888888883321332188888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888833213321888888888888888888888888332133213321332133213321332133213321332133213321
-- 056:111111118888888888888888888888888888888888888888888888881111111188888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111888888888888888888888888888888888888888888888888888888888888888811111111
-- 057:332133218888888888888888888888888888888888888888888888883321332188888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888833213321888888888888888888888888888888888888888888888888888888888888888833213321
-- 058:222122218888888888888888888888888888888888888888888888882221222188888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888822212221888888888888888888888888888888888888888888888888888888888888888822212221
-- 059:111111118888888888888888888888888888888888888888888888881111111188888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111888888888888888888888888888888888888888888888888888888888888888811111111
-- 060:213321338888888888888888888888888888888888888888888888882133213388888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888821332133888888888888888888888888888888888888888888888888888888888888888821332133
-- 061:212221228888888888888888888888888888888888888888888888882122212288888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888821222122888888888888888888888888888888888888888888888888888888888888888821222122
-- 062:111111118888888888888888888888888888888888888888888888881111111188888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111888888888888888888888888888888888888888888888888888888888888888811111111
-- 063:332133218888888888888888888888888888888888888888888888883321332188888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888833213321888888888888888888888888888888888888888888888888888888888888888833213321
-- 064:111111118888888888888888888888888888888888888888888888881111111188888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111888888888888888888888888888888888888888888888888888888888888888811111111
-- 065:332133218888888888888888888888888888888888888888888888883321332188888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888833213321888888888888888888888888888888888888888888888888888888888888888833213321
-- 066:222122218888888888888888888888888888888888888888888888882221222188888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888822212221888888888888888888888888888888888888888888888888888888888888888822212221
-- 067:111111118888888888888888888888888888888888888888888888881111111188888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111888888888888888888888888888888888888888888888888888888888888888811111111
-- 068:213321338888888888888888888888888888888888888888888888882133213388888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888821332133888888888888888888888888888888888888888888888888888888888888888821332133
-- 069:212221228888888888888888888888888888888888888888888888882122212288888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888821222122888888888888888888888888888888888888888888888888888888888888888821222122
-- 070:111111118888888888888888888888888888888888888888888888881111111188888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111888888888888888888888888888888888888888888888888888888888888888811111111
-- 071:332133218888888888888888888888888888888888888888888888883321332188888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888833213321888888888888888888888888888888888888888888888888888888888888888833213321
-- 072:11111111888888888888888888888888888888888888888888888888111111111111111111111111111111111111111188888888888888888888888888888888caaaaac888888888888888888888888811111111888888888888888888888888888888888888888888888888888888888888888811111111
-- 073:33213321888888888888888888888888888888888888888888888888332133213321332133213321332133213321332188888888888888888888888888888888accccc9c88888888888888888888888833213321888888888888888888888888888888888888888888888888888888888888888833213321
-- 074:22212221888888888888888888888888888888888888888888888888222122212221222122212221222122212221222188888888888888888888888888888888ac0c0c9088888888888888888888888822212221888888888888888888888888888888888888888888888888888888888888888822212221
-- 075:11111111888888888888888888888888888888888888888888888888111111111111111111111111111111111111111188888888888888888888888888888888ac0c0c9088888888888888888888888811111111888888888888888888888888888888888888888888888888888888888888888811111111
-- 076:21332133888888888888888888888888888888888888888888888888213321332133213321332133213321332133213388888888888888888888888888888888abaaab9088888888888888888888888821332133888888888888888888888888888888888888888888888888888888888888888821332133
-- 077:21222122888888888888888888888888888888888888888888888888212221222122212221222122212221222122212288888888888888888888888888888888aaccca9c88888888888888888888888821222122888888888888888888888888888888888888888888888888888888888888888821222122
-- 078:11111111888888888888888888888888888888888888888888888888111111111111111111111111111111111111111188888888888888888888888888888888a999999c88888888888888888888888811111111888888888888888888888888888888888888888888888888888888888888888811111111
-- 079:33213321888888888888888888888888888888888888888888888888332133213321332133213321332133213321332188888888888888888888888888888888c00c00c888888888888888888888888833213321888888888888888888888888888888888888888888888888888888888888888833213321
-- 080:111111118888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111888888888888888888888888888888888888888888888888888888888888888811111111
-- 081:332133218888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888833213321888888888888888888888888888888888888888888888888888888888888888833213321
-- 082:222122218888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888822212221888888888888888888888888888888888888888888888888888888888888888822212221
-- 083:111111118888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111888888888888888888888888888888888888888888888888888888888888888811111111
-- 084:213321338888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888821332133888888888888888888888888888888888888888888888888888888888888888821332133
-- 085:212221228888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888821222122888888888888888888888888888888888888888888888888888888888888888821222122
-- 086:111111118888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111888888888888888888888888888888888888888888888888888888888888888811111111
-- 087:332133218888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888833213321888888888888888888888888888888888888888888888888888888888888888833213321
-- 088:111111118888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111
-- 089:332133218888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888833213321888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888833213321
-- 090:222122218888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888822212221888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888822212221
-- 091:111111118888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111
-- 092:213321338888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888821332133888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888821332133
-- 093:212221228888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888821222122888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888821222122
-- 094:111111118888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111
-- 095:332133218888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888833213321888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888833213321
-- 096:111111111111111111111111111111111111111111111111888888888888888888888888888888888888888888888888888888888888888811111111888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111
-- 097:332133213321332133213321332133213321332133213321888888888888888888888888888888888888888888888888888888888888888833213321888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888833213321
-- 098:222122212221222122212221222122212221222122212221888888888888888888888888888888888888888888888888888888888888888822212221888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888822212221
-- 099:111111111111111111111111111111111111111111111111888888888888888888888888888888888888888888888888888888888888888811111111888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111
-- 100:213321332133213321332133213321332133213321332133888888888888888888888888888888888888888888888888888888888888888821332133888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888821332133
-- 101:212221222122212221222122212221222122212221222122888888888888888888888888888888888888888888888888888888888888888821222122888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888821222122
-- 102:111111111111111111111111111111111111111111111111888888888888888888888888888888888888888888888888888888888888888811111111888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111
-- 103:332133213321332133213321332133213321332133213321888888888888888888888888888888888888888888888888888888888888888833213321888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888833213321
-- 104:111111118888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111
-- 105:332133218888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888833213321888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888833213321
-- 106:222122218888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888822212221888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888822212221
-- 107:111111118888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111
-- 108:213321338888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888821332133888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888821332133
-- 109:212221228888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888821222122888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888821222122
-- 110:111111118888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111
-- 111:332133218888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888833213321888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888833213321
-- 112:111111118888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111
-- 113:332133218888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888833213321888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888833213321
-- 114:222122218888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888822212221888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888822212221
-- 115:111111118888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111
-- 116:213321338888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888821332133888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888821332133
-- 117:212221228888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888821222122888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888821222122
-- 118:111111118888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111
-- 119:332133218888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888833213321888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888833213321
-- 120:111111118888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111
-- 121:332133218888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888833213321888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888833213321
-- 122:222122218888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888822212221888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888822212221
-- 123:111111118888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111
-- 124:213321338888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888821332133888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888821332133
-- 125:212221228888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888821222122888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888821222122
-- 126:111111118888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888811111111
-- 127:332133218888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888833213321888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888833213321
-- 128:111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
-- 129:332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321
-- 130:222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221
-- 131:111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
-- 132:213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133
-- 133:212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122
-- 134:111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
-- 135:332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321332133213321
-- </SCREEN>

-- <PALETTE>
-- 000:1a1c2c5d275db13e53ef7d57ffcd75a7f07038b76425717929366f3b5dc941a6f673eff7f4f4f494b0c2566c86333c57
-- </PALETTE>