Files
basic-computer-games/00_Alternate_Languages/42_Gunner/MiniScript/gunner.ms

79 lines
2.2 KiB
Plaintext

print " "*30 + "Gunner"
print " "*15 + "Creative Computing Morristown, New Jersey"
print; print; print
print "You are the officer-in-charge, giving orders to a gun"
print "crew, telling them the degrees of elevation you estimate"
print "will place a projectile on target. A hit within 100 yards"
print "of the target will destroy it."; print
// Select a target and give the player up to 5 tries to hit it.
// Return the number of shots taken, or set globals.gameOver to true.
playOneTarget = function(maxRange)
globals.gameOver = false
targetDist = floor(maxRange * (.1 + .8 * rnd))
shot = 0
print "Distance to the target is " + targetDist + " yards."
print
while true
print
degrees = input("Elevation? ").val
if degrees > 89 then
print "Maximum elevation is 89 degrees."
continue
else if degrees < 1 then
print "Minimum elevation is one degree."
continue
end if
shot += 1
if shot >= 6 then
globals.gameOver = true
return
end if
radiansX2 = 2 * degrees * pi/180
throw = maxRange * sin(radiansX2)
diff = floor(targetDist - throw)
if abs(diff) < 100 then
print "*** TARGET DESTROYED *** " + shot + " rounds of ammunition expended."
return shot
end if
if diff > 0 then
print "Short of target by " + diff + " yards."
else
print "Over target by " + abs(diff) + " yards."
end if
end while
end function
playOneGame = function
maxRange = floor(40000*rnd + 20000)
print "Maximum range of your gun is " + maxRange + " yards."
shots = 0
for targetNum in range(1,4)
shots += playOneTarget(maxRange)
if gameOver then break
if targetNum < 4 then
print
print "The forward observer has sighted more enemy activity..."
end if
end for
if gameOver then
print; print "Boom !!!! You have just been destroyed"
print "by the enemy."; print; print; print
else
print; print; print "Total rounds expended were: " + shots
end if
if shots > 18 or gameOver then
print "Better go back to font sill for refresher training!"
else
print "Nice shooting !!"
end if
end function
// Main loop
while true
playOneGame
print; yn = input("Try again (Y or N)? ").upper
if not yn or yn[0] != "Y" then break
end while
print; print "OK. Return to base camp."