sync on : hide mouse
 
set text font "Courier New"
set text size 24
 
dim grid(80,30) as string
 
for y = 0 to 30
    for x = 0 to 80
        read grid(x,y)
    next x
next y
 
global start
 
start = timer()
 
do
 
    inc timeout
    if timeout > 10 then timeout = 0
 
    if dead = 0
        xmo = (rightkey()-leftkey())*4
        if spacekey() and ground
            ymo# = -6
        endif
    endif
    ground = 0
    inc ymo#,0.1
 
    if xmo
        if timeout = 0
            if frame <> 0
                frame = 0
            else
                frame = 1
            endif
        endif
    endif
 
    if ymo# > 1
        frame = 2
    endif
 
    if ymo# < -1
        if xmo > 0
            frame = 3
        else
            if xmo < 0
                frame = 4
            else
                frame = 5
            endif
        endif
    endif
 
    if xpos#+xmo < 0
        xpos# = 0
        xmo = 0
    endif
 
    if xpos#+xmo > 959
        xpos# = 959
        xmo = 0
    endif
 
    if ypos#+ymo# < 0
        ypos# = 0
        ymo# = abs(ymo#)
    endif
 
    if ypos#+ymo# > 800
        ypos# = 0
        ymo# = 0
    endif
 
    s = sign(ymo#)
    xp = r(xpos#+xmo,12)
    yp = r(ypos#+ymo#+88,24)
    t = 0
    if grid(xp,yp) = "^"
        dead = 1
    endif
    if grid(xp,yp) = "["
        grid(xp,yp) = ""
        grid(xp+1,yp) = "_"
        grid(xp+2,yp) = ""
        win = 1
    endif
    if grid(xp,yp) = "T"
        grid(xp-1,yp) = ""
        grid(xp,yp) = "_"
        grid(xp+1,yp) = ""
        win = 1
    endif
    if grid(xp,yp) = "]"
        grid(xp-2,yp) = ""
        grid(xp-1,yp) = "_"
        grid(xp,yp) = ""
        win = 1
    endif
    if dead
        frame = 6
    endif
    if win
        frame = 7
        inc won
    endif
    while grid(xp,yp) <> ""
        t = 1
        dec xpos#,xmo
        dec ypos#,ymo#
        xmo = 0
        xp = r(xpos#+xmo,12)
        yp = r(ypos#+ymo#+88,24)
    endwhile
    if t
        if s = 1
            ymo# = 0
            ground = 1
        else
            ymo# = abs(ymo#)
        endif
    endif
 
    inc xpos#,xmo
    inc ypos#,ymo#
 
    render_player(xpos#,ypos#,frame)
    render_world()
 
    sync
 
    time()
 
    if won > 100
        dead = 1
    endif
 
    cls 0
 
loop
 
function time()
 
    while timer() < start+8
    endwhile
    start = timer()
 
endfunction
 
function render_world()
 
    for y = 0 to 30
        for x = 0 to 80
            if grid(x,y) <> ""
                text x*12,y*24,grid(x,y)
            endif
        next x
    next y
 
endfunction
 
function sign(v#)
 
    v = v#/abs(v#)
 
endfunction v
 
function render_player(xpos#,ypos#,frame)
 
    if frame = 0
        center text xpos#,ypos#,"O"
        center text xpos#,ypos#+24,"/|\"
        center text xpos#,ypos#+48,"/\"
        center text xpos#,ypos#+72,"/ \"
    endif
    if frame = 1
        center text xpos#,ypos#,"O"
        center text xpos#,ypos#+24,"/|\"
        center text xpos#,ypos#+48,"|"
        center text xpos#,ypos#+72,"|"
    endif
    if frame = 2
        center text xpos#,ypos#,"\O/"
        center text xpos#,ypos#+24,"|"
        center text xpos#,ypos#+48,"/\"
        center text xpos#,ypos#+72,"/ \"
    endif
    if frame = 3
        center text xpos#,ypos#,"O"
        center text xpos#,ypos#+24,"/|\"
        center text xpos#,ypos#+48,"/\"
        center text xpos#,ypos#+72,"/ /"
    endif
    if frame = 4
        center text xpos#,ypos#,"O"
        center text xpos#,ypos#+24,"/|\"
        center text xpos#,ypos#+48,"/\"
        center text xpos#,ypos#+72,"\ \"
    endif
    if frame = 5
        center text xpos#,ypos#,"O"
        center text xpos#,ypos#+24,"/|\"
        center text xpos#,ypos#+48,"/\"
        center text xpos#,ypos#+72,"\ /"
    endif
    if frame = 6
        center text xpos#,ypos#-24,"   _______ "
        center text xpos#,ypos#,   "  / OWWW! \"
        center text xpos#,ypos#+24,"  \____  _/"
        center text xpos#,ypos#+48,"       \/  "
        center text xpos#,ypos#+72,"  ¦>-->O   "
    endif
    if frame = 7
        center text xpos#,ypos#-96," _______   "
        center text xpos#,ypos#-72,"/  YAY! \  "
        center text xpos#,ypos#-48,"\____  _/  "
        center text xpos#,ypos#-24,"     \/    "
        center text xpos#,ypos#,   "    \O/    "
        center text xpos#,ypos#+24,"     |     "
        center text xpos#,ypos#+48,"    /\    "
        center text xpos#,ypos#+72,"    / \    "
    endif
 
endfunction
 
function r(v#,a)
 
    v = int(v#/a)
 
endfunction v
 
data  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""
data  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""
data  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""
data  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""
data  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""
data  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""
data  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""
data  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""
data  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""
data  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""
data  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""
data  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""
data  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""
data  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""
data  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""
data  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""
data  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""
data  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""
data  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""
data  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""
data  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "","[","T","]", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""
data  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "","#","#","#","#","#","#","#", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""
data  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""
data  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""
data  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""
data  "", "", "", "", "", "","#","#","#","#","#","#","#", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""
data  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""
data  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""
data  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""
data  "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""
data "#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","^","^","^","^","^","^","^","^","^","^","^","^","^","^","^","^","^","^","^","^","^","^","^","^","^","^","^","^","^","^","^","^","^","^","^","^","^","^","^","^","^","^","^","^","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#"