Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Modified Qbasic game THEWOODS.BAS by Kurt Kuzba
#1
One of the Qbasic gurus in the '90's that I learned the most from was Kurt Kuzba. I saved everything he shared.  Kurt was a great programmer and generous with his Qbasic knowledge.  Back in 1997 he posted a text game on the FidoNet QUIK_BAS Echo called THEWOODS.BAS.   It's a bare-bones text adventure that is great for learning and expanding on.  I thought I'd update it to QB64 and see where it could go.  More monsters and side adventures walking the woods would be a good addition, and another goal than reaching 2000 experience points, like defeating a dragon, would be better ending.

Here's where it is so far.  It includes a built-in font with it so the text can easy to read on any desktop size.

- Dav

Code: (Select All)
'=====================
'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 FidoNet 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

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

Randomize Timer

dh = Int(_DesktopHeight * .80)
Screen _NewImage(dh * 1.25, dh, 32)
BIGFONT Int(_Height / 21)
Width 52, 21

'======
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)
Input "  Your name? ", plyr$

If plyr$ > "" Then

    PlayerName$ = plyr$
    PlayerHits& = 30
    PlayerMagic& = 0
    PlayerStrength& = 0
    PlayerGold& = 100
    PlayerWeapon% = 0
    PlayerExperience& = 0

    menu% = 1 'show full menu

    YourStats 'Show you stats at the beginning of the game

    'the main game play loop

    Do
        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 a weapon."
                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 Exit Do
                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

End If

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 " Do you want to (B)uy or (S)ell?"
        Print
        Print " [B/S or ENTER to leave] "

        Print
        Select Case WaitKey%(" SBQ" + Chr$(13))
            Case 2
                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
                Print "--------------==**[  PRICES  ]**==-----------------"
                Print
                For t% = 1 To 8: Print Str$(t%); "->";
                    Print " "; Left$(Str$(price(t%)) + "    ", 6);
                    Print " "; Weapon$(t%)
                Next
                Print
                Print " You have"; PlayerGold&; "gold.  Which one you want (1-8)?"
                Print " (Hit ENTER to buy nothing)"

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

                k% = k% - 1
                If k% < 9 Then
                    money% = k% * 90
                    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
Loop: End Sub

Sub FightMonster
    level% = GetLevel%(PlayerExperience&)
    MakeEnemy level%
    EnemyName$ = RTrim$(EnemyName$)
    Color _RGB(255, 255, 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!            (Y)our Stats "
            Print " (R)un Away          (V)iew Enemy "
            Print " (S)urrender"
        End If
        Print
        Color _RGB(255, 200, 200)
        Print PlayerHits&;
        Print PlayerName$
        Print EnemyHits&;
        Print EnemyName$
        Print
        Color _RGB(255, 255, 255)
        Print " [F/R/S/Y/V/?] "

        level% = GetLevel%(PlayerExperience&)

        k% = WaitKey%(" FRSYV?")

        Select Case k%
            Case 2
                PlayerAtt! = 1 + PlayerWeapon%
                PlayerAtt! = PlayerAtt! * (1 + (PlayerStrength& / 10))
                PlayerAtt! = 5 + (Rnd * PlayerAtt! * 5 * level%)
                PlayerDef! = 1 + (PlayerStrength& / 100)
                EnemyAtt! = EnemyWeapon% * (1 + (EnemyStrength& / 10))
                EnemyDef! = 1 + (EnemyStrength& / 100)

                If Rnd > .5 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 "---------------------------------------------------"
                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)
                Print
                Print "---------------------------------------------------"
                Print " You manage to escape, but all your strength"
                Print " and magic are lost, and some experience points."
                Print "---------------------------------------------------"
                PlayerMagic& = 0
                PlayerStrength& = 0
                PlayerExperience& = PlayerExperience& * .9
                menu% = 1
                Color _RGB(255, 255, 255)
                Exit Sub
            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 3) As String
    ReDim EP(1 To 3) As String

    EP(1) = "Ferocious "
    EP(2) = "Snarling "
    EP(3) = "Evil "

    Select Case l%
        Case 1
            EN(1) = "Squirrel"
            EN(2) = "Bunny"
            EN(3) = "Hedgehog"
        Case 2
            EN(1) = "Bear"
            EN(2) = "Boar"
            EN(3) = "Troll"
        Case 3
            EN(1) = "Demon"
            EN(2) = "Dragon"
            EN(3) = "Wizard"
    End Select

    EnemyName$ = EP(l%) + EN(Rnd * 2 + 1)
    EnemyHits& = ((Rnd * 10 + 20) * l%)
    EnemyMagic& = ((Rnd * 10 + 10) * l%)
    EnemyStrength& = ((Rnd * 10 + 10) * l%)
    EnemyGold& = ((Rnd * 100 + 100) * l%)
    EnemyWeapon% = (Rnd * 2 + l% * 2)
    EnemyExperience& = ((Rnd * 10 + 10) * l%)

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 " 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
    Select Case (Rnd * 99)
        Case 0 To 9
            rndgold = Int(Rnd * 15) + 2
            PlayerGold& = PlayerGold& + rndgold
            Color _RGB(255, 255, 0)
            Print: Print " Lucky you! You found"; rndgold; "pieces of gold!"
            Color _RGB(255, 255, 255)
        Case 10 To 19
            PlayerMagic& = PlayerMagic& + 1
            Color _RGB(100, 255, 100)
            Print: Print " A nice faerie gives you one magic point!"
            Color _RGB(255, 255, 255)
        Case 20 To 29: m% = 1 + Rnd * 9
            PlayerHits& = PlayerHits& + m%
            Color _RGB(100, 200, 255)
            Print: Print " A friendly Elf heals you"; m%; "hit point";
            If m% = 1 Then Print "!": Else Print "s!"
            Color _RGB(255, 255, 255)
        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 Stick"
        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 Longsword"
        Case 8: Weapon$ = "A Two-Handed Sword"
    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)
            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)
                        Print: Print " Lucky you! You found"; rndgold; "pieces of gold!"
                        Color _RGB(255, 255, 255)
                    Case 10 To 19 'faerie magic
                        PlayerMagic& = PlayerMagic& + 1
                        Color _RGB(100, 255, 100)
                        Print: Print " A nice faerie gives you one magic point!"
                        Color _RGB(255, 255, 255)
                    Case 20 To 29 'elf heals you
                        m% = 1 + Rnd * 9
                        PlayerHits& = PlayerHits& + m%
                        Color _RGB(100, 200, 255)
                        Print: Print " A friendly Elf heals you"; m%; "hit point";
                        If m% = 1 Then Print "!": Else Print "s!"
                        Color _RGB(255, 255, 255)
                    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
        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\:BXJY6bD4afRU:D\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$ + ":D08RWSo0\^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<9:D11KjD\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$ + "77G:DXHLa38KZ^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\MW4L5:P;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$ + "_:DNef=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[mPakI:Pf?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

Find my programs here in Dav's QB64 Corner
Reply
#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
#3
Nice additions, James!   Your posted code won't run as is, the forum messes up the encoded file data in the BIGFONT SUB unless you post the scource in the old CODE tag. I replaced the SUB with a fresh version and it ran OK.

I tweaked yours a little bit to fix a menu issue.  The armory menu choices were not all being polled so I raised the k% value to catch those extra items.  I also compacted the Player Stats display so it won't scroll off the screen.  I commented out the teal color when enetering the woods, my laptop display isn't the best and I couldn't read the screen as well in that color here.

- Dav

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
'Dav modified James version above to select all menu choices in armory (IF k%...), and...
'  re-organized player STATS a little so they show without scrolling off screen. 9/20/2023

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% < 14 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% < 15 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 ', _RGB(32, 32, 128) 'background color
    COLOR _RGB(255, 255, 0)
    PRINT "------------==**[  YOUR STATS  ]**==---------------"
    PRINT " Name      : "; PlayerName$
    PRINT " Hits      :"; PlayerHits&;
    LOCATE , 33: PRINT " Magic      :"; PlayerMagic&
    PRINT " Strength  :"; PlayerStrength&;
    LOCATE , 33: 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 ', _RGB(32, 32, 128) 'background color
    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\:BXJY6bD4afRU:D\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$ + ":D08RWSo0\^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<9:D11KjD\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$ + "77G:DXHLa38KZ^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\MW4L5:P;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$ + "_:DNef=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[mPakI:Pf?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

Find my programs here in Dav's QB64 Corner
Reply
#4
(09-20-2023, 12:13 PM)Dav Wrote: Nice additions, James!   Your posted code won't run as is, the forum messes up the encoded file data in the BIGFONT SUB unless you post the source in the old CODE tag. I replaced the SUB with a fresh version and it ran OK.

I tweaked yours a little bit to fix a menu issue.  The armory menu choices were not all being polled so I raised the k% value to catch those extra items.  I also compacted the Player Stats display so it won't scroll off the screen.  I commented out the teal color when entering the woods, my laptop display isn't the best and I couldn't read the screen as well in that color here.

- Dav

Thanks. I hadn't noticed that was an issue in regards to the code block.  Oh yeah the colors needed work even on my end "work in progress" after-all. Oops, was the armor still not loading right? Sorry.
Reply




Users browsing this thread: 5 Guest(s)