this is the first thing that came to mind: (which evadently is usally a bad thing)

FB:

? "RULES:"

? "press the space bar when you are over a gap."

? "to exit, press Esc key"

dim cb(1000)

sleep 5000

screen 13,,,1:randomize timer

line (0,0)-(319,199),2,b

for y = 0 to 197 step 2

line (0,y)-(319,y),2

x = int((314-4+1)*rnd+4)

if y > 0 then line (x-2,y)-(x+4,y),0

next

for y = 197 to 198

for x = 1 to 318 step 2

if x = 1 and y = 198 then x = x +1

pset (x,y),15

next

next

get (1,197)-(318,198),cb

x = 1:y = 1

windowtitle "I rule!"

dc = 15

do

setmouse 0,0,0

if y = 197 or y = 198 then locate 8,16:print "YOU WIN!" :SLEEP :END

ox = x

if a = 0 then x = x + 1:if x = 319 then a = 1

if a = 1 then x = x - 1:if x = 1 then a = 0

for dlay = 0 to 10000000:next

pset (ox,y),bgd:pset (x,y),dc

press$ = inkey$

if press$ = chr$(27) then end

if press$ = " " then

if point (x,y+1) = bgd then pset (x,y),bgd:y = y +2 :goto 1

if point (x,y+1) <> bgd then

cc = point (0,0)

select case cc

case 2

for cy = 0 to 199

for cx = 0 to 319

if point (cx,cy) = 2 then pset (cx,cy),44

if point (cx,cy) = 0 then pset (cx,cy),15:dc = 0:bgd = 15

next

next

put (1,197),cb,pset

case 44

for cy = 0 to 199

for cx = 0 to 319

if point (cx,cy) = 44 then pset (cx,cy),4:dc = 15:bgd = 0

if point (cx,cy) = 15 then pset (cx,cy),0:

next

next

put (1,197),cb,pset

case 4

locate 8,16:? "YOU LOSE!":SLEEP :end

end select

end if

end if

1

loop

edit: update

edit: i'm really obsessive as it turns out.