Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Modified Qbasic game THEWOODS.BAS by Kurt Kuzba
#2
Added to it with 2 more types of equipment to buy at the armory(with plenty of options), added their effects in game resolution and added a few more monster options. Save and Load game options as well.

Old simple games can still be fun.

Code: (Select All)
'=====================
'Further adventures in THEWOODS-MODIFIED.BAS
'=====================
'A modified version of THEWOODS.BAS by Kurt Kuzba that he
'placed in public domain and encouraged others to build on.
'It's a text adventure game in the classic BBS game style.
'Kurt posted it on the FibdoNet QUIK_BAS Echo back in 1997.
'You can find the original THEWOODS.BAS in the ABC packets.
'Kurt, thanks for the game - If you're still out there,
'Come back to the BASIC scene!  You'll love QB64!

'Modified by Dav for QB64-PE 3.8, SEP/2023
'further modifeid by James Jarvis SEP/2023  - added more equipment options and more monsters

Dim Shared q$: q$ = Chr$(34)
Dim Shared PlayerName$, PlayerHits&, PlayerMagic&, PlayerStrength&
Dim Shared PlayerGold&, PlayerWeapon%, PlayerExperience&, PlayerShield%, PlayerArmor%
Dim Shared EnemyName$, EnemyHits&, EnemyMagic&, EnemyStrength&
Dim Shared EnemyGold&, EnemyWeapon%, EnemyExperience&
Dim Shared sprice%(16), aprice%(16), wprice%(16)

Randomize Timer

dh = Int(_DesktopHeight * .80)
Screen _NewImage(dh * 1.25, dh, 32)
BIGFONT Int(_Height / 21)
Width 52, 21
For n = 1 To 12
    wprice%(n) = (n + (n - 2) / 2) * 60
    sprice%(n) = n * 50
    aprice%(n) = n * n * 50
    If n > 9 Then
        wprice%(n) = wprice%(n) * (n / 3)
        sprice%(n) = sprice%(n) * 2
        aprice%(n) = aprice%(n) * 3
    End If
Next n

'======
Restart:
'======

Cls , _RGB(32, 32, 128) 'background color

Color _RGB(255, 255, 255), _RGB(32, 32, 128) 'Standard Text color

Color _RGB(255, 255, 0)
Print
Print "            -= Welcome to THE WOODS =-"
Print
Color _RGB(255, 255, 255)

Print "  Terrible beasts are roaming the nearby woods."
Print "  People in town live in constant fear of what "
Print "  lurks beyond the town gate.  Those who decide"
Print "  to venture out seldom return.  Something must"
Print "  be done.  Someone must save the town."
Print
Print "  You have decided to be the brave hero and to"
Print "  eliminate the evil inhabiting the woods.  It"
Print "  will NOT be easy however.  You will face many"
Print "  malevolent forces, many dark and evil beasts."
Print
Print "  Go into the woods, hunt down the beasts until"
Print "  you reach 2,000 experience points to win."
Print
Color _RGB(255, 255, 0)
Print " Load a Saved quest? (YN)? ";
If WaitKey%(" YN") = 2 Then
    Print
    Input "  Your name? ", plyr$
    loadgame plyr$
Else
    Print
    Input "  Your name? ", plyr$

    If plyr$ > "" Then

        PlayerName$ = plyr$
        PlayerHits& = 30
        PlayerMagic& = 0
        PlayerStrength& = 0
        PlayerGold& = 100
        PlayerWeapon% = 0
        PlayerExperience& = 0
    End If
End If
menu% = 1 'show full menu

YourStats 'Show you stats at the beginning of the game

'the main game play loop

Do
    _Limit 60
    If PlayerHits& > 0 Then
        Print
        If menu% > 0 Then
            Color _RGB(255, 255, 255)
            Print " You're in the middle of town.  What now?"
            Print
            Print " (W)oods  - Enter the woods."
            Print " (H)ealer - Heal your wounds."
            Print " (A)rmory - Buy/Sell equipment."
            Print " (S)tats  - See your stats."
            Print " (Q)uit  - Quit game."
        End If
        Print
        Print " [W/H/A/S/Q/?]";

        Select Case WaitKey%(" WHASQ?")
            Case 2: Woods
            Case 3: Healer
            Case 4: Armory
            Case 5: YourStats
            Case 6: Print: Print
                Print " Quit this quest? (YN)? ";
                If WaitKey%(" YN") = 2 Then
                    Print
                    Print " Save The Game? (YN)? ";
                    If WaitKey%(" YN") = 2 Then
                        savegame
                    End If
                    Exit Do
                End If
            Case 7: Print: menu% = 1
        End Select
    Else
        Color _RGB(255, 200, 200)
        If PlayerExperience& < 2000 Then
            Print
            Print " Sorry... You have perished in battle."
            For t% = 200 To 150 Step -1: Sound t%, .1: Next
        Else
            Print
            Print " You have defeated all enemies! You WIN!!"
            For t% = 100 To 999 Step 10: Sound t%, .03: Next
            For t% = 1000 To 500 Step -10: Sound t%, .03: Next
        End If
        Print " You had"; PlayerExperience&; "points."
        Exit Do
    End If
Loop

Color _RGB(255, 255, 0)
Print: Print " Would you like to play again (YN)? ";

If WaitKey%(" YN") = 2 Then GoTo Restart


Print: Print " Goodbye, then..."
Sleep 2
System


Sub Armory
    Dim price(1 To 8) As Integer
    price(1) = 75
    price(2) = 200
    price(3) = 400
    price(4) = 600
    price(5) = 900
    price(6) = 1500
    price(7) = 2500
    price(8) = 4000
    Do
        Cls
        Print
        Print "---------------------------------------------------"
        Print "          -==**[ Jake's Weapon Shop ]**==-        "
        Print "---------------------------------------------------"
        Print
        Print " Welcome to Jake's.  We only sell the finest."
        Print " Jake looks you over suspiciously and asks..."
        Print " Interested in (W)eapons, (S)hields, or (A)rmor?"
        Print
        Print " [W/S/A or ENTER to leave] "
        Print
        Select Case WaitKey%(" WSA" + Chr$(13))
            Case 2 'weapons
                Print
                Print "Ah yes, Weapons..."
                Print "  "
                Print "  Do you want to (B)uy or (S)ell?"
                Print
                Print " [B/S or ENTER to leave] "
                Print
                Select Case WaitKey%(" SB" + Chr$(13))
                    Case 2 'selling weapons
                        money% = PlayerWeapon% * 30
                        If money% = 0 Then
                            Color _RGB(255, 255, 0)
                            Print
                            Print "---------------------------------------------------"
                            Print " Sell what? You're not carrying anything!"
                            Print " Come back when you have something valuable."
                            Print "---------------------------------------------------"
                            Color _RGB(255, 255, 255)
                            Exit Sub
                        Else
                            Color _RGB(255, 255, 0)
                            Print
                            Print "---------------------------------------------------"
                            Print " Hmm...I'll give you"; money%; "gold for ";
                            Print RTrim$(Weapon$(PlayerWeapon%)); "."
                            Print " Is it a deal (Y/N)? ";
                            Print "---------------------------------------------------"
                            Print
                            Color _RGB(255, 255, 255)

                            k% = WaitKey%(" YN")

                            Print
                            If k% = 2 Then
                                Color _RGB(255, 255, 0)
                                Print
                                Print "---------------------------------------------------"
                                Print " Great!  Here's your money.  Now go away."
                                Print "---------------------------------------------------"
                                Color _RGB(255, 255, 255)
                                PlayerGold& = PlayerGold& + money%
                                PlayerWeapon% = 0
                                Exit Sub
                            End If

                        End If

                    Case 3 'buying weapons
                        Print "--------------==**[  PRICES  ]**==-----------------"
                        Print
                        For t% = 1 To 12: Print Hex$(t%); "->";
                            Print " "; Left$(Str$(wprice%(t%)) + "    ", 6);
                            Print " "; Weapon$(t%)
                        Next
                        Print
                        Print " You have"; PlayerGold&; "gold.  Which one you want (1-C)?"
                        Print " (Hit ENTER to buy nothing)"

                        k% = WaitKey%(" 123456789AB" + Chr$(13))

                        k% = k% - 1
                        If k% < 13 Then
                            money% = wprice%(k%)
                            If money% > PlayerGold& Then
                                Color _RGB(255, 255, 0)
                                Print
                                Print "---------------------------------------------------"
                                Print " You can't afford "; RTrim$(Weapon$(k%)); "."
                                Print " Come back when you have more gold."
                                Print "---------------------------------------------------"
                                Color _RGB(255, 255, 255)

                                Exit Sub
                            Else
                                Color _RGB(255, 255, 0)
                                Print
                                Print "---------------------------------------------------"
                                Print " Sold! Good luck with "; RTrim$(Weapon$(k%)); "."
                                Print " Close the door on your way out."
                                Print "---------------------------------------------------"
                                Color _RGB(255, 255, 255)

                                PlayerGold& = PlayerGold& - money%
                                PlayerWeapon% = k%
                                Exit Sub
                            End If
                        End If

                    Case 4, 5:
                        Color _RGB(255, 255, 0)
                        Print
                        Print "---------------------------------------------------"
                        Print " Ok, maybe next time, says Jake with a grumble."
                        Print "---------------------------------------------------"
                        Color _RGB(255, 255, 255)
                        Exit Sub
                End Select
            Case 3 'shields
                Print
                Print "Ah yes, Shields..."
                Print "  "
                Print "  Do you want to (B)uy or (S)ell?"
                Print
                Print " [B/S or ENTER to leave] "
                Print
                Select Case WaitKey%(" SB" + Chr$(13))
                    Case 2 'selling shields
                        money% = PlayerShield% * 30
                        If money% = 0 Then
                            Color _RGB(255, 255, 0)
                            Print
                            Print "---------------------------------------------------"
                            Print " Sell what? You're not carrying anything!"
                            Print " Come back when you have something valuable."
                            Print "---------------------------------------------------"
                            Color _RGB(255, 255, 255)
                            Exit Sub
                        Else
                            Color _RGB(255, 255, 0)
                            Print
                            Print "---------------------------------------------------"
                            Print " Hmm...I'll give you"; money%; "gold for ";
                            Print RTrim$(Shield$(PlayerShield%)); "."
                            Print " Is it a deal (Y/N)? ";
                            Print "---------------------------------------------------"
                            Print
                            Color _RGB(255, 255, 255)

                            k% = WaitKey%(" YN")

                            Print
                            If k% = 2 Then
                                Color _RGB(255, 255, 0)
                                Print
                                Print "---------------------------------------------------"
                                Print " Great!  Here's your money."
                                Print "---------------------------------------------------"
                                Color _RGB(255, 255, 255)
                                PlayerGold& = PlayerGold& + money%
                                PlayerShield% = 0
                                Exit Sub
                            End If

                        End If

                    Case 3 'buying shield
                        Print "--------------==**[  PRICES  ]**==-----------------"
                        Print
                        For t% = 1 To 12: Print Hex$(t%); "->";
                            Print " "; Left$(Str$(sprice%(t%)) + "    ", 6);
                            Print " "; Shield$(t%)
                        Next
                        Print
                        Print " You have"; PlayerGold&; "gold.  Which one you want (1-C)?"
                        Print " (Hit ENTER to buy nothing)"

                        k% = WaitKey%(" 123456789ABC" + Chr$(13))

                        k% = k% - 1
                        If k% < 13 Then
                            money% = sprice%(k%)
                            If money% > PlayerGold& Then
                                Color _RGB(255, 255, 0)
                                Print
                                Print "---------------------------------------------------"
                                Print " You can't afford "; RTrim$(Shield$(k%)); "."
                                Print " Come back when you have more gold."
                                Print "---------------------------------------------------"
                                Color _RGB(255, 255, 255)

                                Exit Sub
                            Else
                                Color _RGB(255, 255, 0)
                                Print
                                Print "---------------------------------------------------"
                                Print " Sold! Bear that "; RTrim$(Shield$(k%)); " well."
                                Print " Close the door on your way out."
                                Print "---------------------------------------------------"
                                Color _RGB(255, 255, 255)

                                PlayerGold& = PlayerGold& - money%
                                PlayerShield% = k%
                                Exit Sub
                            End If
                        End If

                    Case 4, 5:
                        Color _RGB(255, 255, 0)
                        Print
                        Print "---------------------------------------------------"
                        Print " Ok, maybe next time, says Jake with a grumble."
                        Print "---------------------------------------------------"
                        Color _RGB(255, 255, 255)
                        Exit Sub
                End Select
            Case 4 'armor
                Print
                Print "Ah yes, Armor..."
                Print "  "
                Print "  Do you want to (B)uy or (S)ell?"
                Print
                Print " [B/S or ENTER to leave] "
                Print
                Select Case WaitKey%(" SB" + Chr$(13))
                    Case 2 'selling armor
                        money% = PlayerArmor% * 30
                        If money% = 0 Then
                            Color _RGB(255, 255, 0)
                            Print
                            Print "---------------------------------------------------"
                            Print " Sell what? You're not carrying anything!"
                            Print " Come back when you have something valuable."
                            Print "---------------------------------------------------"
                            Color _RGB(255, 255, 255)
                            Exit Sub
                        Else
                            Color _RGB(255, 255, 0)
                            Print
                            Print "---------------------------------------------------"
                            Print " Hmm...I'll give you"; money%; "gold for ";
                            Print RTrim$(Armor$(PlayerArmor%)); "."
                            Print " Is it a deal (Y/N)? ";
                            Print "---------------------------------------------------"
                            Print
                            Color _RGB(255, 255, 255)

                            k% = WaitKey%(" YN")

                            Print
                            If k% = 2 Then
                                Color _RGB(255, 255, 0)
                                Print
                                Print "---------------------------------------------------"
                                Print " Great!  Here's your money."
                                Print "---------------------------------------------------"
                                Color _RGB(255, 255, 255)
                                PlayerGold& = PlayerGold& + money%
                                PlayerArmor% = 0
                                Exit Sub
                            End If

                        End If

                    Case 3 'buying armor
                        Print "--------------==**[  PRICES  ]**==-----------------"
                        Print
                        For t% = 1 To 12: Print Hex$(t%); "->";
                            Print " "; Left$(Str$(aprice%(t%)) + "    ", 6);
                            Print " "; Armor$(t%)
                        Next
                        Print
                        Print " You have"; PlayerGold&; "gold.  Which one you want (1-C)?"
                        Print " (Hit ENTER to buy nothing)"

                        k% = WaitKey%(" 123456789ABC" + Chr$(13))

                        k% = k% - 1
                        If k% < 13 Then
                            money% = aprice%(k%)
                            If money% > PlayerGold& Then
                                Color _RGB(255, 255, 0)
                                Print
                                Print "---------------------------------------------------"
                                Print " You can't afford "; RTrim$(Armor$(k%)); "."
                                Print " Come back when you have more gold."
                                Print "---------------------------------------------------"
                                Color _RGB(255, 255, 255)

                                Exit Sub
                            Else
                                Color _RGB(255, 255, 0)
                                Print
                                Print "---------------------------------------------------"
                                Print " Sold! Wear that "; RTrim$(Armor$(k%)); " well."
                                Print " Close the door on your way out."
                                Print "---------------------------------------------------"
                                Color _RGB(255, 255, 255)

                                PlayerGold& = PlayerGold& - money%
                                PlayerArmor% = k%
                                Exit Sub
                            End If
                        End If
                    Case 4, 5:
                        Color _RGB(255, 255, 0)
                        Print
                        Print "---------------------------------------------------"
                        Print " Ok, maybe next time, says Jake with a grumble."
                        Print "---------------------------------------------------"
                        Color _RGB(255, 255, 255)
                        Exit Sub
                End Select
            Case Else
                Exit Sub
        End Select
Loop: End Sub

Sub FightMonster
    level% = GetLevel%(PlayerExperience&)
    MakeEnemy level%
    EnemyName$ = RTrim$(EnemyName$)
    Color _RGB(255, 255, 0), _RGB32(200, 0, 0)
    Print
    Print "---------------------------------------------------"
    Print " You came upon a "; RTrim$(EnemyName$); "!"
    Print "---------------------------------------------------"

    menu% = 1
    While (PlayerHits& > 0) And (EnemyHits& > 0)
        If menu% > 0 Then
            Print
            Print " (F)ight!            (D)efend!    "
            Print " (R)un Away          (Y)our Stats "
            Print " (S)urrender        (V)iew Enemy "
        End If
        Print
        Color _RGB(255, 200, 200)
        Print PlayerHits&;
        Print PlayerName$
        Print EnemyHits&;
        Print EnemyName$
        Print
        Color _RGB(255, 255, 255)
        Print " [F/D/R/S/Y/V/?] "

        level% = GetLevel%(PlayerExperience&)

        k% = WaitKey%(" FRSYV?D")

        Select Case k%
            Case 2, 8
                PlayerAtt! = 1 + PlayerWeapon%
                PlayerAtt! = PlayerAtt! * (1 + (PlayerStrength& / 10))
                PlayerAtt! = 5 + (Rnd * PlayerAtt! * 5 * level%)
                PlayerDef! = 1 + (PlayerStrength& / 100) + Int(Rnd * (PlayerShield% / 2)) + PlayerArmor%
                If k% = 8 And PlayerShield% > 0 Then
                    If PlayerStrength& > PlayerShield% Then
                        PlayerDef! = PlayerDef! + 2 * Int(Rnd * PlayerShield%)
                    Else
                        PlayerDef! = PlayerDef! + Int(Rnd * (PlayerShield% / 2))
                    End If
                    PlayerAtt! = PlayerAtt! \ 2
                End If
                EnemyAtt! = EnemyWeapon% * (1 + Rnd * (EnemyStrength& / 5))
                EnemyDef! = 1 + (EnemyStrength& / 100)

                If (Rnd * 30) - 6 > PlayerArmor% + PlayerShield% Then
                    Color _RGB(255, 255, 0)
                    Print
                    Print "---------------------------------------------------"
                    Print " You move fast and hit first."
                    hits% = PlayerAtt! / EnemyDef!
                    If hits% > EnemyHits& Then hits% = EnemyHits&
                    EnemyHits& = EnemyHits& - hits%
                    Print " You hit for"; hits%; "points."
                    PlayerExperience& = PlayerExperience& + hits%
                    If EnemyHits& > 0 Then
                        hits% = EnemyAtt! / PlayerDef!
                        If hits% > PlayerHits& Then hits% = PlayerHits&
                        PlayerHits& = PlayerHits& - hits%
                        Print " You are hit for"; hits%; "points."
                    End If
                    Print "---------------------------------------------------"
                Else
                    Color _RGB(255, 255, 0)
                    Print
                    Print "---------------------------------------------------"
                    Print " You move slow and get hit first."
                    hits% = EnemyAtt! / PlayerDef!
                    If hits% > PlayerHits& Then hits% = PlayerHits&
                    PlayerHits& = PlayerHits& - hits%
                    Print " You are hit for"; hits%; "points."
                    If PlayerHits& > 0 Then
                        hits% = PlayerAtt! / EnemyDef!
                        If hits% > EnemyHits& Then hits% = EnemyHits&
                        EnemyHits& = EnemyHits& - hits%
                        PlayerExperience& = PlayerExperience& + hits%
                        Print " You hit for"; hits%; "points."
                    End If
                    Print "---------------------------------------------------"

                    If InStr(EnemyName$, "Witch") > 0 And Rnd * 10 < 2 Then
                        Print " The Witch has used Her Evil Eye!"
                        Print " Your Magic is Weakened!"
                        Print "---------------------------------------------------"
                        PlayerMagic& = Int(PlayerMagic& / 2)
                    End If
                    If InStr(EnemyName$, "Wizard") > 0 And Rnd * 10 < 2 Then
                        Print " The Wizard has used Hexed you!"
                        Print " Your Strength is Weakened!"
                        Print "---------------------------------------------------"
                        PlayerStrength& = Int(PlayerStrength& / 2)
                    End If
                    If InStr(EnemyName$, "Druid") > 0 And Rnd * 10 < 2 Then
                        Print " The Druid has Cursed you!"
                        Print " Your Magic and Strength is Weakened!"
                        Print "---------------------------------------------------"
                        PlayerStrength& = Int(PlayerStrength& * .75)
                        PlayerMagic& = Int(PlayerMagic& * .75)
                    End If



                End If
                If k% = 8 And PlayerShield% > 0 And Rnd * 20 < 2 Then 'check for broken shield
                    If Int(Rnd * 27) > PlayerShield% Then
                        Print
                        Print ">>>>>>>>>>>>>>>>>>>>>>>>>+<<<<<<<<<<<<<<<<<<<<<<<<<"
                        Print " Your "; Shield$(PlayerShield%); " has BROKEN !!"
                        Print ">>>>>>>>>>>>>>>>>>>>>>>>>+<<<<<<<<<<<<<<<<<<<<<<<<<"
                        PlayerShield% = 0
                    End If
                End If
                If EnemyHits& = 0 Then
                    Color _RGB(255, 255, 0)
                    Print
                    Print "---------------------------------------------------"
                    Print " You have defeated the "; RTrim$(EnemyName$)
                    Print "---------------------------------------------------"
                    PlayerMagic& = PlayerMagic& + EnemyMagic& \ 10
                    PlayerGold& = PlayerGold& + EnemyGold&
                    menu% = 1
                End If

                If PlayerHits& = 0 Then
                    Color _RGB(255, 255, 0)
                    Print
                    Print "---------------------------------------------------"
                    Print " You were defeated by "; RTrim$(EnemyName$)
                    Print "---------------------------------------------------"
                End If

            Case 3
                Color _RGB(255, 255, 0)
                If Int(Rnd * 12) > PlayerArmor% Then 'yup less armor imporves chance to escape
                    Print
                    Print "---------------------------------------------------"
                    Print " You manage to escape, but it has tired you"
                    Print " and magic is weakened, and some experience points."
                    Print "---------------------------------------------------"
                    'modified the dedcution for running away to be variable with armor and shield weighing player down
                    PlayerMagic& = Int(PlayerMagic& / Int(2 + Rnd * 8))
                    PlayerStrength& = PlayerStrength& - Int((2 + Rnd * PlayerArmor%) + Int(Rnd * PlayerShield%))
                    If PlayerStrength& < 0 Then PlayerStrength& = 0
                    PlayerExperience& = PlayerExperience& * .9
                    menu% = 1
                    Exit Sub
                Else
                    Print
                    Print "!!! ------------------------------------------- !!!"
                    Print "          You have FAILED TO ESCAPE !"
                    Print "!!! ------------------------------------------- !!!"
                    PlayerMagic& = Int(PlayerMagic& / Int(2 + Rnd * 8))
                    PlayerStrength& = PlayerStrength& - (PlayerArmor% + PlayerShield%)
                    If PlayerStrength& < 0 Then PlayerStrength& = 0
                End If


                Color _RGB(255, 255, 255)
            Case 4
                Color _RGB(255, 255, 0)
                Print
                Print "---------------------------------------------------"
                Print " You give all your gold to "; RTrim$(EnemyName$);
                Print " Being broke is better than dying I suppose..."
                Print "---------------------------------------------------"
                Color _RGB(255, 255, 255)
                menu% = 1
                PlayerGold& = 0: Exit Sub
            Case 5: YourStats
            Case 6: EnemyStats
            Case 7: menu% = 1
        End Select
    Wend
End Sub


Function GetLevel% (e&)
    Select Case e&
        Case Is < 100: level% = 1
        Case 101 To 500: level% = 2
        Case Else: level% = 3
    End Select
    GetLevel% = level%
End Function

Sub Healer
    Totalhits% = PlayerExperience& \ 10 + 30
    ToHeal% = Totalhits% - PlayerHits&
    Cls
    Color _RGB(255, 200, 200)
    Print
    Print "---------==**[  HARRY THE HEALER  ]**==------------"
    Print
    Print " Welcome friend.  Let me heal your wounds and soul."
    If ToHeal% <= 0 Then
        Print
        Print " Harry looks you over completely and says,"
        Print " You don't require healing, friend.  Goodbye..."
    Else
        Print
        Print " Each hit point costs 3 gold to heal."
        Print " You can afford to heal"; PlayerGold& \ 3; "hit points."
        Print " To max out, You need to heal"; RTrim$(Str$(ToHeal%)); "."
        Print
        Input " How many would you heal? (ENTER for max) ", heal%
        If heal% = 0 Then heal% = ToHeal%
        If heal% > ToHeal% Then heal% = ToHeal%
        If heal% > (PlayerGold& \ 3) Then heal% = PlayerGold& \ 3
        PlayerHits& = PlayerHits& + heal%
        PlayerGold& = PlayerGold& - (heal% * 3)
        Print
        Print " I have healed you for"; heal%; "hit points."
        Print " Go in peace my son..."
        Print
    End If
    Print "---------------------------------------------------"
    Color _RGB(200, 200, 255)

End Sub

Sub MakeEnemy (l%)

    ReDim EN(1 To 5) As String
    ReDim EP(1 To 5) As String

    EP(1) = "Angry "
    EP(2) = "Ferocious "
    EP(3) = "Snarling "
    EP(4) = "Hostile "
    EP(5) = "Wicked "


    Select Case l%
        Case 1
            EN(1) = "Squirrel"
            EN(2) = "Bunny"
            EN(3) = "Hedgehog"
            EN(4) = "Gremkin"
            EN(5) = "Spider"
        Case 2
            EN(1) = "Bear"
            EN(2) = "Boar"
            EN(3) = "Boggart"
            EN(4) = "Troll"
            EN(5) = "GreenMan"
        Case 3
            EN(1) = "Demon"
            EN(2) = "Dragon"
            EN(3) = "Witch"
            EN(4) = "Druid"
            EN(5) = "Wizard"
    End Select
    ecl% = Int(1 + Rnd * (l% + 2))
    EnemyName$ = EP(Int(1 + Rnd * ecl%)) + EN(Int(1 + Rnd * 5))
    EnemyHits& = ((l% * 3 + Rnd * 12) * (1 + Rnd * ecl%))
    EnemyMagic& = ((Rnd * 10 + 10) * l%)
    EnemyStrength& = ((Rnd * 10 + 10) * l%)
    EnemyGold& = ((Rnd * 100 + 100) * (.5 + Rnd * ecl%))
    EnemyWeapon% = (Rnd * 2 + Rnd * (ecl% * 2))
    EnemyExperience& = ((Rnd * 10 + 10) * ecl%)

End Sub

Sub YourStats ()
    Cls
    Color _RGB(255, 255, 0)
    Print "------------==**[  YOUR STATS  ]**==---------------"
    Print " Name      : "; PlayerName$
    Print " Hits      :"; PlayerHits&
    Print " Magic      :"; PlayerMagic&
    Print " Strength  :"; PlayerStrength&
    Print " Gold      :"; PlayerGold&
    Print " Weapon    : "; Weapon$(PlayerWeapon%)
    Print " Shield    : "; Shield$(PlayerShield%)
    Print " Armor      : "; Armor$(PlayerArmor%)
    Print " Experience :"; PlayerExperience&
    Print "---------------------------------------------------"
    Color _RGB(255, 255, 255)
End Sub

Sub EnemyStats ()
    Cls
    Color _RGB(255, 255, 0)
    Print "------------==**[  ENEMY STATS  ]**==--------------"
    Print " Name      : "; EnemyName$
    Print " Hits      :"; EnemyHits&
    Print " Magic      :"; EnemyMagic&
    Print " Strength  :"; EnemyStrength&
    Print " Gold      :"; EnemyGold&
    Print " Weapon    : "; Weapon$(EnemyWeapon%)
    Print " Experience :"; EnemyExperience&
    Print "---------------------------------------------------"
    Color _RGB(255, 255, 255)
End Sub

Sub UseMagic
    Print
    Print
    Do
        Color _RGB(255, 255, 100)
        Print
        Print "------------==**[  CAST A SPELL  ]**==-------------"
        Print
        Print " (H)ealing Spell  (requires 4 magic points)"
        Print " (S)trength Spell  (requires 9 magic points)"
        Print " (Q)uit this menu"
        Print
        Print " You have"; PlayerMagic&; "magic points."
        Print "---------------------------------------------------"
        Print
        Print " [H/S/Q]"

        k% = WaitKey%(" HSQ" + Chr$(13))

        Print
        Select Case k%
            Case 2
                If PlayerMagic& < 4 Then
                    Print "---------------------------------------------------"
                    Print " You don't have enough magic points for that!"
                    Print "---------------------------------------------------"
                Else
                    m% = 1 + Rnd * 9
                    PlayerMagic& = PlayerMagic& - 4
                    PlayerHits& = PlayerHits& + m%
                    Print "---------------------------------------------------"
                    Print " Your spell yields"; m%; "hits."
                    Print "---------------------------------------------------"
                End If
            Case 3
                If PlayerMagic& < 9 Then
                    Print "---------------------------------------------------"
                    Print " You don't have enough magic points for that!"
                    Print "---------------------------------------------------"
                Else
                    m% = 1 + Rnd * 9
                    PlayerMagic& = PlayerMagic& - 9
                    PlayerStrength& = PlayerStrength& + m%
                    Print "---------------------------------------------------"
                    Print " Your spell yields"; m%; "strength."
                    Print "---------------------------------------------------"
                End If
            Case 4, 5: Color _RGB(255, 255, 255): Exit Sub
        End Select
    Loop
End Sub

Sub WalkInWoods
    Color _RGB(255, 255, 255), _RGB(0, 200, 200)
    Select Case (Rnd * 99)
        Case 0 To 9
            rndgold = Int(Rnd * 15) + 2
            PlayerGold& = PlayerGold& + rndgold
            Color _RGB(255, 255, 0), _RGB(0, 200, 200)
            Print: Print " Lucky you! You found"; rndgold; "pieces of gold!"
            Color _RGB(255, 255, 255), _RGB(0, 200, 200)
        Case 10 To 19
            PlayerMagic& = PlayerMagic& + 1
            Color _RGB(100, 255, 100), _RGB(0, 200, 200)
            Print: Print " A nice faerie gives you one magic point!"
            Color _RGB(255, 255, 255), _RGB(0, 200, 200)
        Case 20 To 29: m% = 1 + Rnd * 9
            PlayerHits& = PlayerHits& + m%
            Color _RGB(100, 200, 255), _RGB(0, 200, 200)
            Print: Print " A friendly Elf heals you"; m%; "hit point";
            If m% = 1 Then Print "!": Else Print "s!"
            Color _RGB(255, 255, 255), _RGB(0, 200, 200)
        Case 30 To 89
            Print: Print " The path continues before you. Now what?"
        Case Else: FightMonster
    End Select
End Sub

Function Weapon$ (w%)
    Select Case w%
        Case 0: Weapon$ = "Your Bare Hands"
        Case 1: Weapon$ = "A Cudgel"
        Case 2: Weapon$ = "A Quarterstaff"
        Case 3: Weapon$ = "A Small Knife"
        Case 4: Weapon$ = "A Big Knife"
        Case 5: Weapon$ = "A Machete"
        Case 6: Weapon$ = "A Shortsword"
        Case 7: Weapon$ = "A Rapier"
        Case 8: Weapon$ = "A Messer"
        Case 8: Weapon$ = "A Longsword"
        Case 9: Weapon$ = "A Flammard"
        Case 10: Weapon$ = "A Grand-Messer"
        Case 11: Weapon$ = "A SwordAxe"
        Case 12: Weapon$ = "A GreatSword"
    End Select
End Function
Function Shield$ (w%)
    Select Case w%
        Case 0: Shield$ = "Dumb Luck"
        Case 1: Shield$ = "Wicker Buckler"
        Case 2: Shield$ = "Wooden Buckler"
        Case 3: Shield$ = "Wicker Tower Shield"
        Case 4: Shield$ = "Brass Buckler"
        Case 5: Shield$ = "Wooden Heater"
        Case 6: Shield$ = "Wooden Round Shield"
        Case 7: Shield$ = "Brass Heater"
        Case 8: Shield$ = "Wooden Round Shield"
        Case 9: Shield$ = "Wooden Tower Shield"
        Case 10: Shield$ = "Brass Round Shield"
        Case 11: Shield$ = "Wooden Kite Shield"
        Case 12: Shield$ = "Brass Kite Shield"
    End Select
End Function
Function Armor$ (w%)
    Select Case w%
        Case 0: Armor$ = "Your Bare Skin"
        Case 1: Armor$ = "Leather Jerkin"
        Case 2: Armor$ = "Padded Aketon"
        Case 3: Armor$ = "Studded Leather Cotte"
        Case 4: Armor$ = "Brass Scale Hauberk"
        Case 5: Armor$ = "Iron Chain Mail"
        Case 6: Armor$ = "Double Mail"
        Case 7: Armor$ = "Plate & Mail"
        Case 8: Armor$ = "Full Plate"
        Case 9: Armor$ = "Elfin Mail"
        Case 10: Armor$ = "Rune-Scrawled Plate"
        Case 11: Armor$ = "Dwarven War Harness"
        Case 12: Armor$ = "Golem Plate"
    End Select
End Function




Sub Woods
    menu% = 1
    Do
        level% = GetLevel%(PlayerExperience&)
        If PlayerExperience& > 2000 Then PlayerHits& = 0

        Print
        If PlayerHits& = 0 Then Exit Sub
        If menu% <> 0 Then
            Color _RGB(255, 255, 255), _RGB(0, 200, 200)
            Print
            Print " You're in the woods, alone.  Now what?"
            Print
            Print " (C)ontinue .....Walk the path."
            Print " (T)own .........Go Back to town."
            Print " (S)pell.........Cast a Spell."
            Print " (Y)our Stats....Show your stats."
            Print
        End If
        menu% = 0
        Print " [C/S/T/Y/?] "

        k% = WaitKey%(" CTSY?")

        Select Case k%

            Case 2 'Pressed Continue walking...

                Select Case (Rnd * 99)
                    Case 0 To 9 'found gold
                        rndgold = Int(Rnd * 15) + 2
                        PlayerGold& = PlayerGold& + rndgold
                        Color _RGB(255, 255, 0), _RGB(200, 200, 100)
                        Print: Print " Lucky you! You found"; rndgold; "pieces of gold!"
                        Color _RGB(255, 255, 255), _RGB(200, 200, 100)
                    Case 10 To 19 'faerie magic
                        PlayerMagic& = PlayerMagic& + 1
                        Color _RGB(100, 255, 100), _RGB(200, 200, 100)
                        Print: Print " A nice faerie gives you one magic point!"
                        Color _RGB(255, 255, 255), _RGB(200, 200, 100)
                    Case 20 To 29 'elf heals you
                        m% = 1 + Rnd * 9
                        PlayerHits& = PlayerHits& + m%
                        Color _RGB(100, 200, 255), _RGB(200, 200, 100)
                        Print: Print " A friendly Elf heals you"; m%; "hit point";
                        If m% = 1 Then Print "!": Else Print "s!"
                        Color _RGB(255, 255, 255), _RGB(200, 200, 100)
                    Case 30 To 89 'nothing, you just continue
                        Print: Print " The path continues before you. Now what?"
                    Case Else 'Monster fight!
                        FightMonster: menu% = 1
                End Select

            Case 3: Exit Sub 'back to town

            Case 4: UseMagic: menu% = 1 'you use your magic
            Case 5: YourStats 'show your stats
            Case 6: menu% = 1 'Pressed ? for help

        End Select

    Loop
End Sub

Function WaitKey% (keys$)
    Do
        _Limit 60
        k% = InStr(keys$, UCase$(InKey$))
    Loop While k% < 2
    WaitKey% = k%
End Function

Sub BIGFONT (size)
    'loads a custom size CP437 font (like QB64's built-in one)'
    'You can make/use any size now.
    A$ = ""
    A$ = A$ + "haIgm]0MLEMMXkS^ST\\T]lHiaboe<Nl8c71HYa3f0VPiWa9H07n5a_0bn:K"
    A$ = A$ + ";#FB8;c773hBD8T42E_#C:=QBC39PSQB=DB2UhdhVBB^9=_D2EQ#Ala?JFmi"
    A$ = A$ + "ejeGKNiYTV4\UNkOWcmL791Y0Iefg<NdmNWiLfWmIoO_?WkeP10H6`NP0HS["
    A$ = A$ + "KMGj5l9Nf7lH0HC;3of5MAGb9ef>>V6V60Vfa[_^=_m>j[Y]NOC7PDY`?kKc"
    A$ = A$ + "gd0IQB1o20VfnaO?eFkH7m=nh8TP=]8ljY]e^_e]DhRj<;0CoG1`5>lfj\S`"
    A$ = A$ + "IOn5Z6o]G6oLbK3oRZONcW6QoL`[Gfffn0gBQ5]P_=NmC3#5__^kMcMlg=[o"
    A$ = A$ + "a=RPjY`[?W]ga]dWICVEPonZafW]W>fNWObWOGk3P[h7POg7[_Nga07oM<8f"
    A$ = A$ + "f[2agZnF0=g`?kjkmmOT[]nel;PVZJ]hg0?OKcLadaGiKoLOB06[_P\Y8lOJ"
    A$ = A$ + "#5Pl2kCZm?FO04TU^4o[1Bn:5m=VLhOH8jj9mj4UF4Te<4D9R7[U6eP\fS#H"
    A$ = A$ + "5]c]X6G?2l1mUORGl9Rl3CcgPP3Yf?27leNXQi017VViP9PXlI5<D`Bg[8lC"
    A$ = A$ + "8OFXkk2MW7jMNL?lKIT21l_VF:3>F2D;LOV8TRaP9n:<aIA^f=aF7iJaK2<#"
    A$ = A$ + "L8<Ak3Q9<_mJcKe[TDPTc\936fA:ngRlXaf?Q:5<^GQ:NaoU>Jo437Vj6iV1"
    A$ = A$ + "CjiCm;DJYL^oDO^mEPnIARTN`G4_b`GW:h^aS?8:nE5\4h>P72nB`S0?6lT`"
    A$ = A$ + "G3n6`g4n^`g3nA`;PJd_>l_2S2oK`APa=OZPk;hn3NXP7>h;7l41OUP36l\1"
    A$ = A$ + "OW\;=kJbN7IOTLOjLkMY;HY=]dSMY[OYM\d>cGAnIU?G1X#55Z[`\:<W2c[`"
    A$ = A$ + "R:\\2]DHU5FCQ^;\W23Fh^;L?5^_2On2?FQW\`cDh05Nf2o]5n7JN==_fV?["
    A$ = A$ + "V_^VgLcKYiK0]l#_nl<n]?Ho`G1N64oNF7nmJ`?5no0oBhG?1lkY#lk_a3o6"
    A$ = A$ + "2a_i_dUXhG8SOIW2lKS>lKXb`_G\iCeQOMfleChgho?6o#SoJSo:SoBSoRSo"
    A$ = A$ + "2SoS7o7=nc=ngKl_mh7LloZao6SOPaojSo<SodSglAKnX;mXckXcmXciXchX"
    A$ = A$ + "eNDcA6o8SMX7j#Ol3]n3Uke>UGKi_jGkEOZGmAOe?i[^cGM7_b?iEnn_bGOT"
    A$ = A$ + "GITGNTonAN^An_?bgOT_k87LTobANbANdA^oAn8SLWSL7S\kA^eAfn8KJT[I"
    A$ = A$ + "T;OT;KT;LTe?bJNYGnUn7NYGlUnj_dOi;md_dG1if?hKUTeoQnbPBTY#kYE1"
    A$ = A$ + "ESFZ[1V>D;D7jiJVX]gjQI1YQI3=0c1b0c5J4V7<OH1`2Aig5SB]=QF<c1;5"
    A$ = A$ + "b3;3:0=3;7>6hHQS3>NX5h4#keW4\2XEX=X8\BX4Lb`ZPE3W2LZ`Y1[1>Mhm"
    A$ = A$ + "0W1JUo<Qc2>KhLPc5F7LN`jQg;lnPc7f0L1`52G4\Ahm3G<L9`U2G6Li`70J"
    A$ = A$ + "7^2h:Q[2^JhJP?8L]`e1M0K2f<Zke9\5H[`fP^P[7^1XKHk#?#_#O`=2m3k0"
    A$ = A$ + "60f9LC`=3g2L[`^P?4\KhfPK7ejf3B0Z2o4TZbZZNJe<mJ[K6c\RjWEjIg`L"
    A$ = A$ + "b<g6WglG`2GdRGBCIc]dl;[#c;oH>fSkhKi4>aCJ5]fFaEFjTGeZ?UCmdFcY"
    A$ = A$ + "oN>SeNVWeIO>Wkj>_eoNOOWo6^P;lRfhkoR_T;mb^l?#kGaENEGmel1_f[[S"
    A$ = A$ + "=]i`>gbFgFGGo=dmfkYgn^anga0klV^iKiFge7Jggf]O7kiCoI^ooX?kWk1n"
    A$ = A$ + "CN`?oO:l5nR?lGjAfknnb?jSmWmWohko9PWj_h[lEQ?n7N`kjKO_oa2;k?4N"
    A$ = A$ + "n?a?i5o8X?Fh_6nX3m=N8h?h>oHoXWn73gmo=hgcSeBVBdGon_Ub1Ll68O[5"
    A$ = A$ + "Tn_7d>d?4niViJ>Ec5J^NcmJN6coD5c\REDAgEL?ElHEllElc2VE`E7\]P?E"
    A$ = A$ + "`S5lM2NmD#ZIUJUYf#Z#lmNBMoYNfDoZ:?V:_^:k_bQZlaZliZlWFi_\Z:ZJ"
    A$ = A$ + "VEeFEQE][ZfKE?GEoZZWGe[Yj[^jk^j7_j3Fm;<]:VfLWfI=]]<]kJJ?nd6N"
    A$ = A$ + "JSECfJFG=K[Vk_VmGcgYV3=mY=mU>me>m?hdgedo\Co_Jj_N]cZfFZm\Z=\f"
    A$ = A$ + "k\f7_fOH]7Y^IFg:[KMe]Ujj_^1[K_emm[k`cX^I\RILYcHgch1VaGM63?SO"
    A$ = A$ + "c<Wi<?^I^^I^YINGcLOc<JVobjWKm]Eo6Zoj[ocDoG]nG]naVe\Ve9>[e?[^"
    A$ = A$ + "aggm\NlIm2YQdK8MgYO`d?NjXd_n\[JfIWmJWm5>knVmGHf_D3;ZQef`0=lH"
    A$ = A$ + "=llcYZidfLfdL^WilhcIh<EUIeIj9c3TIhi2cmHVkE>g?nL?hLoI=>k6GISG"
    A$ = A$ + "ISkZamfhcghAVga=_;MNM?_?cl>hlnGVoLWoI=o]=oM=om=oGL1YF`:F#k;h"
    A$ = A$ + ">G`3_P3\PGL1S^`U^`CNQGj2kKQ?h2?`2OQ5ncGDM;J5;jbGdNFdm^Xm]XO`"
    A$ = A$ + "RNi5mcGlBFlZGLhR_g5oT;nK]hGLao;;ng\TY]Ti]TSI9WjBf`B^^U<`B^[U"
    A$ = A$ + "lIGbC]TXUlB;iWeDE=U]YEfdjKjjJjVJjNJjQKj0=ml=m?W=Ef5UmmTmbcfG"
    A$ = A$ + "fk=k3Wm0IOi\obLc<g9VKSij;g3TKOiNjLOWL3WkeGj3^\Y]\WJIO[Um3Gfo"
    A$ = A$ + "DQZ:\T2_W2KZ`]GHO5>DceeljK^_VOPV?HcodUGeb?^U_nUOmXESBXnd[Vjh"
    A$ = A$ + "#k:E3WhCHPCJ=?IeYPog]m4EEi;_VW<X2lDh92X_^Bj[ObZ[bLTelT6jk;V>"
    A$ = A$ + "Gj2iBW[Ti;?fmH>San[CML_a;D:hPP69H#F<>]JAkB#YRUX6W;Mn<i<I:F:4"
    A$ = A$ + "SnK\n27KHc#AAQELPa6nXk=<H`#fYLe^n6`m^1dBf2A[G#Yd5Cg#YLIbW9OY"
    A$ = A$ + "PB5cT;OYR=T?MAC^<iBSOOHXIX`8l_]4B7>jiDAk7M_EdNH#fSL8jkTO1oNj"
    A$ = A$ + ";TQ;U7N:S3=:8\:BXJY6bD4afRUBig Grin\Dn:;U?3RfHog;1N4mYQ31NH82=nLNH"
    A$ = A$ + "i917o06WJF4V`l=8<b`O#Xb_;A_aFc]WA<Yo4DE#``8TQ1REY9BH966lk4`a"
    A$ = A$ + "oU0WhGalR1AJY5K4h#<Td1jE4b4=f`AdTPR9S>1I#]<f`S=L8bUdHR8h<5h3"
    A$ = A$ + "bA`_QaW8QHPCW8T5;H2?KIhPa_EAkHloe2#1J28P9_ID^1J39lFc:9PTQV_9"
    A$ = A$ + "GJS`>`nT9O#FTA49SBE[mGO`:>0gIJn6Bd]:>02OLn^ZHniYkgOQDAH8?Rj5"
    A$ = A$ + ":CTWZ96o5ZH0=7CWWT2CgPRg4KP`678laZf]SS:EZl3>76[D]B;AXVVA]<5E"
    A$ = A$ + "i_CcT>O2^:Q^Af[6[_8ETQc=RVg2LIiHBc#Whi]H9=8[2oV85RAd;jPIdHT?"
    A$ = A$ + "Big Grin08RWSo0\^1Y32\6<2UdjARBPTIJVRb7\43ZG]KFDnXWCH`QYiJE>IV0E;>"
    A$ = A$ + "?6g1#<RUc65`g2bQBRi;QOG63nQd^[4IE4f55ZoQ\E4=FMAR#29HBcND2U^d"
    A$ = A$ + "Z>jYkPdRDKPT0J=]E:eCc1O;<KFj<e6BXbT\o>IM6S5M>jMDLG<S:7OSWBPP"
    A$ = A$ + "AT1IN<\:R`W>_Wn2B4EmGNfa2<j7a#5=a\cUD>n:ISV]W^:\kXNLj6eS2STN"
    A$ = A$ + "IJYR3PDOmXWMhIPa62iHb<=58I3\SXL[P1H[AcJ13NTMSC5478iE#U1Hj#A<"
    A$ = A$ + "n?XEbZ[Kn[ZBUHa\<iiojK=P>R>7\:LT=6QII9IATTSNiHeIWiFM`9LQdi8?"
    A$ = A$ + "n3:V6#lgLYYc7[?V^;dZVNcXkRUZTdnS^g9BnEI1;<A:O39PFndZfN4ImQNQ"
    A$ = A$ + ">M>#imIEZL^eRMXXd5BNn#NU_<K4KgZ1BVSXcNB\hX:NgHkcN6i;_O2nQDn<"
    A$ = A$ + "2GQ\7CmP]dUXSNSIkD=J8o[i#NdXXZ6>oCRCaflcD<1NYc9oGZ]5WnU__\jI"
    A$ = A$ + "]o4n>L\IA782:[mY5On>oMFJM5]K=OQbYH_ZXMKl6=TFmfVVD?bTGlXPLYf9"
    A$ = A$ + "n;iA3=OdG4KcTVMXlMUTgX6HeK3KcT=b#n^B]1TdaVKR]M?XHknd=ZlUBCDi"
    A$ = A$ + ";VVD`:MXl<AfWn3Qd\?EbD>2GIn>nZAlHoF[SX4:6HEndNBK\o1[1MQVCc2;"
    A$ = A$ + "UV2VBXgReMNTHCS3[^=0]6KJ<5T]H`gdF9OSST9IbJLa<iC`KYiADTcU^SA`"
    A$ = A$ + "TC?OK5`L;EOK>;4TVG9U:EB=3aF84KaR^WXB:aN8RBjg8fhKQ?#SX8O6BJn8"
    A$ = A$ + "o3SJd`Z9HlPTNB45H6K3chT=J#R6#WXY]DE;la>A^[U8l\j7Nm=fnOa<fHiR"
    A$ = A$ + "B#6\MFdK2b6[gTGUA4Ga5EI4a6ThQ;:JBRMS\S4YabDN\Bj;=f\XaO0d9N;4"
    A$ = A$ + "M8W#6BCB_ZWBEGf<4B]6UT28M:RbAh:Gk]AaI:nm5`n:`f;6f5nV;WDVlAR3"
    A$ = A$ + "NbL4=DTiHN#>7=T\dMJDJ15U`OJ0AO[dPe>\85hcN4j]8fiI_M6<ObJe7iaF"
    A$ = A$ + "?[LOahCLc[3ChB[YSWF<Mc9Y:_Ao4Rm9:bH[GND3`9[6;kh5gQhgWdS9]HB["
    A$ = A$ + "EQ<>OU8kR8^2ma2eaZ;dZf6JeI3mdWbT8ZKNV9J?5C_lRUD^P6?HTed53FR4"
    A$ = A$ + "bfNBPO=h`_dDjCil`[j`4bZSS7D`941W8n#I;ihT<UBQ#A4H<9Big Grin11KjD\IK"
    A$ = A$ + "CK:9N8aCb^CUY62#^mA2M?h`D_`8B6RW8#IbD^\fR3h=6C:aHC<=fBf]TJMR"
    A$ = A$ + "aGU`nE3fLUbiTB9J]>oHhaad[n64?;RgLl<2HE#eMg<:Zo#a]AJ_\HYXMaVA"
    A$ = A$ + "1a_5gVZI=l<R2>g^Q4S2BhiAabh3Bb]=<1EAG\G9R?e575ORE0>QAV:Xjccf"
    A$ = A$ + "HHlTb`f#IC;I?c6QKaJ;b=n[bUcR6;h4S_f5OLBLXlQ_LJNjHM#EP8GV68_#"
    A$ = A$ + "<b;ncXh]TT\h`oY\2RU]7TcF9>[?j<B6_431DNRlDRR2T869A<D4afBR7;dc"
    A$ = A$ + "b#6eJOjLH2PfL7UiShS:<>h?:<;>=f4bXB=<XXWi<7]BX5Hi1:3?a^6RJ43W"
    A$ = A$ + "LLEVHYWnBCnf?c;XCJ9]fRZ]DK0Haf3Hh7I=M69fU[`3ola>ENOiZmH[DS`l"
    A$ = A$ + "8TC=0S0=Ym>52B6BYe^[Zd2AbI_413IFRVVb<5MA53[6WBHUa3>C4:ncYi3i"
    A$ = A$ + "V2:5CSZ<_0N?J5IDHD^#0UA_TX>Z;9OXFF21=MaB6YiXR6KHbDUIXS<?cXff"
    A$ = A$ + "77GBig GrinXHLa38KZ^DF9RZ?\[GR5gFW1f^LT]L5Te6KAWVLj_TG][>2<UcEE\Hj"
    A$ = A$ + "_6D[Z4A;bJIhPER8V7ZIPH7NGL5afbeL]U8UBcaYVF\QAmk`dhOTi9EAKZjK"
    A$ = A$ + "66kE>ObnJJ19]3YM^2?NAm9[KWc6]emS5SY59fG^_QTJU8];CPCSTT]BX?BF"
    A$ = A$ + "3ULRGM\NClhFTmALJ6>e3[?RQU8HLh#TVhg4\kEVe1JnCYfK]>4iQ;A\_#d?"
    A$ = A$ + "=S?9RWAlY7WQNIIVKmac\A_<`AjDT4CCTV76?k;;ggdiLa\C#B#<>Ll3`DIb"
    A$ = A$ + ">:ZNF^NB9[NR<fAdXAEJPnT#6Flh:FcBW\FYNnbdBL4WlLHIbAR^SlfV=VdO"
    A$ = A$ + "jM`PXIJbSm1`AgEGC;m;^X6IR=ZV?faJ6_8]LJCf8am>9A<Y=`ITJa7;m[TU"
    A$ = A$ + "#cic`N>XTdEc2`KJLZIbK3Jb6U:[OZ\=eOTee]Omb47XNfUZF\;AaLQN29L8"
    A$ = A$ + "REflmWbend_6JnE1[\LoU86\HR`MPb6?f:5Vgg#Al<65Z?blHn0Ua4V3LSCB"
    A$ = A$ + "mUER_ec[eETGL4L>d1I7o18?_I#Z4EK;nkS26d<:2G:7A1DfL4?LHRhfAeB["
    A$ = A$ + "6=m>CAKVZ<?C2NTC8=RmF8QZGWUhV`Vd<dZhTfYgUF[^#;R27ak36DLPe7Y?"
    A$ = A$ + "L8V[kS;aaaTAXHR7NEaEeTlBO`GFNnaEFVm98c3Ej;D[4AXjfSWCTbXjFb>?"
    A$ = A$ + "#L8=ViQ3;RaQ6#b3gjj\XA;RoC6PQZ8\R?];hSHQ[HJ??bJF<FYEE1O8[c:["
    A$ = A$ + "KM2>T6[T?M6>GjLJlnD1YUZ:8n9UdMdBOd774Th9Pn;kd\<O7=hiiTZZ_Fi8"
    A$ = A$ + "5SHC6\gBbN;ijQfhBaeKZVh<>Yn;EKR3HHh8NTYEfj`B]A2YiP]F\D6_B<8D"
    A$ = A$ + "09LMFhj1a>VYBMCZ58;9enSPYd?OiVWV<ole9G`5M:Y^H=naTHS8Y5YKnbQY"
    A$ = A$ + "iJ\JG1;m=;o#S1K]iXk53iQ<PEWW\CeBekTNYN9C79NJR\4C;9e[O_enceca"
    A$ = A$ + "Snb6X^;CCe#8\MW4L5Tongue;S?^j#R81ijcZg53WBU9K9E<V]1H5]2MhQEb:Z<m"
    A$ = A$ + "g<>In<>INENgYoIS^VC=f[_FOiUVBOiIVJOiClE2ObILfG5m?KV3YSdj7B9\"
    A$ = A$ + "g^LDP6AW;S_bNIY8NTJKcJNT]P8>aa#m_an1anE?Go]d>Okne2WRHVnT`O^c"
    A$ = A$ + "6hKRol:JW\1QSmXJIkB#3K=I=kV#]o\nDBh?ggHD\G\HiS6lSYA[<#9=fV#^"
    A$ = A$ + "d9L`RTL=9FTTnSmOaNeC;?cBCF`YLR4Qc=>VPJDH<bilIi7OQJG=?7m8;gTV"
    A$ = A$ + "5bRc\9Ai>0Yn4D]7TeERFK8^4:Bm9Xf?DIS1;_`e]Em<Ba065:EffEdIWAKe"
    A$ = A$ + "O^4kXVE_EB;S8n[A577W09SI[kOSN[=Z6eA1M1B]l6M=SlFMDYD5U_N0NBMU"
    A$ = A$ + "Bk]N0l2M;QX7<XG<KYfP^^M9[oNJGmF\aSJ3kSeoL:OAnaDP`RigC^[?QPh;"
    A$ = A$ + "bQPiXk=:Y?`j2C4;NC4o>^Rb^J:cI=8eK?:d?PDFF:bFfN]Z5Jl:oWbeg;PZ"
    A$ = A$ + "L6SG1RgB^ZD5IG\82RiHUG<``i1aag>Z4mb`\f197IGC\Uk_ZHan:;<A_WUL"
    A$ = A$ + "f0\cSX9^Q:LB[jJD9[M65YGndELP89V8MmhYO5W3bJBI;[U5o]:;BlflDg]N"
    A$ = A$ + "]IUml#[L]hdBnShH#FdBP`751^89f0cXHl]K`_2ai;[Ff5ejH7ib8P;CU7?P"
    A$ = A$ + "SOn1\[iFVBaFL9cCQjRFAa6X6ZSlfK9_MGOI3Y0BKn0:VMS\f3lRBhT1JWU1"
    A$ = A$ + "ZG\a9b09XR<Z4C9EaP#=7\bT3TEN<^NU4UYQ9\>[5;i4:M[NW_0[_P<SWbJg"
    A$ = A$ + "]1N=e>N_egLBF\TPd5W_aE3obbMBCV\\U#QH^SEWhL3]<DfhEl]LlX8J;U?N"
    A$ = A$ + "5hh8I:KLUUWTLEDGi[PSo`kVcCjj08NFMI8`[LHT\D0Lm5dUTT3<F]gVbIST"
    A$ = A$ + "PCC9bd=^^[dND:CJ]f[N[89]MU4lVR:C:R:7::ER\3cD;FJ8NLf?kGQg3:]j"
    A$ = A$ + "_Big GrinNef=M\RC^Ea[<9K8fJdDUeRL[fWTDH2359Y?c?N\\ikT;]DKW<^Z[Z4U\"
    A$ = A$ + "QFoW4AWcUf^f`8\>Fk^gJb[mKA=F4[]<oZ0[aU`NldjXKmEIAj:Ld8JMjR[n"
    A$ = A$ + "G9N_4`^Z<abGdNhk0AlbHAeOG67>XAIa]UJmiA;HhVOb[bG#IA7hZjGDLL23"
    A$ = A$ + "bdNdn1Ao[c2NkNhSUQ\kF`4i>8b>YcI\[Q0Q\bb0akm#IEK8`OTMCeabOmUL"
    A$ = A$ + "`<A=\88FPRR`:Ic#RfDQl6;D#eb[=[GE2Uh#dXBY<=E97aD3eK]ZfJ5L>b^M"
    A$ = A$ + "d`=`B_CI5:J`I:S\<V\J5ZT#i5]##F?Mjgba`G6HB7S9<4I;g^1?6;o]J<:J"
    A$ = A$ + "cHJRSCXHJNZ6YbFoUhm?jT>J1JTDU?:B0RCf8h9OXFCVjIRcMEYL8cObZQT]"
    A$ = A$ + "DBC1[9In#iWPG<iXFoIRNE<ShGAc\B8HF_:AARi;ISiPaDZnlG\=NgL9Re=f"
    A$ = A$ + "VRHQ;bFcBIg\hfdZ2`mX;DMSb=EE>:M2idb[RT:XVXFBNk]_O;73e[8;Y>aa"
    A$ = A$ + "`Vd\g#X62;3n5Vbi`4TAW`HX2Y9W8^P7PHoOX<:=FcWcDH2SVjm;WQUAm65["
    A$ = A$ + "I<oQP;\QGN#T1H96d<D<Xa1kfP[VEan8`NYk4bS<?]fE^LY#HD313_JMi5_A"
    A$ = A$ + "TK[iX4FZ\GnjmflZZQl7F6<lXR>hHC#CPdPN4]0_m3YVK0_SAE8BD;19JA]V"
    A$ = A$ + "BK:E7Hl];D=7cQ[2E;_<_#EZ[3S^;J4o#\>P]ZEN15bUbZ<o6;LREaZL9o9A"
    A$ = A$ + "XGZ[E\0oK=<CHA^LHj1bF:gfX2cVV:HVDjNb4\C2I6fabd_inSEYi988CPDF"
    A$ = A$ + "[<1`J^0JM12dM:1B7;P`Lij>ZH\nhM3X61]gl[JIel]E[bg3I3NE^BMM55Go"
    A$ = A$ + ":EVk87bF8[Y6VNdOc4PYO=a\J4>Pj3c6]gS3Z?Y4LPThZ[d3^R]M0WLhiHag"
    A$ = A$ + "DNbiejh3>?NF8BWkLgU4E]XY\nd1Bm_B\WKV#=`hk;SBLU0RRgQ<lE9;8Vj8"
    A$ = A$ + "5L[KSToJ6AGd_D9YMefgV3AX=GDDUci2b]_k\cINO1Cf4`hDiEVOh8<BZHmo"
    A$ = A$ + "1I^hKjnA[T6>MVlU]Odd\1RlGl5e7[gjV5_o:U#bciE4UbZf77=]]FSnEl;f"
    A$ = A$ + "4CD\MDkn?eFQ:Y4RFlWi0lFCUe6DcDl6Lf5ACLQ=em8YU^ISl?AfATg8MciU"
    A$ = A$ + "FFWaTk>?c#f[i<Gd=IKMne<foN[YDRJ`J_?7R[iRj\LDOlTZ0Mllo`R_bEIW"
    A$ = A$ + "nB>Ki\Y<RI^9cNf?`#jB`kO_CHIKlNA;D[EHSfm7ZM7]Uc]OA2e]d6KFUn8Y"
    A$ = A$ + "oIaE_jmQfX#kCid2Q#ilaaFPJXd2F;iK<i[eAnhki3RW5C5\[dQoHT>I=EiA"
    A$ = A$ + ";S[4Jai2;[7OPFWV1In#>Y^hLdNfL7ejl#5h]AnZ#G#A^K;4k^NTa<nFgRf4"
    A$ = A$ + "KofNoll>lnH#[5DReDJEj2BYkRF^>JfEeQ9HafGYeY[9MM\8Nkl95liKR_k0"
    A$ = A$ + "TMU\^5a\ZLHd#Ad=<fQSRT<?E>^UGlfOOgofiN:h]km7`kTk5QgYkkogm^?H"
    A$ = A$ + "nMbmfQFoaAm[ohXNe_Wm;E_^BndVT#:3E9J?N>T\Fc3Q0<H#:RIIMI8I>I_O"
    A$ = A$ + "[e>8NGT:Jgl^jaNW4Zih[i1Zk?eO[^_<4o0ejEK1dOWFfMak=E>2oJPF_N?;"
    A$ = A$ + "T8:gb[mR;Bg8_c\<HohlXiIRHb>MS\cA=lN;WTJ5kM^=Rb4lOe#nb:JYGn91"
    A$ = A$ + "8D\5OeNXRf;K7\bKFQ9c_X_KgTk<e:]`e1IJgkVXFhl_l^fJAUHM2:akfJJ3"
    A$ = A$ + "F;ke2A6T^?3Um:UA;M0aBhJWC#13=hgl?GiL\aF`kUUJSGGD=f8Y>2S=LZ=#"
    A$ = A$ + "g5Jjnm?8KlnmWNF\8kgOJCZbgGSPQF9oASB]oOm1[J]>L1kCUTn0OoQV5]7R"
    A$ = A$ + "h::>=8_6Xmaj;^el#ZHoAf=olGQdW6R_W9YnccE:LPaZ;enYk9`\Z\;]WbM]"
    A$ = A$ + "Y4e6RlUJoH`Q\Y>;NXkI76>i58=L43ZSL82M]hS]MiEXaE[UVCXNPefY>_ZF"
    A$ = A$ + "X5ac\Q4=57mbK<;9H?Mg3c3J2H9l0;^IK[\mRKAaAk`cn_6R]94HaP2<7QJS"
    A$ = A$ + "N?^8]SbTi0<_Qg]BY?n:TUT5=TY<9UfP`Z6;?RliXl9JQ`aAVBSWae8MNGSB"
    A$ = A$ + "OH?<XY;ZD]VQ8VZ>mUaVQKURT81f:SK?_Y3aV`E8PU6LdO1GB;E0SgK84J`d"
    A$ = A$ + "f`ghYTWL#dlB`3A^9_\NIQFY76;Z#JW57TF^L1V3akjK]eA4L?\WlF=:_8SC"
    A$ = A$ + "VKHA^S3>Gh_AN]]X6D;ALi5:#U#aP=4JQC>^FK[[V38TJ?G70\CN#gG^^6E^"
    A$ = A$ + "^D\\]8D`9oXkI5jNaaQ;i4gb8\Y5h;De4\hR]]FL11K1i>lQJ?=0T`Q2LN_a"
    A$ = A$ + "6[oD[?M9O<UIH;bcJB:_WUm]cglFI?9aHOe>Djdfn:U8i<\LB1VTBi0SBnbJ"
    A$ = A$ + "3PhVJl#fZ6_aCAgFd#2MgJMj^UldOmdQIRV:K`j62>Vg8kCddL50#R#TCWW>"
    A$ = A$ + "0jm`]SfEO\45e?Johakd:i^;FU[8:H5]SXXNoWckgUJS]J8j]\N^XjB2^JNO"
    A$ = A$ + "Z^VfJk>URX5Q>3=\LNP3f9`[22ETlQ:JXSE7?64V9jLQ^m9QcFE]NF[XNZF\"
    A$ = A$ + "8dCHaVA]kEL]?>9JWD7]aTEE0WLGP[m1XDJmF[FDG4n<=GRhHBR4CHbF`Qhb"
    A$ = A$ + "#2kT=4KKXX_\XDd7W09K^#g3#Z=YbPQKO0iX]AjCE0ZcfH>R9cD=#lTCC;k\"
    A$ = A$ + "DO:Ml\aAaSWBnTm9<gXkJ7a7:mL1Phk:Q;F>8P_gVba?o96U[mPakITonguef?ii"
    A$ = A$ + "4PCOHXhOSbM`nKdifnQLKlgLoJF8dmKEWh9V1]b47?LB#AHE`Y1W1Lf`i1W?"
    A$ = A$ + "LA`U0O0hZP[5f<\Eh6PNQM0g<lQPk#^oSJDo#aV]HSL\4NmZ`?E:EJ=CedWR"
    A$ = A$ + "bM8JejgAgknfn`mgoSnm5ljS]O1Nm?iFjES_[l0cN;KPl?nACP;QHj57QNHX"
    A$ = A$ + "Dk9M1KShUoCkAkj=9`QSkW\]n:oGI_e[eSGn>S^oQQ?:l9POOhnPo#hc1o9`"
    A$ = A$ + "31?2lX`O>lG0O=h[3OCh_1n^`O;lg1om`?161N=hO4nO2o_PoEho;l_1_1<^"
    A$ = A$ + "\C1W<JZUGIn]Q_RlVFYfhM<]geFNISJZFffH:[?]ZS1E9_Zc[Ka#mjPbPK1M"
    A$ = A$ + "LcHg0CNbEdgKd[]YginXO?Un>G7iT_R[6jD9UDf[4K=Y9ie4gBUC\7bjBk9o"
    A$ = A$ + "i;=YBJkm=AhLg>8Ie2hB_b[c]]DHNXQ01FjU;BQVhQ;cO5N2\dkLBkm;1fGY"
    A$ = A$ + "KB[aaQXHTM]ijTY?1XEX4L:`Y3W9L^`k5^0hm3G6L5`e0M0M2M1K7^AHW`]2"
    A$ = A$ + "g6m#\RbYd^cclnTAc\TbIV[RVl;[ba_adX`OYAmH3hAZZ<E[O2`V_HSL\4N]"
    A$ = A$ + "A_Vo=lcbmJC<Q9b]94]g_3_9l]hK_h9me_nP9^L24c9b<A>N<kgm]JM#JGll"
    A$ = A$ + "_:=?mHo5`To\\hOo?c4\[9mKgWi9okiI^`kdWA:_KmLji]kc9XOGmlmioOhi"
    A$ = A$ + "GeoAmLkig1?3SLk1Wg=OF;m^ec2[gEOfLmObNNSmfiIofk6?cY0HV`S3fWEa"
    A$ = A$ + "E2eYWK`cGRNN5XFj:ec3`_MGjidcFc_TNNUHF?OCmlZ`[nadC3fDdc[hYcmR"
    A$ = A$ + ">gPW?Kml:`aMIji1`J`gbiY`fl7YWG9fj7E?_:lkoNH\QK4a4:BAh\gh:;B7"
    A$ = A$ + "V`gLaX7g]RNKk6mmf?NIWKMWMg1Nbj`H8k16P?f?fR>aL1>ElC<4T[K3mTCn"
    A$ = A$ + "cK5oKK`:`?]RM^gN6HMmfoFk<kYVU77lHKU>QFKm4JK5]ejTQ6G>>0dSWc^h"
    A$ = A$ + "Q=;n6^l>kO7MeK?Ic>I]70kC4jaG=h^38lOIbQOZ`4HBIZdDUYJcd<eHV^YF"
    A$ = A$ + "CMVIHVYYNc\<Y=cfdPI>V<ViJJd<?cl=;`\#cR<;f\4CCV\84VZW8ZoGRW7Z"
    A$ = A$ + "VUJbSak?8lAP?3LG`O<lUQ_8V?`mIF6V;`MSAnoP`nPO1<:l5hWLZ3im\CmS"
    A$ = A$ + "1G?b:XWNZm0ONTULS#O<kIWX4QldCMGHlIdC?eW6cahfQmPAZm<`3K:HJf\L"
    A$ = A$ + "caH>FcaI>NC;`WcL2VCdLB`7e\2C[Vf<5=[dDbLbVEIF]iD<W:Z?lY<WVI=`"
    A$ = A$ + "SH>Mh?0ndVgSi<<[eLVVcbLfVcaL^VeI>?cj=_GckcLnV=H^0c5J^8c6=_Oc"
    A$ = A$ + "5K^4cUJ^<cUKn0Vf=GQi:=GUiZ=GSi3J^FceIj`\9cV=QV>=Ka\Ecf<MI^Nc"
    A$ = A$ + "=Hjf\MC?VN=mI^ACoVMH6`\Cc=I^Ic]H^Ec^<O8c^=gVif=gQI?VO?cMJn`V"
    A$ = A$ + "1=OTZgI?M]2lUNlLdS]Z7KC?FD?^BmH9mh9[7GUNLejaCA?NVjacB?NfjacE"
    A$ = A$ + "?^>iH[jhgZ>^]ZSK[jhfZ>^]ZSK[jhfZ>^]ZSK[jhfZ>^]ZSK[jhfZ>oJE7o"
    A$ = A$ + "FeaOEjacDaScZ]:?_>fnfkXb;MKM>#7EN9M]e]gA`6gFGl_Fl<?U:kXknfF7"
    A$ = A$ + "E6fIg3dAeMfg>jZkNkYbM`]JP>fI#OK[[JjlFfLgM\m`=e=eWf`AXZnjL78`"
    A$ = A$ + "ZYSnk_gK^k>gb0EcW]cnV>O\o^fjf6#na`N_iNTcfD_3\]JdV5fCM^cfd>jT"
    A$ = A$ + "1KK]N:C_gn7HKm^eNkYS^[[[N60]XdiV70=ZDKWgh>kjVjXk>kIcMFifjMWk"
    A$ = A$ + "XcIdOWgDgm^e^fL7MgC_3<MZaK]o>jNPnLW^Y1VfU\^F9aQE#WdZNb:LWDdN"
    A$ = A$ + "BKfCFYmTEK?iD\WLbfCFUmTBj9[d2Wf\M_TM8:IQLA;LJcn=]IKCKFhDbRZ["
    A$ = A$ + "dfhRFdX=g9fA_=;nDdMRmWFYM8Je=XF8gV5EGY[aF8_B;n\Bglb2iEJkN9g4"
    A$ = A$ + "d1WE:ZKm]Y^kMcg#e8_T>FYLEgKA>fo0je3\S]eAHWEbo]j`KP?FcFjZk^k<"
    A$ = A$ + "LCmN;CG>[OTSGm0mgE7KMWm97kG_>\7iHgKYZ=gEoK^k>[Y[N^Y=]C\C3#WY"
    A$ = A$ + "Og>fNGXlH7K^CD0jVLG4\SMfCEKYc]SR#YXoDi>j37lDK^kM^Y:gFWMP3AHG"
    A$ = A$ + "M\mNk9\f]_cMX2EM>C_cAIOa=ehScNbHoGSl3nVg6Mdooo4noEAM%%h1"
    btemp$ = ""
    For i& = 1 To Len(A$) Step 4: B$ = Mid$(A$, i&, 4)
        If InStr(1, B$, "%") Then
            For C% = 1 To Len(B$): F$ = Mid$(B$, C%, 1)
                If F$ <> "%" Then C$ = C$ + F$
            Next: B$ = C$: End If: For j = 1 To Len(B$)
            If Mid$(B$, j, 1) = "#" Then
        Mid$(B$, j) = "@": End If: Next
        For t% = Len(B$) To 1 Step -1
            B& = B& * 64 + Asc(Mid$(B$, t%)) - 48
            Next: X$ = "": For t% = 1 To Len(B$) - 1
            X$ = X$ + Chr$(B& And 255): B& = B& \ 256
    Next: btemp$ = btemp$ + X$: Next
    BASFILE$ = _Inflate$(btemp$, 25152): btemp$ = ""
    _Font _LoadFont(BASFILE$, size, "memory, monospace")
End Sub
Sub savegame
    Open PlayerName$ + ".wpl" For Output As #1
    Write #1, PlayerName$
    Write #1, PlayerHits&
    Write #1, PlayerMagic&
    Write #1, PlayerStrength&
    Write #1, PlayerGold&
    Write #1, PlayerWeapon%
    Write #1, PlayerExperience&
    Write #1, PlayerShield%
    Write #1, PlayerArmor%
    Close #1
    Print
    Print "Game Saved"
    Print

End Sub
Sub loadgame (PN$)
    Print "Loading "; PN$;
    Open PN$ + ".wpl" For Input As #1
    Input #1, PlayerName$
    _Delay .1: Print ".";
    Input #1, PlayerHits&
    _Delay .1: Print ".";
    Input #1, PlayerMagic&
    _Delay .1: Print ".";
    Input #1, PlayerStrength&
    _Delay .1: Print ".";
    Input #1, PlayerGold&
    _Delay .1: Print ".";
    Input #1, PlayerWeapon%
    _Delay .1: Print ".";
    Input #1, PlayerExperience&
    _Delay .1: Print ".";
    Input #1, PlayerShield%
    _Delay .1: Print ".";
    Input #1, PlayerArmor%
    _Delay .1: Print ".";
    Close #1
    _Delay .1: Print "LOADED";
    _Delay .5
End Sub
Reply


Messages In This Thread
RE: Modified Qbasic game THEWOODS.BAS by Kurt Kuzba - by James D Jarvis - 09-20-2023, 01:30 AM



Users browsing this thread: 1 Guest(s)