[Site Home] [Forum Home] [Articles] [File DB] [News Archives]

Programming -> So Far So good


(View original topic)


Shmack - Jun-19-2005 server time
CODE

setscreen ("graphics:500;300,nocursor")

type MonsterStats :
   record
       race : string
       strength, agility, vitality, wizardry : int
   end record

function selectMonster : MonsterStats
   var choice : int
   var newMon : MonsterStats

   loop
       drawline (20, 20, 220, 20, 1)
       drawline (20, 200, 20, 20, 1)
       drawline (20, 200, 220, 200, 1)
       drawline (220, 200, 220, 20, 1)
       drawline (20, 170, 220, 170, 1)
       locate (10, 4)
       put "Pick a monster to Attck." ..
       locate (12, 4)
       put "1-Rat      [Lv 1]" ..
       locate (14, 4)
       put "2-Bat      [lv 2]" ..
       locate (16, 4)
       put "3-Spider   [Lv 4]" ..
       locate (18, 4)
       put "4-Skeleton [Lv 5]" ..

       get choice

       case choice of
           label 1 :
               newMon.race := "Rat"
               newMon.strength := 5
               newMon.agility := 1
               newMon.vitality := 5
               newMon.wizardry := 1
               exit
           label 2 :
               newMon.race := "Bat"
               newMon.strength := 8
               newMon.agility := 1
               newMon.vitality := 7
               newMon.wizardry := 1
               exit
           label 3 :
               newMon.race := "Spider"
               newMon.strength := 10
               newMon.agility := 2
               newMon.vitality := 10
               newMon.wizardry := 1
               exit
           label 4 :
               newMon.race := "Skeleton"
               newMon.strength := 15
               newMon.agility := 3
               newMon.vitality := 10
               newMon.wizardry := 1
               exit
           label :
               put "That input is invalid."
       end case
   end loop

   result newMon
end selectMonster

function name : string
   var charName : string
   drawline (180, 160, 330, 160, 1)
   drawline (180, 120, 330, 120, 1)
   drawline (180, 160, 180, 120, 1)
   drawline (330, 120, 330, 160, 1)
   locate (13, 25)
   put "Enter your name." ..
   locate (14, 25)
   get charName : *
   result charName
end name
var charName : string
type PlayerStats :
   record
       race : string
       strength, agility, vitality, wizardry : int
   end record

function selectRace : PlayerStats
   var choice : int
   var newChar : PlayerStats
   loop
       cls
       %border around chars
       drawline (370, 270, 230, 270, 1)
       drawline (230, 240, 230, 270, 1)
       drawline (370, 240, 370, 270, 1)
       drawline (130, 240, 130, 100, 1)
       drawline (490, 100, 130, 100, 1)
       drawline (490, 240, 490, 100, 1)
       drawline (490, 240, 130, 240, 1)
       locate (4, 30)
       %Chars
       put "pick your race." ..
       locate (8, 20)
       put "1-Human (Str:15 Agi15 Vit:15 Wiz:15)"
       locate (10, 20)
       put "1-Night Elf (Str:15 Agi:20 Vit:10 Wiz:15)"
       locate (12, 20)
       put "1-Orc (Str:20 Agi:10 Vit:20 Wiz:10)"
       locate (14, 20)
       put "1-Undead (Str:10 Agi:10 Vit:20 Wiz:20)"
       locate (4, 30)
       get choice
       %Choices of chars with status
       case choice of
           label 1 :
               newChar.race := "Human"
               newChar.strength := 15
               newChar.agility := 15
               newChar.vitality := 15
               newChar.wizardry := 15
               exit
           label 2 :
               newChar.race := "Night Elf"
               newChar.strength := 15
               newChar.agility := 20
               newChar.vitality := 10
               newChar.wizardry := 15
               exit
           label 3 :
               newChar.race := "Orc"
               newChar.strength := 20
               newChar.agility := 10
               newChar.vitality := 20
               newChar.wizardry := 10
               exit
           label 4 :
               newChar.race := "Undead"
               newChar.strength := 10
               newChar.agility := 10
               newChar.vitality := 20
               newChar.wizardry := 20
               exit

           label :
               put "Please Select a Number from 1-4."

       end case
   end loop
   result newChar
end selectRace

procedure myStats (myCharacter : PlayerStats, charName : string)
   cls
   %draw stats box
   drawline (320, 260, 320, 100, 1)
   drawline (410, 260, 410, 100, 1)
   drawline (320, 100, 410, 100, 1)
   drawline (420, 260, 320, 260, 1)
   drawline (410, 230, 320, 230, 1)
   drawline (410, 195, 320, 195, 1)
   drawline (410, 160, 320, 160, 1)
   drawline (410, 130, 320, 130, 1)
   drawline (370, 230, 370, 100, 1)
   %Display stats in box
   locate (5, 42)
   put myCharacter.race ..
   locate (8, 48)
   put myCharacter.strength ..
   locate (11, 48)
   put myCharacter.agility ..
   locate (14, 48)
   put myCharacter.vitality ..
   locate (16, 48)
   put myCharacter.wizardry ..
   locate (8, 43)
   put "Str"
   locate (11, 43)
   put "Agi"
   locate (14, 43)
   put "Vit"
   locate (16, 43)
   put "Wiz"
   %stats bar
   drawline (10, 280, 400, 280, 1)
   drawline (10, 280, 10, 500, 1)
   drawline (400, 280, 400, 300, 1)
   locate (1, 3)
   put charName, "  ", myCharacter.race, " HP:", myCharacter.vitality * 1.5,
       " SP:", myCharacter.wizardry * 2.2, " EXP:", "100", " z", "100000" ..
end myStats


charName := name
var myCharacter := selectRace
myStats (myCharacter, charName)
var myMonster := selectMonster

(Showing 50 last posts, newest on top)