Compare commits

12 Commits

Author SHA1 Message Date
0d6985b75e Change design 2023-07-30 12:38:07 +02:00
8dca99ccc3 Improve input keys 2023-01-02 14:05:11 +01:00
d8d0818288 Add basic motor sound 2023-01-01 23:46:57 +01:00
0c8ee59ac7 Update README to add Racing game 2023-01-01 23:26:30 +01:00
b4494a2fb8 Add a racing game 2023-01-01 23:25:22 +01:00
b0d6c8507f Refactor input code 2022-09-11 14:47:54 +02:00
c0982d080a Manage keypad display 2022-09-11 14:21:35 +02:00
696263f562 Add basic implementation of game input 2022-09-10 17:12:56 +02:00
bcb7929e69 Add detection of short and long press on buttons 2022-09-10 14:02:25 +02:00
f5befe340f Update README.md with Maths Attacks 2022-09-10 13:12:22 +02:00
f40981f9f2 Add Maths Attacks, early implentation (only detects holding right key) 2022-09-10 13:11:41 +02:00
a552251cf9 Fix an issue where the player was not diplayed on death or win screen 2021-11-30 22:29:32 +01:00
4 changed files with 512 additions and 2 deletions

View File

@ -3,4 +3,10 @@
PICO-8 projects
## Pyras
An reimplementation of a game my father created when I was a kid.
Avoid Pyras running towards you.
## Maths Attacks
Shoot aliens by doing calculus. Currently in early dev, not playable.
## Racing
A basic racing game. Also in early dev. Playable.

184
maths-attacks.p8 Normal file
View File

@ -0,0 +1,184 @@
pico-8 cartridge // http://www.pico-8.com
version 39
__lua__
-- maths attacks --
-- by djib --
function _init()
cls(1)
init_btn_status()
end
function _update()
update_btn_status(❎)
update_btn_status(🅾️)
end
function _draw()
draw_keypad()
result=get_input()
if result!="" then
print(get_input(),0)
end
end
-->8
-- button management --
function init_btn_status()
-- no repeating delay for keyboard
poke(0x5f5d,255)
-- true when pressed
btn_down_status={}
-- true when quickly released
btn_up_status={}
-- true when held
btn_held_status={}
end
function update_btn_status(button)
-- clear held status
if btn_held_status[button] then
btn_held_status[button]=false
-- button was already pressed --
elseif btn_down_status[button] then
-- button was held
if btnp(button) then
btn_held_status[button]=true
btn_down_status[button]=false
end
-- button no longer pressed
if not btn(button) then
btn_up_status[button]=true
btn_down_status[button]=false
end
else
if btnp(button) then
btn_down_status[button]=true
end
if not btn(button) then
btn_held_status[button]=false
btn_down_status[button]=false
btn_up_status[button]=false
end
end
end
function btn_held(button)
return btn_held_status[button]
end
function btn_pressed(button)
return btn_up_status[button]
end
-->8
-- keypad input --
keys = {
{ --1
dx=0,dy=0,
up=true,down=false,
left=true,right=false
},
{ --2
dx=1,dy=0,
up=true,down=false,
left=false,right=false
},
{ --3
dx=2,dy=0,
up=true,down=false,
left=false,right=true
},
{ --4
dx=0,dy=1,
up=false,down=false,
left=true,right=false
},
{ --5
dx=1,dy=1,
up=false,down=false,
left=false,right=false
},
{ --6
dx=2,dy=1,
up=false,down=false,
left=false,right=true
},
{ --7
dx=0,dy=2,
up=false,down=true,
left=true,right=false
},
{ --8
dx=1,dy=2,
up=false,down=true,
left=false,right=false
},
{ --9
dx=2,dy=2,
up=false,down=true,
left=false,right=true
}
}
function get_input()
result=""
if btn_pressed(❎) then
for k,v in pairs(keys) do
if input_matches(v) then
result=tostr(k)
end
end
elseif btn_held(❎) then
result = "0"
elseif btn_pressed(🅾️) then
result = "clear!"
elseif btn_held(🅾️) then
result = "fire!"
end
return result
end
function input_matches(v)
return btn(⬆️)==v.up and
btn(⬇️)==v.down and
btn(⬅️)==v.left and
btn(➡️)==v.right
end
function draw_keypad()
-- size of keys
local delta=8
-- keypad location
local kx=(127-delta*3)/2
local ky=127-delta*3
rectfill(kx-1,ky-1,kx+3*delta,ky+3*delta,0)
for k,v in pairs(keys) do
if input_matches(v) then
offset=16
else
offset=0
end
spr(k+offset,
kx+v.dx*delta,
ky+v.dy*delta
)
end
end
__gfx__
66666660666666606666666066666660666666606666666066666660666666606666666066666660000000000000000000000000000000000000000000000000
67111765671177656711176567111765671717656711176567111765671117656711176567111765000000000000000000000000000000000000000000000000
67171765677177656777176567771765671717656717776567177765677717656717176567171765000000000000000000000000000000000000000000000000
67171765677177656711176567711765671117656711176567111765677117656711176567111765000000000000000000000000000000000000000000000000
67171765677177656717776567771765677717656777176567171765677717656717176567771765000000000000000000000000000000000000000000000000
67111765671117656711176567111765677717656711176567111765677717656711176567771765000000000000000000000000000000000000000000000000
66666665666666656666666566666665666666656666666566666665666666656666666566666665000000000000000000000000000000000000000000000000
05555555055555550555555505555555055555550555555505555555055555550555555505555555000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
06666666066666660666666606666666066666660666666606666666066666660666666606666666000000000000000000000000000000000000000000000000
06711176067117760671117606711176067171760671117606711176067111760671117606711176000000000000000000000000000000000000000000000000
06717176067717760677717606777176067171760671777606717776067771760671717606717176000000000000000000000000000000000000000000000000
06717176067717760671117606771176067111760671117606711176067711760671117606711176000000000000000000000000000000000000000000000000
06717176067717760671777606777176067771760677717606717176067771760671717606777176000000000000000000000000000000000000000000000000
06711176067111760671117606711176067771760671117606711176067771760671117606777176000000000000000000000000000000000000000000000000
06666666066666660666666606666666066666660666666606666666066666660666666606666666000000000000000000000000000000000000000000000000

View File

@ -168,7 +168,7 @@ end
function drawgame()
cls()
drawbg()
if(game.state==1)drawguy()
if(game.state>=1)drawguy()
drawandeatpyras()
if game.state==0 then
rect(46,46,80,80,7)

320
racing.p8 Normal file
View File

@ -0,0 +1,320 @@
pico-8 cartridge // http://www.pico-8.com
version 37
__lua__
-- racing
-- by djib
function _init()
car:init(game)
road:init(game,car)
--music(0,-1,-1,false)
end
function _update()
--if time()<1500 then return end
game:update()
car:update()
road:update()
end
function _draw()
cls(6)
road:draw()
car:draw()
end
-->8
-- car
car={
x=128/2-8,
y=100,
speed=0
}
function car:init(game)
self.game=game
end
function car:update()
if btnp(⬆️) and self.speed<4 then
self.speed=self.speed+1
end
if btnp(⬇️) and self.speed>0 then
self.speed=self.speed-1
end
if btn(⬅️) then self.x=self.x-1 end
if btn(➡️) then self.x=self.x+1 end
sfx(-1)
sfx(self.speed)
end
function car:draw()
tick=0
if self.speed>0 then
tick=self.game.t\(2^(4-self.speed))%4
end
palt(0x0100)
spr(1+tick*2,self.x,self.y,2,2)
print("speed:"..car.speed,5,5,5)
end
-->8
-- road
road={
scroll=0,
odd=0,
width=7
}
function road:init(game,car)
self.game=game
self.car=car
self.offset=16/2-self.width\2-1
-- 16 line and the next two
for i=1,18 do
self[i]=self.offset
end
end
function road:update()
if self.car.speed>0 then
newscroll=self.scroll+self.car.speed
self.scroll=newscroll%8
if newscroll>=8 then
offset=flr(rnd(3)-1)
self.offset=self.offset+offset
add(self,self.offset,1)
deli(self,#self)
self.odd=(self.odd+1)%2
end
end
end
function road:draw()
for x=0,16-1 do
for y=0,17-1 do
linenb=((self.odd+y)%2)*2
sprite=nil
if self[y+1]>self[y+2] then
if x<self[y+1] then
sprite=49
elseif x==self[y+1] then
sprite=37
elseif x==self[y+1]+road.width-1 then
sprite=54
elseif x>self[y+1]+road.width-1 then
sprite=49
else
end
elseif self[y+1]<self[y+2] then
if x<self[y+1]+1 then
sprite=49
elseif x==self[y+1]+1 then
sprite=53
elseif x==self[y+1]+road.width then
sprite=38
elseif x>self[y+1]+road.width then
sprite=49
else
end
else
if x<self[y+1] then
sprite=49
elseif x==self[y+1] then
sprite=33
elseif x==self[y+1]+road.width then
sprite=34
elseif x>self[y+1]+road.width then
sprite=49
else
end
end
if sprite then
palt()
spr(sprite+linenb,x*8,y*8+self.scroll-8)
end
end
end
end
-->8
-- game
game={
t=0
}
function game:update()
self.t=self.t+1
end
__gfx__
00000000777777711777777777777771177777777777777117777777777777711777777700000000000000000000000000000000000000000000000000000000
000000007777dddddddd77777777dddddddd77777777dddddddd77777777dddddddd777700000000000000000000000000000000000000000000000000000000
007007007775577dd77557777770077dd77007777770077dd77007777770077dd770077700000000000000000000000000000000000000000000000000000000
000770007770011dd11007777775511dd11557777770011dd11007777770011dd110077700000000000000000000000000000000000000000000000000000000
00077000777001dddd100777777001dddd100777777551dddd155777777001dddd10077700000000000000000000000000000000000000000000000000000000
00700700777007d11d700777777007d11d700777777007d11d700777777557d11d75577700000000000000000000000000000000000000000000000000000000
0000000077777dddddd7777777777dddddd7777777777dddddd7777777777dddddd7777700000000000000000000000000000000000000000000000000000000
000000007777cdd00ddc77777777cdd00ddc77777777cdd00ddc77777777cdd00ddc777700000000000000000000000000000000000000000000000000000000
000000007777cdd99ddc77777777cdd99ddc77777777cdd99ddc77777777cdd99ddc777700000000000000000000000000000000000000000000000000000000
000000007777cdd99ddc77777777cdd99ddc77777777cdd99ddc77777777cdd99ddc777700000000000000000000000000000000000000000000000000000000
0000000077777d1111d7777777777d1111d7777777777d1111d7777777777d1111d7777700000000000000000000000000000000000000000000000000000000
00000000777557d11d755777777007d11d700777777007d11d700777777007d11d70077700000000000000000000000000000000000000000000000000000000
00000000777001dddd100777777551dddd155777777001dddd100777777001dddd10077700000000000000000000000000000000000000000000000000000000
00000000777011111111077777701111111107777775111111115777777011111111077700000000000000000000000000000000000000000000000000000000
00000000777011111111077777701111111107777770111111110777777511111111577700000000000000000000000000000000000000000000000000000000
00000000777711111111777777771111111177777777111111117777777711111111777700000000000000000000000000000000000000000000000000000000
00000000bbbbbb8888bbbbbb3333338888333333bbbbbb8888bbbbbb333333888833333300000000000000000000000000000000000000000000000000000000
00000000bbbbbb8888bbbbbb3333338888333333bbbbbb8888bbbbbb333333888833333300000000000000000000000000000000000000000000000000000000
00000000bbbbbb7777bbbbbb3333337777333333bbbb77000077bbbb333377000077333300000000000000000000000000000000000000000000000000000000
00000000bbbbbb7777bbbbbb3333337777333333bbbb77000077bbbb333377000077333300000000000000000000000000000000000000000000000000000000
00000000bbbbbb8888bbbbbb3333338888333333bb880000000088bb338800000000883300000000000000000000000000000000000000000000000000000000
00000000bbbbbb8888bbbbbb3333338888333333bb880000000088bb338800000000883300000000000000000000000000000000000000000000000000000000
00000000bbbbbb7777bbbbbb33333377773333337700000000000077770000000000007700000000000000000000000000000000000000000000000000000000
00000000bbbbbb7777bbbbbb33333377773333337700000000000077770000000000007700000000000000000000000000000000000000000000000000000000
00000000bbbbbbbb0000000033333333000000007700000000000077770000000000007700000000000000000000000000000000000000000000000000000000
00000000bbbbbbbb0000000033333333000000007700000000000077770000000000007700000000000000000000000000000000000000000000000000000000
00000000bbbbbbbb000000003333333300000000bb880000000088bb338800000000883300000000000000000000000000000000000000000000000000000000
00000000bbbbbbbb000000003333333300000000bb880000000088bb338800000000883300000000000000000000000000000000000000000000000000000000
00000000bbbbbbbb000000003333333300000000bbbb77000077bbbb333377000077333300000000000000000000000000000000000000000000000000000000
00000000bbbbbbbb000000003333333300000000bbbb77000077bbbb333377000077333300000000000000000000000000000000000000000000000000000000
00000000bbbbbbbb000000003333333300000000bbbbbb8888bbbbbb333333888833333300000000000000000000000000000000000000000000000000000000
00000000bbbbbbbb000000003333333300000000bbbbbb8888bbbbbb333333888833333300000000000000000000000000000000000000000000000000000000
__label__
88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
88888eeeeee888888888888888888888888888888888888888888888888888888888888888888888888ff8ff8888228822888222822888888822888888228888
8888ee888ee88888888888888888888888888888888888888888888888888888888888888888888888ff888ff888222222888222822888882282888888222888
888eee8e8ee88888e88888888888888888888888888888888888888888888888888888888888888888ff888ff888282282888222888888228882888888288888
888eee8e8ee8888eee8888888888888888888888888888888888888888888888888888888888888888ff888ff888222222888888222888228882888822288888
888eee8e8ee88888e88888888888888888888888888888888888888888888888888888888888888888ff888ff888822228888228222888882282888222288888
888eee888ee888888888888888888888888888888888888888888888888888888888888888888888888ff8ff8888828828888228222888888822888222888888
888eeeeeeee888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111eee1e1111ee1eee1eee1eee111116161111111111661666161116661771161611111cc1117711111cc11ccc11111eee1e1e1eee1ee11111
11111111111111111e111e111e111e1111e11e111111161617771777161116111611161117111616117111c11117117111c11c1c111111e11e1e1e111e1e1111
11111111111111111ee11e111eee1ee111e11ee11111116111111111166616611611166117111666177711c11117177711c11c1c111111e11eee1ee11e1e1111
11111111111111111e111e11111e1e1111e11e111111161617771777111616111611161117111116117111c11117117111c11c1c111111e11e1e1e111e1e1111
11111111111111111eee1eee1ee11eee1eee1e11111116161111111116611666166616111771166611111ccc117711111ccc1ccc111111e11e1e1eee1e1e1111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1111111111111111111111bb1bbb1bbb11711ccc1c1c11111611166616611666166116661111161617171ccc1111161617171ccc111111661666161116661111
111111111111111111111b111b1b1b1b1711111c1c1c11711611116116161611161616161111161611711c1c1111161611711c1c117116111611161116111111
111111111111111111111bbb1bbb1bb1171111cc1ccc17771611116116161661161616611111116117771ccc1111166617771ccc177716661661161116611111
11111111111111111111111b1b111b1b1711111c111c11711611116116161611161616161171161611711c1c1171111611711c1c117111161611161116111111
111111111111111111111bb11b111b1b11711ccc111c11111666166616161666161616661711161617171ccc1711166617171ccc111116611666166616111171
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111eee1e1111ee1eee1eee1eee11111616171111661666161116661771161611111cc1117711111cc11ccc11111eee1e1e1eee1ee111111111
11111111111111111e111e111e111e1111e11e11111116161171161116111611161117111616117111c11117117111c11c1c111111e11e1e1e111e1e11111111
11111111111111111ee11e111eee1ee111e11ee1111111611117166616611611166117111666177711c11117177711c11c1c111111e11eee1ee11e1e11111111
11111111111111111e111e11111e1e1111e11e11111116161171111616111611161117111116117111c11117117111c11c1c111111e11e1e1e111e1e11111111
11111111111111111eee1eee1ee11eee1eee1e1111111616171116611666166616111771166611111ccc117711111ccc1ccc111111e11e1e1eee1e1e11111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1111111111111111111111bb1bbb1bbb11711c1c1ccc11111611166616611666166116661111161617171ccc1111161617171ccc111111661666161116661111
111111111111111111111b111b1b1b1b17111c1c1c1c11711611116116161611161616161111161611711c1c1111161611711c1c117116111611161116111111
111111111111111111111bbb1bbb1bb117111ccc1ccc17771611116116161661161616611111116117771ccc1111166617771ccc177716661661161116611111
11111111111111111111111b1b111b1b1711111c111c11711611116116161611161616161171161611711c1c1171111611711c1c117111161611161116111111
111111111111111111111bb11b111b1b1171111c111c11111666166616161666161616661711161617171ccc1711166617171ccc111116611666166616111171
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111eee1e1111ee1eee111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111e111e111e111e11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111ee11e111eee1ee1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111e111e11111e1e11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111eee1eee1ee11eee111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111eee1ee11ee11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111e111e1e1e1e1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111ee11e1e1e1e1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111e111e1e1e1e1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111eee1e1e1eee1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1111111111111eee1ee11ee111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1111111111111e111e1e1e1e11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1111111111111ee11e1e1e1e11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1111111111111e111e1e1e1e11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1111111111111eee1e1e1eee11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111eee1ee11ee1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111e111e1e1e1e111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111ee11e1e1e1e111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111e111e1e1e1e111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111eee1e1e1eee111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111eee1ee11ee11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111e111e1e1e1e1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111ee11e1e1e1e1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111e111e1e1e1e1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111eee1e1e1eee1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1eee1ee11ee111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1e111e1e1e1e11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1ee11e1e1e1e11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1e111e1e1e1e11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1eee1e1e1eee11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1ddd1ddd1ddd1ddd1ddd1ddd1ddd1ddd1ddd1ddd1ddd1ddd1ddd1ddd1ddd1ddd1ddd1ddd1ddd1ddd1ddd1ddd1111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1eee1e1e1ee111ee1eee1eee11ee1ee1111116661166116616661171117111111111111111111111111111111111111111111111111111111111111111111111
1e111e1e1e1e1e1111e111e11e1e1e1e111116161616161611611711111711111111111111111111111111111111111111111111111111111111111111111111
1ee11e1e1e1e1e1111e111e11e1e1e1e111116611616161611611711111711111111111111111111111111111111111111111111111111111111111111111111
1e111e1e1e1e1e1111e111e11e1e1e1e111116161616161611611711111711111111111111111111111111111111111111111111111111111111111111111111
1e1111ee1e1e11ee11e11eee1ee11e1e111116661661166111611171117111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111166166616661111166616611666166611711166166616661666117111111111111111111111111111111111111111111111111111111111111111111111
11111611161616161171116116161161116117111611161616661611111711111111111111111111111111111111111111111111111111111111111111111111
11111611166616611111116116161161116117111611166616161661111711111111111111111111111111111111111111111111111111111111111111111111
11111611161616161171116116161161116117111616161616161611111711111111111111111111111111111111111111111111111111111111111111111111
11111166161616161111166616161666116111711666161616161666117111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111666116616661661111116661661166616661171116616661666166611111166166616661171111111111111111111111111111111111111111111111111
11111616161616161616117111611616116111611711161116161666161111111611161616161117111111111111111111111111111111111111111111111111
11111661161616661616111111611616116111611711161116661616166111111611166616611117111111111111111111111111111111111111111111111111
11111616161616161616117111611616116111611711161616161616161111711611161616161117111111111111111111111111111111111111111111111111
11111616166116161666111116661616166611611171166616161616166617111166161616161171111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1111111111111ddd1d1d11dd1ddd11dd11d11ddd111111111dd1111111111dd111111ddd1ddd1d1111dd1ddd11d1111111111111111111111111111111111111
1111111111111ddd1d1d1d1111d11d111d111d1d1111111111d11111111111d111111d111d1d1d111d111d11111d111111111111111111111111111111111111
11111ddd1ddd1d1d1d1d1ddd11d11d111d111d1d11111ddd11d111111ddd11d111111dd11ddd1d111ddd1dd1111d111111111111111111111111111111111111
1111111111111d1d1d1d111d11d11d111d111d1d11d1111111d111d1111111d111d11d111d1d1d11111d1d11111d111111111111111111111111111111111111
1111111111111d1d11dd1dd11ddd11dd11d11ddd1d1111111ddd1d1111111ddd1d111d111d1d1ddd1dd11ddd11d1111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1eee1ee11ee111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1e111e1e1e1e11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1ee11e1e1e1e11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1e111e1e1e1e11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1eee1e1e1eee11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
82888222822882228888822882288288888282288282822288888888888888888888888888888888888888888222822282828882822282288222822288866688
82888828828282888888882888288288882888288282888288888888888888888888888888888888888888888882828882828828828288288282888288888888
82888828828282288888882888288222882888288222882288888888888888888888888888888888888888888882822282228828822288288222822288822288
82888828828282888888882888288282882888288882888288888888888888888888888888888888888888888882888288828828828288288882828888888888
82228222828282228888822282228222828882228882822288888888888888888888888888888888888888888882822288828288822282228882822288822288
88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
__sfx__
0001000c0105003050040500405004050010500005000050020500005000050000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0001000c0405004050030500205003050040500605007050060500405006050060500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0001000c0505005050080500805006050070500a0500a050080500705009050090500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0001000c0a0500b0500905007050090500b0500a050080500a0500b050090500c0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0101000c0d0500c0500b0500b0500c0500d0500a0500a0500d0500c0500b0500b0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000