This commit is contained in:
2025-08-01 11:04:50 +02:00
parent 3429183689
commit 63166af570
3 changed files with 357 additions and 8 deletions

BIN
.DS_Store vendored

Binary file not shown.

View File

@@ -404,6 +404,7 @@ end
--menu
menu={
--menu.tracks
tracks={
{
n=0,
@@ -414,6 +415,7 @@ menu={
l=127
},
},
--menu.items
items={
{
text="play",
@@ -470,12 +472,14 @@ menu={
speaktimer=0,
selected=1,
bg=12,
--menu:init()
init=function(self)
async(function()
fadein()
end)
bgm:set(self.tracks)
async(function()
fadein()
end)
bgm:set(self.tracks)
end,
--menu:update()
update=function(self)
if btnp(⬆️) then
self:up()
@@ -490,6 +494,7 @@ menu={
end)
end
end,
--menu:draw
draw=function(self)
rectfill(0,0,127,127,self.bg)
map()
@@ -502,6 +507,7 @@ menu={
rectfill(89,9,104,23,2)
self:drawlou()
end,
--menu:drawlou
drawlou=function(self)
if self.speaktimer>0 then
local sen = lou.sentence
@@ -516,6 +522,7 @@ menu={
92+(cos(time()*.12)*lou.strength),
14-(sin(time()*.08)*lou.strength))
end,
--menu:up
up=function(self)
sfx(30)
t={h=-1,v=self.selected}
@@ -527,6 +534,7 @@ menu={
end
self.selected=t.v
end,
--menu:down
down=function(self)
sfx(30)
t={h=32000,v=self.selected}
@@ -536,16 +544,13 @@ menu={
end
end
self.selected=t.v
end,
x=function(self)
end,
o=function(self)
end
}
--play
play={
--play.tracks
tracks={
{
n=2,
@@ -553,6 +558,7 @@ play={
},
},
currentgame=1,
--play:init
init=function(self)
async(function()
fadein()
@@ -560,12 +566,15 @@ play={
bgm:set(self.tracks)
currentgame=1 --make this random later
end,
--play:update
update=function(self)
games[self.currentgame]:update()
end,
--play:draw
draw=function(self)
games[self.currentgame]:draw()
end,
--play:win
win=function(self)
cs=1
end,

340
watervibes.p8 Normal file
View File

@@ -0,0 +1,340 @@
pico-8 cartridge // http://www.pico-8.com
version 42
__lua__
function _init()
--
end
function _draw()
--regular screen palette
pal()
--values 0x10 and 0x30 to 0x3f change the effect
poke(0x5f5f,0x10)
--new colors on the affected line
pal(5,-11,2)
pal(6,-3,2)
pal(13,-14,2)
pal(9,-7,2)
pal(10,-6,2)
--0x5f70 to 0x5f7f are the 16 sections of the screen
--0xff is the bitfield of which of the 16 line of the section are affected
-- memset(0x5f78+0x1*(wl),0xff-(0x1*wl),1)
-- memset(0x5f79+0x1*(wl),0xff,8-(wl))
memset(0x5f80-(wl),up,32)
cls()
rect(0,0,128,128)
rectfill(0,92,128,128,6)
for x=0,2 do
sspr(48,0,32,32,0+(128/2)*x,32,64,64)
end
drawmap()
line(0,128-wl*8,128,128-wl*8,7)
for i=0,8 do
sx=abs(sin(time()/8+i*70))*128
line(sx,128-wl*8,sx+rnd(8),128-wl*8,6)
end
print("press ⬆️ to raise",32,64,8)
fishy:draw()
end
function _update60()
if btnp(⬆️) then
wl+=1
end
if btnp(⬇️) then
wl-=1
clearwl()
end
fishy:update()
end
function clearwl()
memset(0x5f70,0x00,32)
end
function drawmap()
map()
for x=0,15 do
for y=0,15 do
if full(x,y) then
left,right=false,false
--left side
if not full(x-1,y) then
sspr(16,0,4,8,x*8,y*8)
left=true
else
--inside corner
if not full(x-1,y+1) then
sspr(24,4,4,4,x*8,y*8+4)
end
if not full(x-1,y-1) then
sspr(24,0,4,4,x*8,y*8)
end
end
--right side
if not full(x+1,y) then
sspr(22,0,4,8,x*8+6,y*8)
right=true
else
if not full(x+1,y+1) then
sspr(28,4,4,4,x*8+4,y*8+4)
end
if not full(x+1,y-1) then
sspr(28,0,4,4,x*8+4,y*8)
end
end
--ground
if not full(x,y-1) then
sspr(8,0,8,5,x*8,y*8)
if right then
sspr(36,0,4,5,x*8+4,y*8)
end
if left then
sspr(32,0,4,5,x*8,y*8)
end
end
--ceiling
if not full(x,y+1) then
sspr(8,5,8,3,x*8,y*8+5)
if right then
sspr(36,5,4,5,x*8+4,y*8+5)
end
if left then
sspr(32,5,4,5,x*8,y*8+5)
end
end
end
end
end
end
-->8
--vars
up=0xff
wl=0 --waterlevel
--helpers
function full(x,y)
return mget(x,y)==5
end
--lerp from x to y over t (t being 0 to 1, 1 being complete)
function lerp(x,y,t)
return x+(y-x)*t
end
-->8
--characters
--fishy
fishy={
x=64,
y=64,
v={x=0,y=0},--velocity
uw=true, --underwater
--fishy:update
update=function(self)
if vw then
self.v.y=lerp(self.v.y,0,.5)
g=0.
else
g=.5
end
self.v.y +=g
tx=lerp(self.x,self.x+self.v.x,.2)
ty=lerp(self.y,self.y+self.v.y,.2)
if not full(fishy.x/8,ty/8) then
self.y=ty
else
self.v.y=0
end
if not full(tx/8,fishy.y/8) then
self.x=tx
else
self.v.x=0
end
end,
--fishy:draw
draw=function(self)
camera(fishy.x-64,fishy.y-64)
spr(0,self.x,self.y)
end,
--fishy:move
move=function(x,y)
end,
}
__gfx__
000000003b3d33b300000000d00000030b3003b05555555500000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000033533b53530000030000000333b005535555555500000000000000000000000000000000000000000000000000000000000000000000000000000000
009999000505300033000006000000003d300d3d5555555500000000000000000000000000000000000000000000000000000000000000000000000000000000
00959500000000000000003100000000550005d35555555500000000000000000000000000000000000000000000000000000000000000000000000000000000
09a9a900000000000000000000000000000000005555555500000000000000000000000000000000000000000000000000000000000000000000000000000000
00999990000000003000000000000000000000005555555500000000000000000000000000000000000000000000000000000000000000000000000000000000
0900900010d00000bd00005330000000000000005555555500000000000000000000000000000000000000000000000000000000000000000000000000000000
00900900dd00d11d0000000010000001100000035555555500000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000006660000000600000000000000000000000000000000000000000000000000
00666600000000000000000000000000000000000000000000000000000000000067766000006660000000000000000000000000000000000000000000000000
00656500000000000000000000000000000000000000000000000000000000000677766600066666000000000000000000000000000000000000000000000000
0666660000000000000000000000000000000000000000006000000000000000667776666066dddd000000000000000000000000000000000000000000000000
0066666000000000000000000000000000000000000000006600000000000006677777666666dddd000000000000000000000000000000000000000000000000
060060000000000000000000000000000000000000000000d660000000000066777777766666dddd000000000000000000000000000000000000000000000000
006006000000000000000000000000000000000000000000dd660000000006677777777776666ddd000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000ddd66000000066777777777777766ddd000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000ddd66700000667777777777777776ddd000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000dddd6670006667777777777777776ddd000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000ddddd6670667777766777777777766dd000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000dddddd667677776666666677777766dd000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000ddddddd777777666666666666777666d000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000ddddd677776666666666666667766666000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000ddddd767766666666666666666766666000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000dddd7666666666666666666666766666000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000ddd76666666666666666666666766666000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000dd766666666666666666666666666666000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000d7666666666666666666666666666666000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000076666666666666666666666666666666000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000066666666666666666666666666666666000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000066666666666666666666666666666666000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000066666666666666666666666666666666000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
60606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
__map__
0505050505050505050505050505050606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606
0500000000000000000000000005050000000000000000000006060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606
0500000000000000000000000005050000000000000000000006060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606
0500000000000000000000000000050000000000000000000006060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606
0500000005050505050505000000050000000000000000000006060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606
0500000000000000000000000000050000000000000000000006060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606
0500000000000000000000000000050000000000000000000006060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606
0500000000000000000000000000050000000000000000000006060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606
0500000000000000000000000000000000000000000000000006060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606
0500000000000000000000000000000000000000000000000006060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606
0500000000000000000000000000000000000000000000000006060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606
0500000000000000000000000000000000000000000000000006060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606
0500000000000000000000000000000000000000000000000006060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606
0500000000000000000000000000000000000000000000000006060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606
0500000000000005050505050500000000000000000000000006060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606
0505050505050505000005050000000000000000000000000006060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606
0000000000000000000000000000000000000000000000000006060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606
0000000000000000000000000000000000000000000000000006060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606
0606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606
0606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606
0606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606
0606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606
0606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606
0606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606
0606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606
0606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606
0606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606
0606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606
0606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606
0606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606
0606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606
0606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606