Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Modified Qbasic game THEWOODS.BAS by Kurt Kuzba
#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


Messages In This Thread
RE: Modified Qbasic game THEWOODS.BAS by Kurt Kuzba - by Dav - 09-20-2023, 12:13 PM



Users browsing this thread: 1 Guest(s)