setscreen ("graphics:v16,nocursor,noecho")
var reply : string (1)
var direction : string
var x1 : int := 0
var y1 : int := 0
var moves : int := 200
var ammo : int := 50
var change : int:= 0
%%%%%%%%%%%%*****************************************************************************
%<<HUNTER>>%*****************************************************************************
%%%%%%%%%%%%*****************************************************************************
procedure hunter
var x, y, x1, y1 : int
x := 20
y := 20
x1 := 20
y1 := 20
var change : int := 5
drawfilloval (x, y, 10, 10, 1)
var reply : string (1)
var direction : string
%%%%%%%%%%%%%%%%%%%%
%CHARACTER MOVEMENT%
%%%%%%%%%%%%%%%%%%%%
loop
getch (reply)
if reply = chr (200) then %up arrow
y := y + 10
y1 := y1 + 10
moves := moves - 1
delay (5)
cls
drawfilloval (x, y, 10, 10, 1)
exit when moves = 0
color (4)
put "MOVES REMAINING :", moves
put " AMMO :", ammo
elsif reply = chr (208) then %down arrow
y := y - 10
y1 := y1 - 10
moves := moves - 1
delay (5)
cls
drawfilloval (x, y, 10, 10, 1)
drawfilloval (200,300,6,6,14)
exit when moves = 0
put "MOVES REMAINING :", moves
put " AMMO :", ammo
elsif reply = chr (203) then %left arrow
x := x - 10
x1 := x - 10
moves := moves - 1
delay (5)
cls
drawfilloval (x, y, 10, 10, 1) %right arrow
exit when moves = 0
put "MOVES REMAINING :", moves
put " AMMO :", ammo
elsif reply = chr (205) then
x := x + 10
x1 := x1 + 10
moves := moves - 1
delay (5)
cls
drawfilloval (x, y, 10, 10, 1)
exit when moves = 0
put "MOVES REMAINING :", moves
drawfilloval (300, 200, 7, 7, 14)
put " AMMO :", ammo
%%%%%%%%%%
%SHOOTING%
%%%%%%%%%%
elsif reply = chr (117) then %SHOOTING UP (u)
for count : 1 .. 30
drawfilloval (x1, y1 + change, 2, 2, 12)
change := change + 5
end for
ammo := ammo - 1
delay (100)
change := 0
exit when ammo = 0
put " AMMO :", ammo
elsif reply = chr (106) then %SHOOTING DOWN (j)
for count : 1 .. 30
drawfilloval (x1, y1 + change, 2, 2, 12)
change := change - 5
end for
ammo := ammo - 1
delay (100)
change := 0
exit when ammo = 0
put " AMMO :", ammo
elsif reply = chr (107) then %SHOOTING RIGHT (k)
for count : 1 .. 30
drawfilloval (x1 + change, y1, 2, 2, 12)
change := change + 5
end for
ammo := ammo - 1
delay (100)
change := 0
exit when ammo = 0
put " AMMO :", ammo
elsif reply = chr (104) then %SHOOTING LEFT (h)
for count : 1 .. 30
drawfilloval (x1 + change, y1, 2, 2, 12)
change := change - 5
end for
ammo := ammo - 1
delay (100)
change := 0
delay (100)
change := 0
exit when ammo = 0
put " AMMO :", ammo
end if
end loop
end hunter
%%%%%%%%%%%%%%%%%%%%
procedure hit (x1, y1 : int)
if whatdotcolor (x1+5, y1 ) = 14 then
locate (20, 25)
put "HIT"
end if
end hit
%%%%%%%%%%%%%%%%%%%%*****************************************************************
%<<OPENING SCREEN>>%***************************************************************** *
%%%%%%%%%%%%%%%%%%%%*****************************************************************
var openingChange : int := 0
procedure openingScreen
color (4)
loop
put "" %program comments
put "Version 1.0"
put "December 7, 2004"
put "Zack Melnyk"
locate (28, 25)
put "Hit any key to continue"
drawfillbox (380, 210, 410, 180, 6) %HOBO HEAD
drawline (380, 210, 378, 219, 8) %HOBO HAIR LEFT
drawline (381, 210, 380, 223, 8)
drawline (382, 210, 382, 225, 8)
drawline (384, 210, 383, 225, 8)
drawline (385, 210, 385, 223, 8)
drawline (386, 210, 387, 219, 8)
drawline (410, 210, 412, 219, 8) %HOBO HAIR RIGHT
drawline (409, 210, 410, 223, 8)
drawline (408, 210, 408, 225, 8)
drawline (406, 210, 407, 223, 8)
drawline (405, 210, 405, 219, 8)
drawline (404, 210, 403, 219, 8)
drawfilloval (385, 200, 2, 2, 9) %HOBO EYE LEFT
drawfilloval (405, 200, 2, 2, 9) %HOBO EYE RIGHT
drawfillbox (375, 180, 415, 125, 5) %HOBO TORSO
drawline (382, 170, 382, 125, 13) %HOBO ARMS
drawline (409, 170, 409, 125, 13)
drawfillbox (375, 125, 415, 140, 7) %HOBOLEGS
drawbox (375, 125, 415, 140, 15)
drawoval (0 + openingChange, 200, 60, 60, 4) %CROSS HAIRS
drawline (0 + openingChange, 140, 0 + openingChange, 260, 4)
drawline (60 + openingChange, 200, - 60 + openingChange, 200, 4)
drawoval (0 + openingChange, 200, 20, 20, 4)
drawoval (0 + openingChange, 200, 62, 62, 4)
delay (55)
cls
openingChange := openingChange + 3
exit when openingChange >= 400
end loop
put ""
put "Version 1.0" %program comments
put "December 7, 2004"
put "Zack Melnyk"
locate (30, 25)
put "Hit any key to continue"
%%%%%%%%%%%
%DEAD HOBO%
%%%%%%%%%%%
drawfillbox (380, 210, 410, 180, 6) %HOBO HEAD
drawline (380, 210, 378, 219, 8) %HOBO HAIR LEFT
drawline (381, 210, 380, 223, 8)
drawline (382, 210, 382, 225, 8)
drawline (384, 210, 383, 225, 8)
drawline (385, 210, 385, 223, 8)
drawline (386, 210, 387, 219, 8)
drawline (410, 210, 412, 219, 8) %HOBO HAIR RIGHT
drawline (409, 210, 410, 223, 8)
drawline (408, 210, 408, 225, 8)
drawline (406, 210, 407, 223, 8)
drawline (405, 210, 405, 219, 8)
drawline (404, 210, 403, 219, 8)
drawfilloval (385, 200, 2, 2, 9) %HOBO EYE LEFT
drawfilloval (405, 200, 2, 2, 9) %HOBO EYE RIGHT
drawfillbox (375, 180, 415, 125, 5) %HOBO TORSO
drawline (382, 170, 382, 125, 13) %HOBO ARMS
drawline (409, 170, 409, 125, 13)
drawfillbox (375, 125, 415, 140, 7) %HOBOLEGS
drawbox (375, 125, 415, 140, 15)
drawoval (400, 200, 60, 60, 4) %cross hairs
drawline (400, 140, 400, 260, 4)
drawline (460, 200, 340, 200, 4)
drawoval (400, 200, 20, 20, 4)
drawoval (400, 200, 62, 62, 4)
delay (3000)
end openingScreen
%%%%%%%%%%%%%%%%%%***************************************************************************
%<<INSTRUCTIONS>>%***************************************************************************
%%%%%%%%%%%%%%%%%%***************************************************************************
procedure instructions
color (4)
locate (1, maxcol div 2 - 8)
put "*****MISSION BRIEFING*****"
put " "
put "The Hobos are taking over the town and we need you deal with them"
put "I expect that you will be able to strike them down on sight"
put "you have been armed with an T12 Tranquilizing dart gun. We"
put "have not got much time so get out there and stop them before"
put "It is to late!"
put " "
put " "
put "Shoot hobos to earn points. Each Hobo will earn you 10"
put "Move the Hunter around by pressing the arrow keys in"
put "direction you wish to move."
put "To shoot your tranquilizer you must press the corresponding button:"
put "To shoot UP press 'u'"
put "To shoot DOWN press 'j'"
put "to shoot LEFT press 'h'"
put "to shoot RIGHT press 'k'"
end instructions
%%%%%%%%%%%%%
%LOSE SCREEN%
%%%%%%%%%%%%%
procedure lose
cls
color (4)
put "YOU LOSE!!!"
end lose
%%%%%%%%%%%%%%%%%%******************************************************************************
%<<MAIN PROGRAM>>%******************************************************************************
%%%%%%%%%%%%%%%%%%******************************************************************************
%openingScreen
%getch (reply)
%cls
%instructions
hit (x1+change, y1)
hunter
lose
|