setscreen ("offscreenonly")
 
var x, y, button : int
 
var plx, ply, plhealth, explx, exply, expls : int
 
var bulx, buly, speed : array 1 .. 10 of int
 
var explosion : boolean := false
 
plhealth := 600
 
bulx (1) := 0
 
buly (1) := 100
 
bulx (2) := 0
 
buly (2) := 200
 
bulx (3) := 0
 
buly (3) := 300
 
bulx (4) := 0
 
buly (4) := 400
 
bulx (5) := 0
 
buly (5) := 500
 
bulx (6) := 100
 
buly (6) := 0
 
bulx (7) := 250
 
buly (7) := 0
 
bulx (8) := 300
 
buly (8) := 0
 
bulx (9) := 400
 
buly (9) := 0
 
bulx (10) := 500
 
buly (10) := 0
 
speed (1) := 3
 
speed (2) := 4
 
speed (3) := 5
 
speed (4) := 6
 
speed (5) := 7
 
speed (6) := 4
 
speed (7) := 5
 
speed (8) := 6
 
speed (9) := 7
 
speed (10) := 4
 
expls := 1
 
 
loop
 
    if bulx (1) > maxx then
 
        bulx (1) := -50
 
        randint (buly (1), 20, maxy - 20)
 
        randint (speed (1), 3, 7)
 
    end if
 
    if bulx (2) > maxx then
 
        bulx (2) := -50
 
        randint (buly (2), 20, maxy - 20)
 
        randint (speed (2), 3, 7)
 
    end if
 
    if bulx (3) > maxx then
 
        bulx (3) := -50
 
        randint (buly (3), 20, maxy - 20)
 
        randint (speed (3), 3, 7)
 
    end if
 
    if bulx (4) > maxx then
 
        bulx (4) := -50
 
        randint (buly (4), 20, maxy - 20)
 
        randint (speed (4), 3, 7)
 
    end if
 
    if bulx (5) > maxx then
 
        bulx (5) := -50
 
        randint (buly (5), 20, maxy - 20)
 
        randint (speed (5), 3, 7)
 
    end if
 
    if buly (6) > maxy then
 
        buly (6) := -50
 
        randint (bulx (6), 20, maxx - 20)
 
        randint (speed (6), 3, 7)
 
    end if
 
    if buly (7) > maxy then
 
        buly (7) := -50
 
        randint (bulx (7), 20, maxx - 20)
 
        randint (speed (7), 3, 7)
 
    end if
 
    if buly (8) > maxy then
 
        buly (8) := -50
 
        randint (bulx (8), 20, maxx - 20)
 
        randint (speed (8), 3, 7)
 
    end if
 
    if buly (9) > maxy then
 
        buly (9) := -50
 
        randint (bulx (9), 20, maxx - 20)
 
        randint (speed (9), 3, 7)
 
    end if
 
    if buly (10) > maxy then
 
        buly (10) := -50
 
        randint (bulx (10), 20, maxx - 20)
 
        randint (speed (10), 3, 7)
 
    end if
 
 
 
    mousewhere (x, y, button)
 
    View.Update
 
    delay (20)
 
    cls
 
    drawfillbox (10, 10, plhealth, 17, 12)
 
    drawfilloval (x, y, 10, 10, black)
 
    drawline (bulx (1), buly (1), bulx (1) - 20, buly (1), 7)
 
    drawline (bulx (2), buly (2), bulx (2) - 20, buly (2), 7)
 
    drawline (bulx (3), buly (3), bulx (3) - 20, buly (3), 7)
 
    drawline (bulx (4), buly (4), bulx (4) - 20, buly (4), 7)
 
    drawline (bulx (5), buly (5), bulx (5) - 20, buly (5), 7)
 
    drawline (bulx (6), buly (6), bulx (6), buly (6) - 20, 7)
 
    drawline (bulx (7), buly (7), bulx (7), buly (7) - 20, 7)
 
    drawline (bulx (8), buly (8), bulx (8), buly (8) - 20, 7)
 
    drawline (bulx (9), buly (9), bulx (9), buly (9) - 20, 7)
 
    drawline (bulx (10), buly (10), bulx (10), buly (10) - 20, 7)
 
 
    bulx (1) += speed (1)
 
    bulx (2) += speed (2)
 
    bulx (3) += speed (3)
 
    bulx (4) += speed (4)
 
    bulx (5) += speed (5)
 
    buly (6) += speed (6)
 
    buly (7) += speed (7)
 
    buly (8) += speed (8)
 
    buly (9) += speed (9)
 
    buly (10) += speed (10)
 
    if x > bulx (1) - 30 and x < bulx (1) + 10 and y > buly (1) - 10 and y < buly (1) + 10 then
 
        explosion := true
 
        plhealth -= 10
 
    end if
 
    if x > bulx (2) - 30 and x < bulx (2) + 10 and y > buly (2) - 10 and y < buly (2) + 10 then
 
        explosion := true
 
        plhealth -= 10
 
    end if
 
    if x > bulx (3) - 30 and x < bulx (3) + 10 and y > buly (3) - 10 and y < buly (3) + 10 then
 
        explosion := true
 
        plhealth -= 10
 
    end if
 
    if x > bulx (4) - 30 and x < bulx (4) + 10 and y > buly (4) - 10 and y < buly (4) + 10 then
 
        explosion := true
 
        plhealth -= 10
 
    end if
 
    if x > bulx (5) - 30 and x < bulx (5) + 10 and y > buly (5) - 10 and y < buly (5) + 10 then
 
        explosion := true
 
        plhealth -= 10
 
    end if
 
 
    if explosion = true then
 
        explx := x - 7
 
        exply := y
 
        drawfilloval (explx, exply, expls, expls, yellow)
 
        expls += 1
 
    end if
 
    if expls >= 13 then
 
        explosion := false
 
        expls := 1
 
    end if
 
    if plhealth <= 0 then
 
        quit
 
    end if
 
end loop
 
  |