Up cursor key moves frog, space bar resets game and esc key exits game.
Code: Select all
#include "fbgfx.bi"
using fb
screenres 640,480,32
type sprite
x as integer
y as integer
dx as integer
dy as integer
w as integer
h as integer
speed as integer
end type
function scollision(s1 as sprite, s2 as sprite) as integer
dim as integer hit
hit = 0
if s1.x >= s2.x and s1.x <= s2.x+s2.w then
if s1.y >= s2.y and s1.y <= s2.y + s2.h then
hit = 1
end if
if s1.y + s1.h >= s2.y and s1.y + s1.h <= s2.y+s2.h then
hit = 2
end if
if s1.y <= s2.y and s1.y + s1.h >= s2.y + s2.h then 'overlap
hit = 3
end if
end if
if s1.x + s1.w >= s2.x and s1.x + s1.w <= s2.x+s2.w then
if s1.y >= s2.y and s1.y <= s2.y + s2.h then
hit = 4
end if
if s1.y + s1.h >= s2.y and s1.y + s1.h <= s2.y+s2.h then
hit = 5
end if
if s1.y <= s2.y and s1.y + s1.h >= s2.y + s2.h then 'overlap
hit = 6
end if
end if
return hit
end function
dim shared frog as sprite
dim shared car(1 to 4) as sprite
dim shared croc(1 to 4) as sprite
dim as string text 'to read data statements
cls
dim as FB.Image ptr iFrog = imagecreate(21,23,0)
for j as integer = 0 to 22
read text
for i as integer = 0 to 20
if mid(text,i+1,1)="P" then
pset(i,j),&HFFFF00FF
end if
if mid(text,i+1,1)="B" then
pset(i,j),&HFF000000
end if
if mid(text,i+1,1)="G" then
pset(i,j),&HFF00FF00
end if
if mid(text,i+1,1)="Y" then
pset(i,j),&HFFFFC90E
end if
next i
next j
get (0,0)-(20,22), iFrog
dim as FB.Image ptr deadFrog = imagecreate(21,23,0)
for j as integer = 0 to 22
for i as integer = 0 to 20
if point(i,j) = &HFF00FF00 then
pset(i,j),&HFFFF0000
end if
if point(i,j)=&HFFFFC90E then
pset(i,j),&HFF0000FF
end if
next i
next j
get (0,0)-(20,22), deadFrog
'create a car
cls
dim as FB.Image ptr icar1 = imagecreate(40,20,0)
for j as integer = 0 to 19
read text
for i as integer = 0 to 39
if mid(text,i+1,1)="P" then
pset(i,j),&HFFFF00FF
end if
if mid(text,i+1,1)="B" then
pset (i,j),&HFF000000
end if
if mid(text,i+1,1)="W" then
pset (i,j),&HFFFFFFFF
end if
if mid(text,i+1,1)="R" then
pset (i,j),&HFFED1C24
end if
next i
next j
get (0,0)-(39,19), icar1
dim as FB.Image ptr iCar2 = imagecreate(40,20,0)
'flip car image horizontally
dim as integer k,v
for j as integer = 0 to 19
for i as integer = 0 to 19
v=point(i,j)
pset(i,j),point(39-i,j)
pset(39-i,j),v
next i
next j
get (0,0)-(39,19), iCar2
'create a crocs
cls
dim as FB.Image ptr icroc1 = imagecreate(80,20,0)
for i as integer = 0 to 79
read text
for j as integer = 0 to 19
if mid(text,j+1,1)="P" then
pset (i,j),&HFFFF00FF
end if
if mid(text,j+1,1)="B" then
pset (i,j),&HFF000000
end if
if mid(text,j+1,1)="G" then
pset(i,j),&HFF22B14C
end if
if mid(text,j+1,1)="Y" then
pset(i,j),&HFFFFC90E
end if
if mid(text,j+1,1)="X" then
pset(i,j),&HFF3F48CC
end if
next j
next i
get (0,0)-(79,19), icroc1
dim as FB.Image ptr icroc2 = imagecreate(80,20,0)
'flip croc image horizontally
for j as integer = 0 to 19
for i as integer = 0 to 39
v=point(i,j)
pset(i,j),point(79-i,j)
pset(79-i,j),v
next i
next j
get (0,0)-(79,19), icroc2
'create a crocs
cls
dim as FB.Image ptr icrocA1 = imagecreate(80,20,0)
for i as integer = 0 to 79
read text
for j as integer = 0 to 19
if mid(text,j+1,1)="P" then
pset (i,j),&HFFFF00FF
end if
if mid(text,j+1,1)="B" then
pset (i,j),&HFF000000
end if
if mid(text,j+1,1)="G" then
pset(i,j),&HFF22B14C
end if
if mid(text,j+1,1)="Y" then
pset(i,j),&HFFFFC90E
end if
if mid(text,j+1,1)="X" then
pset(i,j),&HFF3F48CC
end if
next j
next i
get (0,0)-(79,19), icrocA1
dim as FB.Image ptr icrocA2 = imagecreate(80,20,0)
'flip croc image horizontally
for j as integer = 0 to 19
for i as integer = 0 to 39
v=point(i,j)
pset(i,j),point(79-i,j)
pset(79-i,j),v
next i
next j
get (0,0)-(79,19), icrocA2
bload "C:\FreeBasic\bitmaps\sprites\backGround.bmp"
'draw background
line (0,0)-(372,31),rgb(255,128,0),bf 'orange display area
line (0,32)-(372,62),rgb(0,128,0),bf 'green home
line (0,63)-(372,191),rgb(128,255,255),bf 'blue river
line (0,192)-(372,223),rgb(0,128,0),bf 'green safe spot
line (0,224)-(372,351),rgb(192,192,192),bf 'gray road
line (0,352)-(372,383),rgb(0,128,0),bf 'green start
line (0,384)-(372,415),rgb(255,128,0),bf 'orange display area
for i as integer = 0 to 5
circle (i*62+31,47),12,rgb(128,0,0),,,,f 'frog holes
next i
'lines on road
line (0,256)-(372,256),rgb(255,255,0) 'yellow lines
line (0,288)-(372,288),rgb(255,255,0)
line (0,320)-(372,320),rgb(255,255,0)
'display text
locate 2,1
color rgb(0,0,0),rgb(255,128,0) 'black on orange
print " FROGGER GAME "
dim as FB.Image ptr backGround = imagecreate(372,416,0)
get (0,0)-(371,415),backGround
dim as string reply
do
reply = "" 'signal to keep going while reply <> "y" or "x"
frog.x=170
frog.y=357
frog.w=21
frog.h=23
frog.speed=32
car(1).x = 0
car(1).y = 230
car(1).dx = 1
car(1).dy = 0
car(1).w = 40
car(1).h = 20
car(2).x = 300
car(2).y = 262
car(2).dx = 1
car(2).dy = 0
car(2).w = 40
car(2).h = 20
car(3).x = 150
car(3).y = 294
car(3).dx = 1
car(3).dy = 0
car(3).w = 40
car(3).h = 20
car(4).x = 30
car(4).y = 326
car(4).dx = 1
car(4).dy = 0
car(4).w = 40
car(4).h = 20
croc(1).x = 0
croc(1).y = 72
croc(1).dx = 1
croc(1).dy = 0
croc(1).w = 80
croc(1).h = 20
croc(2).x = 300
croc(2).y = 104
croc(2).dx = 1
croc(2).dy = 0
croc(2).w = 80
croc(2).h = 20
croc(3).x = 150
croc(3).y = 136
croc(3).dx = 1
croc(3).dy = 0
croc(3).w = 80
croc(3).h = 20
croc(4).x = 30
croc(4).y = 168
croc(4).dx = 1
croc(4).dy = 0
croc(4).w = 80
croc(4).h = 20
dim as integer chosenLog
chosenLog = 0
dim as double now
now = 0
do
screenlock()
cls
'draw background
put (0,0),backGround,pset
'draw croc under frog
for i as integer = 1 to 4
if croc(i).dx < 0 then
if chosenLog = i then
put (croc(i).x,croc(i).y),icrocA2,trans
else
put (croc(i).x,croc(i).y),icroc2,trans
end if
else
if chosenLog = i then
put (croc(i).x,croc(i).y),icrocA1,trans
else
put (croc(i).x,croc(i).y),icroc1,trans
end if
end if
next i
'draw dead frog if speed = 0 else draw live frog
if frog.speed = 0 then
put (frog.x,frog.y),deadFrog,trans 'change to a dead frog sprite later
else
put (frog.x,frog.y),iFrog, trans
end if
'draw cars on top of frog
for i as integer = 1 to 4
if car(i).dx < 0 then
put(car(i).x,car(i).y),iCar2,trans 'moving left
else
put (car(i).x, car(i).y ), iCar1, trans 'moving right
end if
next i
locate 50,1
if frog.speed = 0 then
print " **** FROG DEAD ****"
end if
if frog.y < 64 then
print " **** FROG HOME ****"
end if
print " HIT SPACE KEY to start again OR ESC key to END program"
screenunlock()
'update car positions
for i as integer = 1 to 4
car(i).x = car(i).x + car(i).dx
next i
'update log positions
for i as integer = 1 to 4
croc(i).x = croc(i).x + croc(i).dx
'update frog.x position if on log
if chosenLog = i then
frog.x = frog.x + croc(i).dx
end if
next i
'reverse car directions if out of bounds
for i as integer = 1 to 4
if car(i).x < 0 or car(i).x > 332 then car(i).dx=-car(i).dx
next i
'reverse croc directions if out of bounds
for i as integer = 1 to 4
if croc(i).x < 0 or croc(i).x > 312 then croc(i).dx=-croc(i).dx
next i
'user input accepted only every 0.25 seconds - feels like the real thing
if timer > (now + 0.25) then
if multikey(SC_SPACE) then reply = "y"
if multikey(SC_ESCAPE) then reply = "x"
if frog.y > 63 then 'test frog hasn't reached home
if multikey(SC_DOWN) andalso frog.y <352 then
frog.y = frog.y+frog.speed
now = timer
chosenLog=0
end if
if multikey(sc_up) then
frog.y = frog.y-frog.speed
now = timer 'reset timer
chosenLog = 0 'if log remove log ID
end if
if multikey(SC_right) andalso frog.x < 302 then
frog.x = frog.x+frog.speed
now = timer
chosenLog=0
end if
if multikey(sc_left) andalso frog.x > 10 then
frog.x = frog.x-frog.speed
now = timer
chosenLog = 0
end if
end if
end if
dim as integer hit
if frog.y < 352 and frog.y > 224 then
'test for collision with car
hit = 0
for i as integer = 1 to 4
if hit = 0 then
hit = scollision(frog,car(i))
end if
next i
if hit <> 0 then
frog.speed = 0 'flag frog dead
end if
end if
if frog.y < 192 and frog.y > 64 then
'test collision with a log
hit = 0
for i as integer = 1 to 4
hit = scollision(frog,croc(i))
if hit <> 0 and chosenLog = 0 then
chosenLog = i
end if
next i
if chosenLog=0 then
locate 1,1
print "MISSED LOG"
frog.speed = 0
sleep
end if
end if
sleep 10, 1
loop while reply <> "y" and reply <> "x"
loop while reply = "y"
end
'frog image 21 x 23
DATA "PPPPPPPPPBBBPPPPPPPPP"
DATA "PPPPPBBBBGGGBBBBPPPPP"
DATA "PPPPBYBBYBGBYBBYBPPPP"
DATA "PPPPBYBBYBGBYBBYBPPPP"
DATA "PBBPBYYYYBGBYYYYBPBBP"
DATA "BGGBPBBBBGGGBBBBPBGGB"
DATA "PBGGBBGGGGGGGGGBBGGBP"
DATA "BGGGGBBGGGBGGGBBGGGGB"
DATA "PBGGGBBBBGBGBBBBGGGBP"
DATA "BGGGGGBGGGBGGGBGGGGGB"
DATA "PBBBGBGGGGGGGGGBGBBBP"
DATA "PPPPBBGGGGBGGGGBBPPPP"
DATA "PPPPBGGGGGBGGGGGBPPPP"
DATA "PPPPBGGGGGBGGGGGBPPPP"
DATA "PBBBBGGGGGBGGGGGBBBBP"
DATA "PBGGGBGGGGBGGGGBGGGBP"
DATA "PBGGGGBGGGBGGGBGGGGBP"
DATA "PBBGGGBGGGBGGGBGGGBBP"
DATA "PPBGBGGBGGBGGBGGBGBPP"
DATA "PBBBGGGBGGGGGBGGGBBBP"
DATA "PBGGGBBGBGGGBGBBGGGBP"
DATA "PBBBGGBBBGGGBBBGGBBBP"
DATA "PPPPBBBPPBBBPPBBBPPPP"
'car3D data
DATA "PPPPPBBBBBBBBBBBBBBBBBBBBBPPPPPPPPPPPPPP"
DATA "PPPPBRRRRRRRRRRRRRRRRRRRBWBPPPPPPPPPPPPP"
DATA "PPPBBRRRRRRRRRRRRRRRRRRRBWWBBPPPPPPPPPPP"
DATA "PPBWBRRRRRRRRRRRRRRRRRRRBWWWWBPPPPPPPPPP"
DATA "PBBWBRRRRRRRRRRRRRRRRRRRBWWWWWBBBBBBBBBB"
DATA "BRBWBRRRRRRRRRRRRRRRRRRRBWWWWWWBRRRRRRRB"
DATA "BRBWBRRRRRRRRRRRRRRRRRRRBWWWWWWBRRRRRRRB"
DATA "BRBWBBBBBBBBBBBBBBBBBBBBBBWWWWWBRRRRRRRB"
DATA "BRBWBWWWWWWWWWWBWWWWWWWWBBWWWWWBRRRRRBRB"
DATA "BRBWBWWWWWWWWWWBWWWWWWWWBWBWWWWBRRRRRRRB"
DATA "BRBWBWWWWWWWWWWBWWWWWWWWBWWBBWWBRRRRRRRB"
DATA "BRBWBWWWWWWWWWWBWWWWWWWWBWWWWBWBRRRRRRRB"
DATA "BRBWBWWWWWWWWWWBWWWWWWWWBWWWWWBBRRRRRRRB"
DATA "BRBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
DATA "BRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRB"
DATA "BRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRB"
DATA "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
DATA "PBBBBBBBBPPPPPPPPPPPPPPPPPPPPPPBBBBBBBBB"
DATA "PPBBBBBBPPPPPPPPPPPPPPPPPPPPPPPPBBBBBBBP"
DATA "PPPBBBBPPPPPPPPPPPPPPPPPPPPPPPPPPBBBBBPP"
'croc data
DATA "PPPPPPPPPPPPPPBBXXBX"
DATA "PPPPPPPPPPPPPBBGXXBP"
DATA "PPPPPPPPPPPPPBBGGXBP"
DATA "PPPPPPPPPPPPPPBGGXBP"
DATA "PPPPPPPPPPPPPBBGXXBX"
DATA "PPPPPPPPPPPPPBBGXXBP"
DATA "PPPPPPPPPPPPPPBGXGPP"
DATA "PPPPPPPPPPPPPBBGXXPX"
DATA "PPPPPPPPPPPPBBGGXXGX"
DATA "PPPPPPPPPPPPPBBGXXBX"
DATA "PPPPPPPPPPPPPPBGXXXX"
DATA "PPPPPPPPPPPPBBBGGXXP"
DATA "PPPPPPPPPPPPBGGGGXBP"
DATA "PPPPPPPPPPPPBBGGGXBP"
DATA "PPPPPPPPPPPPPBBGGXBP"
DATA "PPPPPPPPPPPPPBGGGXBP"
DATA "PPPPPPPPPPPPBBGGGGXP"
DATA "PPPPPPPPPPPPBBGGBGXB"
DATA "PPPPPPPPPPPPPBGBBGXX"
DATA "PPPPPPPPPPPPBBGBGGBX"
DATA "PPPPPPPPPPPPBGGGGGBX"
DATA "PPPPPPPPPPPPBGGBGGPX"
DATA "PPPPPPPPPPPBBGGBGGGX"
DATA "PPPPPPPPPPBBGGGGGGGX"
DATA "PPPPPPPPPPBGGGGGGXGP"
DATA "PPPPPPPPPPBGGGGGGXGP"
DATA "PPPPPPPPPPBGGGGBGXGP"
DATA "PPPPPPPPPBBGGGGBGXGP"
DATA "PPPPPPPPBBGGGGGBGXGP"
DATA "PPPPPPPPBGGGGGBBGXGP"
DATA "PPPPPPPPBGGGGGBGGXGX"
DATA "PPPPPPPBBGGGGGBGGGGX"
DATA "PPPPPPBBGGGBGGBBGGGX"
DATA "PPPPPPBGGGBBGGGBGGGP"
DATA "PPPPPPBBGGGBGGGBGGGP"
DATA "PPPPPPPBGGBBGGGBGBGP"
DATA "PPPPPPBBGGBBGGGBGBGP"
DATA "PPPPPBBGGGGBGGBGBBGX"
DATA "PPPPPBGGGGGGGGBGBGGX"
DATA "PPPPPBBGGGGGGGBGBGGX"
DATA "PPPPPPBGGGGGGGBBGGBX"
DATA "PPPPPBBGGGBGGGBBGGBX"
DATA "PPPPPBGGGGGGGGBGGGBX"
DATA "PPPPBBGGGGGGGBBGGGXP"
DATA "PPPPBBGGGGGGGBGGGGXP"
DATA "PPPPPBGGGGGGBBGGGGXP"
DATA "PPPPPBGGGBGGBGGGGGXP"
DATA "PPPPPBBGGGGGBGGGGGXP"
DATA "PPPPPPBGGGGGGGBGGGPP"
DATA "PPPPPBBGGGGGGBBGGGPX"
DATA "PPPPBBGGGBGGGGBGGGPX"
DATA "PPPPBBGGBBGGGGBGBGXX"
DATA "PPPPPBGGBGGGGBBGGBXX"
DATA "PPPPPBGGGGGGGBBGGBXX"
DATA "PPPPPBGGGGGGGBGGGBXX"
DATA "PPPPBBGGGBGBGBGGGBXX"
DATA "PPPPBGGGGBGBGBGGGXXX"
DATA "PPBBBGGGGGGGGBBGGXXX"
DATA "PBGGGGBBGGGGGBBGGXPX"
DATA "BGYYYYYBGGGGGGBGGXPX"
DATA "BGYBBYYBGGGGGGBGGGPX"
DATA "BGYBBYYBGGGGGGBGGGXX"
DATA "PBGGGBBGGGGGGGBBGGXX"
DATA "PPBBBBBBGGGGGGBBBGXX"
DATA "PPPPPPPBGGGGGBGBBGXX"
DATA "PPPPPPPPBGGGGBBBBGXX"
DATA "PPPPPPPPBGGGGBBBGGXX"
DATA "PPPPPPPPPBGGGGBBGGPP"
DATA "PPPPPPPPPPBGGGBBGGXP"
DATA "PPPPPPPPPPBGGGBBGGXP"
DATA "PPPPPPPPPPBGGGBBGGXX"
DATA "PPPPPPPPPPBGGGBBGGXP"
DATA "PPPPPPPPPPBGGGBBGXXP"
DATA "PPPPPPPPPPBGGGBBGXXP"
DATA "PPPPPPPPPBBGGGBBXXXP"
DATA "PPPPPPPPBGGGGGBBXXPX"
DATA "PPPPPPPBGBBGGGBBXXPX"
DATA "PPPPPPPBGBBBGGBBXXPX"
DATA "PPPPPPPPBGGGGBBBXXPX"
DATA "PPPPPPPPPBBBBBBXXPPX"
'crocA
DATA "PPPPPPPPPPPPPPBBXXBX"
DATA "PPPPPPPPPPPPPBBGXXBP"
DATA "PPPPPPPPPPPPPBBGGXBP"
DATA "PPPPPPPPPPPPPPBGGXBP"
DATA "PPPPPPPPPPPPPBBGXXBX"
DATA "PPPPPPPPPPPPPBBGXXBP"
DATA "PPPPPPPPPPPPPPBGXGPP"
DATA "PPPPPPPPPPPPPBBGXXPX"
DATA "PPPPPPPPPPPPBBGGXXGX"
DATA "PPPPPPPPPPPPPBBGXXBX"
DATA "PPPPPPPPPPPPPPBGXXXX"
DATA "PPPPPPPPPPPPBBBGGXXP"
DATA "PPPPPPPPPPPPBGGGGXBP"
DATA "PPPPPPPPPPPPBBGGGXBP"
DATA "PPPPPPPPPPPPPBBGGXBP"
DATA "PPPPPPPPPPPPPBGGGXBP"
DATA "PPPPPPPPPPPPBBGGGGXP"
DATA "PPPPPPPPPPPPBBGGBGXB"
DATA "PPPPPPPPPPPPPBGBBGXX"
DATA "PPPPPPPPPPPPBBGBGGBX"
DATA "PPPPPPPPPPPPBGGGGGBX"
DATA "PPPPPPPPPPPPBGGBGGPX"
DATA "PPPPPPPPPPPBBGGBGGGX"
DATA "PPPPPPPPPPBBGGGGGGGX"
DATA "PPPPPPPPPPBGGGGGGXGP"
DATA "PPPPPPPPPPBGGGGGGXGP"
DATA "PPPPPPPPPPBGGGGBGXGP"
DATA "PPPPPPPPPBBGGGGBGXGP"
DATA "PPPPPPPPBBGGGGGBGXGP"
DATA "PPPPPPPPBGGGGGBBGXGP"
DATA "PPPPPPPPBGGGGGBGGXGX"
DATA "PPPPPPPBBGGGGGBGGGGX"
DATA "PPPPPPBBGGGBGGBBGGGX"
DATA "PPPPPPBGGGBBGGGBGGGP"
DATA "PPPPPPBBGGGBGGGBGGGP"
DATA "PPPPPPPBGGBBGGGBGBGP"
DATA "PPPPPPBBGGBBGGGBGBGP"
DATA "PPPPPBBGGGGBGGBGBBGX"
DATA "PPPPPBGGGGGGGGBGBGGX"
DATA "PPPPPBBGGGGGGGBGBGGX"
DATA "PPPPPPBGGGGGGGBBGGBX"
DATA "PPPPPBBGGGBGGGBBGGBX"
DATA "PPPPPBGGGGGGGGBGGGBX"
DATA "PPPPBBGGGGGGGBBGGGXP"
DATA "PPPPBBGGGGGGGBGGGGXP"
DATA "PPPPPBGGGGGGBBGGGGXP"
DATA "PPPPPBGGGBGGBGGGGGXP"
DATA "PPPPPBBGGGGGBGGGGGXP"
DATA "PPPPPPBGGGGGGGBGGGPP"
DATA "PPPPPBBGGGGGGBBGGGPX"
DATA "PPPPBBGGGBGGGGBGGGPX"
DATA "PPPPBBGGBBGGGGBGBGXX"
DATA "PPPPPBGGBGGGGBBGGBXX"
DATA "PPPPPBGGGGGGGBBGGBXX"
DATA "PPPPPBGGGGGGGBGGGBXX"
DATA "PPPPBBGGGBGBGBGGGBXX"
DATA "PPPPBGGGGBGBGBGGGXXX"
DATA "PPBBBGGGGGGGGBBGGXXX"
DATA "PBGGGGBBGGGGGBBGGXPX"
DATA "BGYYYYYBGGGGGGBGGXPX"
DATA "BGYBBYYBGGGGGGBGGGPX"
DATA "BGYBBYYBGGGGGGBGGGXX"
DATA "PBGGGBBGGGGGGGBBGGXX"
DATA "PPBBBBBBGGGGGGBBBGXX"
DATA "PPPPPPBGGGGGGGGBBGXX"
DATA "PPPPPPBGBGBBBGGBBGXX"
DATA "PPPPPBGGBBBPBBBBGGXX"
DATA "PPPPPBGBBBPPPPBBGGPP"
DATA "PPPPPBGBWWBPPPBBGGXP"
DATA "PPPPPBGBBBPPPBBBGGXP"
DATA "PPPPBGGBPPPPBWWBGGXX"
DATA "PPPPBGGBBBPPPBBBGGXP"
DATA "PPPPBGGBWWBPPPPBGXXP"
DATA "PPPPBGGBBBPPPBBBGXXP"
DATA "PPPBGGGBPPPPBWWBXXXP"
DATA "PPBBGGGBBBPPPBBBXXPX"
DATA "PBGGGGGBWWBPPPPBXXPX"
DATA "BGBBGGGBBBPPPBBBXXPX"
DATA "BGBBBGGBPPPPBWWBXXPX"
DATA "PBGGGGBBPPPPPBBXXPPX"