Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Collection of all my old, mostly rubbish QB games. Not TG
#1
greetings

I read somehwere about someone saying there were no new qbasic games, Ive also seen a few noobs here, but not enough for my taste, since all you veterans make me look and feel real small. :oops:

anyway, I thought Id post all my old games here, 1 a day perhaps.
Over about 4 years, since I rememeber reading DC magazines when programming QB, Ive made about 60+ files.
Most incomplete.
Anyway, for a bit of light entertainment, look apon my very early attempts, and laugh at their dire badness.

If you hate my idea of posting all my older stuff, please say so, and Ill stop. I just thought it might help really new green guys who havent had much QB experience, and it might make for entertainment for the vets. Heck, feel free to redo and make your own imrpovements. These source codes are all the ones I feel Ill never actually be able to do anything worthwhile with. Hence TG is being left out.

My first ever game. Johns dungeon. I quite literally started making this on the first day I got QB. First thing i did was check help, and stumbled apon the input section. From there, a simple text game grew, within a week it was complete. No cheating please, dont read ahead.

Code:
fresh:
DECLARE SUB center (Row%, text$)
DECLARE SUB SparklePause ()
DECLARE SUB Intro ()
DECLARE SUB Ending ()
Intro

ClearKeyLocks:    'sets caps lock to on
    DEF SEG = 0
    KeyFlags = PEEK(1047)
    POKE 1047, &H40
    DEF SEG


RANDOMIZE TIMER                'starts the first random codes
    x% = INT(RND * 9999)
    RANDOMIZE TIMER
    y% = INT(RND * 999)

CLS
COLOR 15
    OPEN "LIST" FOR OUTPUT AS #1
        INPUT "WHAT IS YOUR NAME? : ", Name$  'Read entries from the keyboard.
        WRITE #1, Name$
    CLOSE #1
   OPEN "LIST" FOR INPUT AS #1
   CLS
    PRINT "NAME AND TYPE OF PLAYER WHO IS IN TODAYS FORTRESS"
    DO WHILE NOT EOF(1)
        LINE INPUT #1, REC$   'Read entries from the file.
   PRINT "NAME: "; REC$          'Print the entries on the screen."
   LOOP
    CLOSE #1
    OPEN "LIST" FOR OUTPUT AS #1
        INPUT " TYPE OF PLAYER: ", ARE$
        WRITE #1, Type$
    CLOSE #1
    'Echo the file back.
    OPEN "LIST" FOR INPUT AS #1
    DO WHILE NOT EOF(1)
        LINE INPUT #1, REC$   'Read entries from the file.
   LOOP
    CLOSE #1

scale$ = "CDDBAAECDFGCDE"
    PLAY "L15"
    FOR I% = 1 TO 1
        PLAY "O" + STR$(I%)
        PLAY "X" + VARPTR$(scale$)
    NEXT I%

SCREEN 0
COLOR 6
PRINT "THIS IS JOHN'S FORTRESS. INSIDE IT THERE IS A TREASURE. WILL  "; Name$; "  FIND IT?"
PRINT "OR WILL "; Name$; " DIE TRYING? READ THE INSTRUCTIONS AND  DECIDE WHERE TO GO."
PRINT "TO TRAVERSE JOHN'S FORTRESS TYPE A DIRECTION THEN PRESS ENTER."
PRINT "THERE ARE MANY DEADLY TRAPS TO AVOID.   MWA HA HA HA!"
QWERT:
SCREEN 0
COLOR 15
PRINT ""
PRINT "YOU ARE STANDING AT SOME CROSSROADS IN A LONG CORRIDOR, WITH HIGH STONE WALLS.  BEYOND THE WALLS YOU CAN SEE "
COLOR 10
PRINT "TALL GREEN TREES.  /^\ /^\ /^\ "  'attempt at trees
PRINT "                   ÝÝÝ ÝÝÝ ÝÝÝ "
PRINT ""
COLOR 14
PRINT "WEST or"
PRINT "EAST or"
PRINT "NORTH"

DO
INPUT "", I$                                    'reads text input
IF I$ = "HELLO" XOR I$ = "HI" THEN
        PRINT "          HELLO  "; Name$; " :-)"
ELSEIF I$ = "WEST" XOR I$ = "W" THEN
CLS
PRINT "THE CREATURE THAT LAY IN THE SHADOWS HAS MADE YOU HIS EVENING MEAL"
GOSUB die
ELSEIF I$ = "EAST" XOR I$ = "E" THEN
GOSUB after

ELSEIF I$ = "SOUTH" XOR I$ = "S" XOR I$ = "EXIT" THEN
CLS
SCREEN 2
LINE (200, 50)-(40, 100), , B
LINE (120, 50)-(120, 100)
LINE (114, 75)-(117, 75)
LINE (123, 75)-(126, 75)
        PRINT "TO THE SOUTH IS THE EXIT."
        PRINT "UNFORTUNATELY IT'S LOCKED."
ELSEIF I$ = "NORTH" XOR I$ = "N" THEN
CLS
SCREEN 0
COLOR 14
        PRINT "AFTER WALKING FOR A LONG TIME YOU       REALISE YOU HAVE GONE IN A LONG CIRCLE  AND ARE  BACK AT THE START"
COLOR 10
PRINT "                       CIR "
PRINT "                      0   0"
PRINT "                       CLE "
GOSUB QWERT
ELSE PRINT "TYPE A DIRECTION FIRST, THEN PUSH ENTER."
END IF
LOOP UNTIL I$ = "EXITQ"
GOSUB fini


after:
CLS
SCREEN 1
PRINT "YOU REACH TWO PAIRS OF STAIRS, ONE GOINGUP AND THE OTHER GOING DOWN."
PRINT "DO YOU WANT TO GO UP,  DOWN OR BACK?"
PRINT ""
PRINT "UP or"
PRINT "DOWN or"
PRINT "BACK"
LINE (90, 95)-(90, 90)
LINE (90, 90)-(100, 90)
LINE (100, 90)-(100, 85)
LINE (100, 85)-(110, 85)
LINE (110, 85)-(110, 80)
LINE (110, 80)-(120, 80)
LINE (120, 80)-(120, 75)
LINE (120, 75)-(130, 75)
LINE (130, 75)-(130, 70)
LINE (130, 70)-(170, 70)
LINE (80, 35)-(200, 35)
    scale$ = "ABCD"
    PLAY "L6"
    FOR I% = 0 TO 1
        PLAY "O" + STR$(I%)
        PLAY "X" + VARPTR$(scale$)
    NEXT I%

DO
INPUT "", I$
IF I$ = "UP" XOR I$ = "U" THEN
GOSUB neww

ELSEIF I$ = "DOWN" XOR I$ = "D" THEN
CLS
PRINT "A LOOSE STONE SENDS YOU HURTLING DOWN   THE STEPS THROUGH THE DARKNESS INTO THE GRINDING MACHINERY OF THE ENGINE ROOM."
GOSUB die
ELSEIF I$ = "EXIT" XOR I$ = "BACK" XOR I$ = "B" THEN
GOSUB QWERT
ELSE PRINT "THINK CAREFULLY BEFORE YOU TYPE         SOMETHING, THAT DOESN'T MAKE ANY SENSE."
END IF
LOOP UNTIL I$ = "EXITQ"
GOSUB fini

bck: INPUT "", I$
IF I$ = "BACK" THEN
GOSUB after
ELSEIF I$ = "EXITQ" THEN
GOSUB fini
ELSE GOSUB after
END IF

neww:
CLS
COLOR 0
SCREEN 1
  PRINT "YOU COME TO A LANDING ON THE 3rd FLOOR. THERE ARE MORE STAIRS LEADING UP, AND A DOOR TO THE LEFT AND RIGHT. THERE IS    ALSO A SIGN."
  PRINT ""
  PRINT "UP or"
  PRINT "LEFT or"
  PRINT "RIGHT"
LINE (100, 95)-(100, 95), , B
LINE (100, 95)-(105, 90), , B
LINE (100, 90)-(115, 90), , B
LINE (110, 90)-(115, 85), , B
LINE (110, 85)-(125, 85), , B
LINE (120, 85)-(125, 80), , B
LINE (120, 80)-(135, 80), , B
LINE (130, 80)-(135, 75), , B
LINE (130, 75)-(145, 75), , B
LINE (140, 75)-(145, 70), , B
LINE (140, 70)-(190, 70), , B
LINE (80, 95)-(200, 95), , B
LINE (80, 80)-(96, 70), , B
LINE (88, 95)-(88, 80)
  
    scale$ = "DCBA"
    PLAY "L6"
    FOR I% = 0 TO 1
        PLAY "O" + STR$(I%)
        PLAY "X" + VARPTR$(scale$)
    NEXT I%
DO
INPUT "", I$
IF I$ = "LEFT" XOR I$ = "L" THEN
GOSUB door
ELSEIF I$ = "RIGHT" XOR I$ = "R" THEN
GOSUB dore
ELSEIF I$ = "EXITQ" THEN
GOSUB fini
ELSEIF I$ = "EXIT" XOR I$ = "BACK" XOR I$ = "B" XOR I$ = "DOWN" XOR I$ = "D" THEN GOSUB after
ELSEIF I$ = "UP" XOR I$ = "U" THEN GOSUB stair
ELSEIF I$ = "READ SIGN" XOR I$ = "CHECK SIGN" XOR I$ = "LOOK AT SIGN" XOR I$ = "INVESTIGATE SIGN" XOR I$ = "SIGN" XOR I$ = "SEE SIGN" THEN
GOSUB sign
ELSE PRINT "THERE MIGHT BE SOME IMPORTANT WRITING ON THE SIGN."
END IF
LOOP UNTIL I$ = "EXITQ"

stair:
CLS
SCREEN 1
PRINT "AT THE TOP OF THE STAIRS YOU COME TO A  FIRE BREATHING CYBORG DRAGON. YOU DON'T HAVE ANY WEAPONS OR SHIELDS AS IT'S     LAUNDRY DAY. THIS IS AN EMERGENCY, IT'S DO  OR DIE, WHAT IS THE H20 CODE, HURRY OR HE WILL KILL YOU!"
PRINT "                 0"
PRINT "       < < < < <"
LINE (120, 170)-(270, 170)
LINE (270, 170)-(290, 130)
LINE (290, 130)-(260, 150)
LINE (260, 150)-(190, 110)
LINE (190, 110)-(160, 130)
LINE (160, 130)-(145, 50)
LINE (145, 50)-(115, 50)
LINE (115, 50)-(135, 60)
LINE (135, 60)-(115, 70)
LINE (115, 70)-(138, 75)
LINE (138, 75)-(120, 170)
COLOR 8
    scale$ = "CABCCBAC"
    PLAY "L10"
    FOR I% = 0 TO 1
        PLAY "O" + STR$(I%)
        PLAY "X" + VARPTR$(scale$)
    NEXT I%

DO
INPUT "", I%
IF I% = y% THEN
GOSUB dragon
ELSEIF I% = entr THEN
CLS
PRINT "THE DEMON BEAST RIPS YOU IN TWO AND YOUR REMAINS ARE BURNED BY HIS FLAME."
GOSUB die
ELSE
CLS
PRINT "THE DEMON BEAST RIPS YOU IN TWO AND YOURREMAINS ARE BURNED BY HIS FLAME."
GOSUB die
END IF
LOOP UNTIL I$ = "EXITQ"
GOSUB fini

dragon:
CLS
SCREEN 1
PRINT "NICE FIGHTING "; Name$; "THE WATER HAS QUENCHED THE CYBORGS FIRE AND HE IS ASLEEP, FOR THE MOMENT. THE   DRAGON IS HIDING SOMETHING. FIND IT     BEFORE HE WAKES UP!"
PRINT ""
PRINT "                 _"
LINE (120, 170)-(270, 170)
LINE (270, 170)-(290, 130)
LINE (290, 130)-(260, 150)
LINE (260, 150)-(190, 110)
LINE (190, 110)-(160, 130)
LINE (160, 130)-(145, 50)
LINE (145, 50)-(115, 50)
LINE (115, 50)-(115, 70)
LINE (115, 70)-(138, 75)
LINE (138, 75)-(120, 170)
COLOR 0
    scale$ = "DDBABA DDBABABED"
    PLAY "L10"
    FOR I% = 2 TO 2
        PLAY "O" + STR$(I%)
        PLAY "X" + VARPTR$(scale$)
    NEXT I%

DO
INPUT "", I$
IF I$ = "EXAMINE DRAGON" XOR I$ = "EXAMINE ROOM" XOR I$ = "SEARCH" XOR I$ = "SEARCH DRAGON" XOR I$ = "SEARCH ROOM" XOR I$ = "CHECK ROOM" XOR I$ = "LOOK AROUND ROOM" THEN
GOSUB note
ELSE PRINT "TRY TO FIND WHAT HE'S HIDING. IT'S      PROBABLY IMPORTANT!"
END IF
LOOP UNTIL I$ = "EXITQ"
GOSUB fini

note:
CLS
SCREEN 0
COLOR 15
PRINT "EXCELLENT! YOU FOUND WHAT HE WAS HIDING.IT'S AN OLD SECTION OF A BOOK. IT SAYS  -DIARY OF THE FORTRESS MASTER- ON THE   FRONT"
PRINT "THERE ARE SOME FADED NUMBERS ON THE BACK"
PRINT ""
    RANDOMIZE TIMER
    x% = INT(RND * 9999)
    PRINT "THE HIDDEN BOOK SAYS THE PASSCODE TO THEDOOR IS "; x%
PRINT "NOW YOU CAN UNLOCK THAT DOOR ON THE 3rd FLOOR!"
DO
INPUT "ANY KEY", I$
IF I$ = "" THEN
GOSUB neww
ELSE GOSUB neww
END IF
LOOP

door:
CLS
SCREEN 1
PRINT "THE DOOR IS LOCKED, THERE IS A KEY PANELON IT, WITH 4 NUMBERS. ARE YOU GOING TO ENTER A NUMBER? "; Name$; "CAN SEE A SPIKE TRAP ON THE CEILING. AS A "; ARE$; ", "; Name$; "KNOWS THAT THE WRONG CODE WILL MEAN     DEATH!"
PRINT "ENTER A CODE? TO FIND IT SEARCH THE FORTRESS."
PRINT ""
PRINT "YES or"
PRINT "NO"
LINE (100, 100)-(150, 150), , B
LINE (130, 127)-(142, 120), , B
LINE (145, 125)-(148, 127)
LINE (100, 115)-(103, 115)
LINE (100, 135)-(103, 135)
COLOR 0
DO
INPUT "", I$
IF I$ = "EXIT" XOR I$ = "BACK" XOR I$ = "B" XOR I$ = "NO" XOR I$ = "N" THEN
GOSUB neww
ELSEIF I$ = "YES" XOR I$ = "Y" THEN
GOSUB CODE
ELSE PRINT "IT'S A SIMPLE QUESTION. THE ANSWER IS   EITHER YES OR NO!"
END IF
LOOP UNTIL I$ = "EXITQ"
GOSUB fini

CODE:
CLS
SCREEN 1
PRINT "THERE ARE 4 PANELS TO INPUT THE CODE,   WHAT ARE YOU GOING TO INPUT? IT'S TOO   LATE TO GO BACK. MAKE A MISTAKE NOW AND YOU WILL DIE!"
LINE (100, 40)-(280, 100), , B
LINE (120, 50)-(140, 90), , B
LINE (160, 50)-(180, 90), , B
LINE (200, 50)-(220, 90), , B
LINE (240, 50)-(260, 90), , B
DO
INPUT "CODE:", I%
IF I% = x% THEN
GOSUB gold
ELSEIF I% = entr THEN
CLS
PRINT "THE SPIKE ON THE CEILING FALLS AND      IMPALES YOU TO THE FLOOR. NOW YOUR BODY WILL REMAIN IMPALED THERE AS A REMINDER FOR ANY OTHER "; ARE$; "WHO WISHES TO DISCOVER THE SECRET OF THEFORTRESS."
GOSUB die
ELSE
CLS
PRINT "THE SPIKE ON THE CEILING FALLS AND      IMPALES YOU TO THE FLOOR. NOW YOUR BODY WILL REMAIN IMPALED THERE AS A REMINDER FOR ANY OTHER "; ARE$; "WHO WISHES TO DISCOVER THE SECRET OF THEFORTRESS."
GOSUB die
END IF
LOOP

gold:
        CLS
        SCREEN 1
        PRINT "CONGRATULATIONS!!! "; Name$; "YOU HAVE JUST COMPLETED                 -JOHN'S FORTRESS-!"
        PRINT "AFTER MUCH SEARCHING AND BATTLING, THE  BRAVE "; ARE$; "HAS SOLVED THE PUZZLES AND FOUND ALL THETREASURE! ENOUGH TO BUY A NEW FORTRESS  EVEN! TYPE EXITQ IF YOU EVER  WANT TO   LEAVE THIS GAME IN THE FUTURE. "
        PRINT "I HOPE YOU DIDN'T FIND IT TOO DIFFICULT TO COMPLETE, "; Name$
    CIRCLE (190, 100), 7
    CIRCLE STEP(25, 0), 7
    CIRCLE (240, 90), 7
    CIRCLE STEP(25, 0), 7
    CIRCLE (300, 95), 7
    CIRCLE STEP(0, 30), 7
    CIRCLE (250, 110), 7
    CIRCLE STEP(55, 0), 7
    LINE (100, 90)-(130, 110), , B
    LINE (100, 97)-(130, 97)
    LINE (110, 90)-(120, 97), , B
    LINE (115, 97)-(115, 94)
  
    LINE (150, 120)-(180, 140), , B
    LINE (150, 127)-(180, 127)
    LINE (160, 120)-(170, 127), , B
    LINE (165, 127)-(165, 124)
    scale$ = ""
    PLAY "L5"
    FOR I% = 2 TO 3
        PLAY "O" + STR$(I%)
        PLAY "X" + VARPTR$(scale$)
    NEXT I%
    Music$ = "MBT180o2P2P8L8GGGL2E-P24P8L8FFFL2D"
    PLAY Music$
    WHILE PLAY(0) > 5: WEND
    PLAY ON
    Music$ = "MBo3L8ED+ED+Eo2Bo3DCL2o2AMBo3L8ED+ED+Eo2Bo3DCL2o2A"
    PLAY Music$
    DO
INPUT "", I$
IF I$ = "" THEN
GOSUB credits
ELSE
GOSUB credits
END IF
LOOP

dore:
CLS
SCREEN 1
PRINT "AFTER WALKING DOWN A LONG DARK AND DIRTYCORRIDOR YOU REACH A DEAD END, THERE IS A WALL IN FRONT OF YOU. THERE IS A HOLE IN THE WALL. IT'S TOO DARK TO SEE WHAT'SIN THE HOLE THOUGH."
LINE (225, 75)-(275, 125), , B
LINE (235, 85)-(265, 115), , B
LINE (225, 75)-(235, 85)
LINE (275, 125)-(265, 115)
LINE (275, 75)-(265, 85)
LINE (225, 125)-(235, 115)
CIRCLE (250, 100), 40
CIRCLE STEP(0, 0), 1
COLOR 0
DO
INPUT "", I$
IF I$ = "EXIT" XOR I$ = "BACK" XOR I$ = "B" THEN
GOSUB neww
ELSEIF I$ = "CHECK OUT THE HOLE" XOR I$ = "LOOK IN THE HOLE" XOR I$ = "WALL" XOR I$ = "SEARCH HOLE" XOR I$ = "SEARCH IN HOLE" XOR I$ = "CHECK HOLE" XOR I$ = "LOOK IN HOLE" XOR I$ = "INVESTIGATE WALL" XOR I$ = "EXAMINE HOLE" XOR I$ = "CHECK WALL" XOR I$ = "HOLE" XOR I$ = "SEARCH WALL" XOR I$ = "INVESTIGATE HOLE" XOR I$ = "LOOK IN THE HOLE" XOR I$ = "SEARCH THE WALL" THEN
CLS
SCREEN 1
   PRINT "IN THE HOLE YOU FIND A BOTTLE OF WATER. THIS IS YOUR FIRST ITEM "; Name$; "WHAT WILL YOU DO NOW?"
CIRCLE (200, 110), 30
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT "                                 "
PRINT "                                 "
PRINT "                                 "
PRINT "                       water      "
CIRCLE STEP(0, 10), 30
LINE (170, 116)-(170, 280)
LINE (230, 116)-(230, 280)
COLOR 1
GOSUB Water

ELSE PRINT "THERE MIGHT BE SOMETHING IMPORTANT IN   THE HOLE. YOU BETTER CHECK IT OUT!"
END IF
LOOP UNTIL I$ = "EXITQ"
GOSUB fini

sign:
CLS
SCREEN 1
PRINT "THE SIGN SAYS:"
PRINT ""
PRINT "      BEWARE OF THE METAL"
PRINT "      DEMON FROM THE"
PRINT "      FUTURE, "
PRINT "      WHO RESIDES UP "
PRINT "      THESE STAIRS."
PRINT "      ONLY ONE WHO WIELDS"
PRINT "      3 SYMBOLS OF"
PRINT "      two H's and an O"
PRINT "      CAN DEFEAT THE BEAST."
PRINT "      THE CODE FOR THIS IS"
PRINT "      IN NUMERICAL FORM."
LINE (43, 11)-(215, 110), , B
LINE (110, 110)-(140, 150), , B
COLOR 0

DO
INPUT "", I$
IF I$ = "" THEN
GOSUB neww
ELSE GOSUB neww
END IF
LOOP UNTIL I$ = "EXITQ"
GOSUB fini

Water:
SCREEN 1
DO
INPUT "", I$
IF I$ = "READ BOTTLE" XOR I$ = "TAKE BOTTLE" XOR I$ = "SEE WATER" XOR I$ = "WATER" XOR I$ = "EXAMINE WATER" XOR I$ = "LOOK AT WATER" XOR I$ = "INVESTIGATE WATER" XOR I$ = "PICK UP WATER" XOR I$ = "TAKE WATER" XOR I$ = "DRINK WATER" XOR I$ = "CHECK WATER" XOR I$ = "EXAMINE THE WATER" XOR I$ = "EXAMINE THE BOTTLE" XOR I$ = "CHECK BOTTLE" XOR I$ = "BOTTLE" XOR I$ = "INVESTIGATE BOTTLE" XOR I$ = "INVESTIGATE THE BOTTLE" XOR I$ = "LOOK AT THE BOTTLE OF WATER" THEN
GOSUB water1
ELSE PRINT "THIS BOTTLE MIGHT HAVE SOME WRITING THAT CONTAINS AN IMPORTANT CLUE! TRY AGAIN."
END IF
LOOP UNTIL I$ = "EXITQ"
GOSUB fini

water1:
CLS
SCREEN 1
    RANDOMIZE TIMER
    y% = INT(RND * 999)
    PRINT "THE WATER HAS A CODE ON IT. THE CODE    SAYS: "; y%; "IN CASE OF EMERGENCIES USE THIS H2O     CODE. THE BOTTLE IS NOW DISCARDED."
PRINT "NOW GO AND EXPLORE THE REST OF THE 3rd FLOOR."
PRINT ""
PRINT "                 H    H"
PRINT "                    O"
CIRCLE (160, 70), 15
CIRCLE STEP(0, 0), 15
CIRCLE (140, 58), 10
CIRCLE STEP(40, 0), 10
COLOR 1
DO
INPUT "", I$
IF I$ = "" THEN
GOSUB neww
ELSEIF I$ = "EXITQ" THEN
GOSUB fini
ELSE
GOSUB neww
END IF
LOOP UNTIL I$ = "EXITQ"
GOSUB fini

die:
COLOR 4
  PRINT ""
  PRINT "THE "; ARE$; "MADE A WRONG MOVE AND DIED VERY         PAINFULLY! HA HA HA! PLEASE TRY AGAIN.",
    scale$ = "DDCEFED"
    PLAY "L2"
    FOR I% = 1 TO 1
        PLAY "O" + STR$(I%)
        PLAY "X" + VARPTR$(scale$)
    NEXT I%
DO
INPUT "ANY KEY", I$
IF I$ = "" THEN
GOSUB fresh
ELSE GOSUB fresh
END IF
LOOP UNTIL I$ = "EXITQ"
GOSUB fini

fini:
CLS
SCREEN 1
LINE (110, 70)-(190, 120), , B
LINE (235, 40)-(63, 149), , B
LINE (282, 10)-(20, 178), , B
LINE (0, 0)-(318, 200)
LINE (296, 0)-(0, 191)
COLOR 4
BEEP
   PRINT "THIS IS ONLY JUST TURNING INTO A BLOOD  BATH, WHY DO YOU WANT TO LEAVE?"
   PRINT "IS THE "; ARE$; " GETTING SCARED?"
DO
INPUT "", I$
IF I$ = "" THEN
GOSUB credits
ELSE
GOSUB credits
END IF
LOOP

credits:
Ending

END

DEFINT A-Z
'Center:
'  Centers text on given row
SUB center (Row, text$)
    LOCATE Row, 41 - LEN(text$) / 2
    PRINT text$;

END SUB

SUB Ending
    SCREEN 0
    WIDTH 80, 25

CLS
COLOR 15
center 2, "---CREDITS---"
center 4, "THANK YOU FOR PLAYING -JOHN'S FORTRESS- I HOPE YOU ENJOYED IT."
center 5, "PROGRAMED BY JOHN.W.S"
center 6, "CONCEPT   BY JOHN.W.S"
center 7, "GRAPHICS  BY JOHN.W.S"
center 8, "                            MUSIC BY JOHN.W.S, HELPED BY ANDRZEJ.C.S           "
center 10, "SPECIAL THANKS TO ANDRZEJ.C.S"
center 11, "                  SANDRA.M.G.S"
center 12, "              EOIN.M "
center 13, "                          AND MICROSOFT FOR MAKING     "
center 14, "                    THIS POSSIBLE! "

    SparklePause

END SUB

'Intro:
'  Displays game introduction
SUB Intro
    SCREEN 0
    WIDTH 80, 25
    COLOR 15, 0
    CLS
SCREEN 0
COLOR 4
center 3, "OOOOOO   OOOO   O    O  O    O  '   OOO "
center 4, "   O    O    O  O    O  OO   O     O    "
center 5, "   O    O    O  OOOOOO  O O  O       O  "
center 6, "   O    O    O  O    O  O  O O         O"
center 7, "OOO      OOOO   O    O  O   OO      OOO "
center 8, ""
center 9, "OOOOO   OOOO   OOOOO    OOOOO  OOOOO    OOOOO   OOOO    OOOO"
center 10, "O      O    O  O    O     O    O    O   O      O       O    "
center 11, "OOOO   O    O  OOOOO      O    OOOOO    OOO      O       O  "
center 12, "O      O    O  O   O      O    O   O    O          O       O"
center 13, "O       OOOO   O    O     O    O    O   OOOOO  OOOO    OOOO "
COLOR 15
center 16, "WRITTEN IN 3 WEEKS"
center 17, "IF YOU GET TOO STUCK, PRESS ENTER FOR A SIMPLE CLUE"
center 24, "Press any key to continue"

    PLAY "MBT160O1L8CDEDCDL4ECC"
    SparklePause

END SUB

'SparklePause:
'  Creates flashing border for intro screen
SUB SparklePause

    COLOR 4, 0
    a$ = "#    #    #    #    #    #    #    #    #    #    #    #    #    #    #    #    #    "
    WHILE INKEY$ <> "": WEND 'Clear keyboard buffer

    WHILE INKEY$ = ""
        FOR a = 1 TO 5
            LOCATE 1, 1                             'print horizontal sparkles
            PRINT MID$(a$, a, 80);
            LOCATE 22, 1
            PRINT MID$(a$, 6 - a, 80);

            FOR B = 2 TO 21                         'Print Vertical sparkles
                c = (a + B) MOD 5
                IF c = 1 THEN
                    LOCATE B, 80
                    PRINT "#";
                    LOCATE 23 - B, 1
                    PRINT "#";
                ELSE
                    LOCATE B, 80
                    PRINT " ";
                    LOCATE 23 - B, 1
                    PRINT " ";
                END IF
            NEXT B
        NEXT a
    WEND

END SUB

not too bad after only learning QB for a few hours, and it was my first attempt. Great fun wasting away precious computer class time. and to think, they all thought I was mad................. I probably am actually.
You can't get a job in the games industry, until you've had at least 2 years experience in the industry, which wont happen until you get a job in the industry. " - random recruitment agency
Reply
#2
that was... different. but cool too
[Image: sig.php]
Back by popular demand!
I will byte and nibble you bit by bit until nothing remains but crumbs.
Reply
#3
made it 4-5 years ago, my first game.

you dont have to say its cool if it isnt.
Feel free to criticise these if you want. the only remotely good thing I like about it, is my use of randomisation codes. different everytime, sort of.

anyway, unless you really want another one now, Ill post the source of my second game tomorow, might put my kamikaze game up.
its a little bit in bad taste, but strangely enjoyable. if anyone is easily offended though, Ill hold it back and put something else up.

where are all the greenbacks on this site? mostly I see hardcore programmers.
<thinks back to amazing graphics demos that were displayed>
You can't get a job in the games industry, until you've had at least 2 years experience in the industry, which wont happen until you get a job in the industry. " - random recruitment agency
Reply
#4
i think it IS cool
[Image: sig.php]
Back by popular demand!
I will byte and nibble you bit by bit until nothing remains but crumbs.
Reply
#5
well then, Ill be sure to soon post my:

original Tempest clone (really bad music)
Metal gear guided missile game
Sprite rotating 360 degree car avoiding chopper game
kamikaze games (1 with graphics, 1 in ascii)
Bi-Plane based space war clone (worst spahgetti code EVER)
Atari 2600 Adventure sequel
AI hunting demo
ASCII castle game (incomplete)
Dice game
Space rocks game
space physics engine in ASCII
Platform game (my first game to implement music)
...... and many others

Ill also include my friends really excellent shoot em up
He used complex data commands, and made it really good. Ill leave that till last, he always did make my stuff look bad. :wink:

Sadly, my most ambitious project, an AKIRA (as in the anime) game in the vein of spyhunter, I deleted after a long night of frustration. I had added a gif loader and wav player, and bits were arguing with each other, so I went a bit nuts and deleted every copy I had of it. Wasnt too bad, went and put collision in for the enemies, so they could kill each other, and did other stuff, but it just got to me.

Otherwise, all my early games learning tuts for me, I would build a game around a new technique Id learnt. Playing music, doing sprite rotation, etc.
Which is why it "might" help really new guys.

erm, glad you liked them whitetiger, even if they are a bit musty.
You can't get a job in the games industry, until you've had at least 2 years experience in the industry, which wont happen until you get a job in the industry. " - random recruitment agency
Reply
#6
Heh. It's a bit basic. Tongue

Some parts (menu, music, etc.) are ripped straight from NIBBLES.BAS and the QB help files for the music. Smile
url=http://www.spreadfirefox.com/?q=affiliates&id=60131&t=79][Image: safer.gif][/url]
END OF LINE.
Reply
#7
I must admit, I was a bit skeptical when I saw a DEF SEG in there, and you'd said it was your first proggie Tongue
Reply
#8
I made a dice game too! Post your dice game!
Peace cannot be obtained without war. Why? If there is already peace, it is unnecessary for war. If there is no peace, there is already war."

Visit www.neobasic.net to see rubbish in all its finest.
Reply
#9
ok, if you insist.

this was my second program that I made after the text adventure.
Very perceptive of you all, I basically ripped all the nifty bits i could find, until I had learned some of the stuff myself. Dont worry, as we go along, and take a trip down my memory lane, youll find less ripped stuff, and more of my own work.

Though its unlikely to get any more complex. Tongue

Code:
DECLARE SUB SPARKLEPAUSE ()
DECLARE SUB Ending ()
RANDOMIZE TIMER
ClearKeyLocks:              'sets caps lock to on
    DEF SEG = 0
    KeyFlags = PEEK(1047)
    POKE 1047, &H40
    DEF SEG

CLS
COLOR 26
LOCATE 9, 30
PRINT "$ $ $ $ $ $ $ $ $ $ $ $ $"
LOCATE 10, 30
PRINT "$                       $"
LOCATE 11, 30
PRINT "$ $ $ $ $ $ $ $ $ $ $ $ $"
COLOR 15
LOCATE 10, 31
PRINT "   LUCKY   DICE  !!!"
SLEEP 3

CLS
SCREEN 12
MNY% = 100
HIGH$ = "OFF"
LOW$ = "OFF"
LOCATE 1, 5
PRINT "3 DICE WILL BE ROLLED. IF THE TOTAL IS 11 OR MORE, IT IS HIGH. IF THE TOTAL IS  10 OR LESS, IT IS LOW. YOU START OFF WITH $100. DO YOU WANT TO BET HIGH OR LOW?"
LOCATE 3, 5
PRINT "MINIMUM BET IS $5. IF YOU HAVE LESS THAN $5 YOU LOSE. THE BANKS MAXIMUM STOCK IS$1000. BEAT THAT TO WIN THE GAME."

START:
IF MNY% >= 1000 THEN GOSUB WIN
IF MNY% < 5 THEN GOSUB LOSE
DO
LOCATE 20, 20
PRINT "MONEY = $"; MNY%
LOCATE 6, 5
INPUT "(H)igh or (L)ow? ", i$
IF i$ = "H" XOR i$ = "HIGH" THEN
HIGH$ = "ON"
GOSUB BET
ELSEIF i$ = "L" XOR i$ = "LOW" THEN
LOW$ = "ON"
GOSUB BET
END IF
LOOP UNTIL i$ = "E"
GOSUB CREDITS


BET:
CLS
DO
LOCATE 15, 20
PRINT "YOU BET: "; i$
LOCATE 20, 20
PRINT "MONEY = $"; MNY%; "    "
LOCATE 5, 5
INPUT "HOW MUCH MONEY DO YOU WANT TO BET?  $", i%
IF i% > MNY% THEN
PRINT ""
PRINT "    THAT'S TOO MUCH, YOU DON'T HAVE THAT KIND OF MONEY!        "
PRINT "    TYPE A DIFFERENT AMMOUNT OF CASH THEN PUSH ENTER           "
ELSEIF i% < 5 THEN
PRINT ""
PRINT "    THE MINIMUM BET IS $5, NO LESS!                            "
PRINT "                                                           "
ELSE MNY% = MNY% - i%
GOSUB DICE
END IF
LOOP UNTIL i% = 9999       'TO EXIT MIDGAME
GOSUB CREDITS


DICE:
CLS
LOCATE 15, 20
PRINT "YOU BET: "; i$
LOCATE 3, 18
PRINT "THESE 3 SQUARES ARE THE DICE."
LINE (145, 55)-(180, 88), 15, B
LINE (225, 55)-(260, 88), 15, B
LINE (305, 55)-(340, 88), 15, B

LOCATE 20, 20
PRINT "MONEY = $"; MNY%; "    "
   x% = INT(RND * 6) + 1
   y% = INT(RND * 6) + 1
   z% = INT(RND * 6) + 1
LOCATE 5, 20
SLEEP 1
PRINT x%
LOCATE 10, 20
PRINT "TOTAL = "; x%
LOCATE 5, 30
SLEEP 1
PRINT y%
LOCATE 10, 20
PRINT "TOTAL = "; x% + y%
LOCATE 5, 40
SLEEP 2
PRINT z%
LOCATE 10, 20
PRINT "TOTAL = "; x% + y% + z%
        IF x% + y% + z% >= 11 THEN
        GOSUB HIGH
        ELSEIF x% + y% + z% <= 10 THEN
        GOSUB LOW
        END IF

HIGH:
IF HIGH$ = "ON" THEN
MNY% = MNY% + (2 * i%)
PRINT "               YOU WIN! YOUR MONEY INCRESES BY $"; (2 * i%)
    FOR i% = 355 TO 355
    SOUND i%, i% / 90
    NEXT i%
    FOR i% = 455 TO 455
    SOUND i%, i% / 80
    NEXT i%
    FOR i% = 400 TO 400
    SOUND i%, i% / 60
    NEXT i%

ELSEIF LOW$ = "ON" THEN
PRINT "               YOU LOSE! YOU ARE NOW $"; i%; " POORER!"
    FOR i% = 155 TO 155
    SOUND i%, i% / 20
    NEXT i%
    FOR i% = 50 TO 50
    SOUND i%, i% / 5
    NEXT i%

END IF
LOCATE 20, 20
PRINT "MONEY = $"; MNY%; "    "
SLEEP
HIGH$ = "OFF"
LOW$ = "OFF"
CLS
GOSUB START

LOW:
IF LOW$ = "ON" THEN
MNY% = MNY% + (2 * i%)
PRINT "               YOU WIN! YOUR MONEY INCRESES BY $"; (2 * i%)
    FOR i% = 355 TO 355
    SOUND i%, i% / 90
    NEXT i%
    FOR i% = 455 TO 455
    SOUND i%, i% / 80
    NEXT i%
    FOR i% = 400 TO 400
    SOUND i%, i% / 60
    NEXT i%

ELSEIF HIGH$ = "ON" THEN
PRINT "               YOU LOSE! YOU ARE NOW $"; i%; " POORER!"
    FOR i% = 155 TO 155
    SOUND i%, i% / 20
    NEXT i%
    FOR i% = 50 TO 50
    SOUND i%, i% / 5
    NEXT i%

END IF
LOCATE 20, 20
PRINT "MONEY = $"; MNY%; "    "
SLEEP
HIGH$ = "OFF"
LOW$ = "OFF"
CLS
GOSUB START


WIN:
CLS
RANDOMIZE TIMER
SCREEN 8
COLOR 2
LOCATE 2, 10
PRINT "YOU MADE IT TO THE JACKPOT AND BROKE THE BANK!"
LOCATE 3, 10
PRINT "CONGRADULATIONS!"
LOCATE 4, 10
PRINT "YOU NOW OWN $"; MNY%
FOR blah = 1 TO MNY%
x = INT(RND * 500) + 1
y = INT(RND * 130) + 50
GOSUB one
FOR a = 1 TO 500: NEXT a
NEXT blah
SLEEP
GOSUB CREDITS
RETURN

one:
LINE (x, y)-(x + 100, y + 20), 2, BF
LINE (x, y)-(x + 100, y + 20), 15, B
CIRCLE (x + 50, y + 15), 18, 15, 5.9, 3.6, .5
PAINT (x + 50, y + 15), 15, 15
CIRCLE (x + 50, y + 12), 8, 2
CIRCLE (x + 48, y + 11), 1, 2
CIRCLE (x + 52, y + 11), 1, 2
LINE (x + 48, y + 13)-(x + 52, y + 13), 2
x = x + 4
y = y + 3
GOSUB num
x = x + 88
GOSUB num
y = y + 12
GOSUB num
x = x - 88
GOSUB num
y = y - 15
x = x - 4
RETURN

num:
LINE (x + 1, y - 1)-(x + 2, y + 2), 15, BF
LINE (x, y)-(x + 1, y - 1), 15
LINE (x - 1, y + 2)-(x + 3, y + 2), 15
RETURN

LOSE:
CLS
SCREEN 0
COLOR 4
LOCATE 10, 4
PRINT "YOU LOSE CHUMP! NEXT TIME WATCH YOUR CASH, LUCKY THIS IS ONLY A GAME!"

Q1 = INT(RND * 24) + 1
Q2 = INT(RND * 24) + 1
Q3 = INT(RND * 24) + 1
Q4 = INT(RND * 24) + 1
Q5 = INT(RND * 24) + 1
Q6 = INT(RND * 24) + 1
R1 = INT(RND * 80) + 1
R2 = INT(RND * 80) + 1
R3 = INT(RND * 80) + 1
R4 = INT(RND * 80) + 1
R5 = INT(RND * 80) + 1
R6 = INT(RND * 80) + 1

IF Q1 = 10 THEN Q1 = Q1 + 1
IF Q2 = 10 THEN Q2 = Q2 + 1
IF Q3 = 10 THEN Q3 = Q3 + 1
IF Q4 = 10 THEN Q4 = Q4 + 1
IF Q5 = 10 THEN Q5 = Q5 + 1
IF Q6 = 10 THEN Q6 = Q6 + 1

COLOR 20
LOCATE Q1, R1
PRINT "LOSER!"
LOCATE Q2, R2
PRINT "LOSER!"
LOCATE Q3, R3
PRINT "LOSER!"
LOCATE Q4, R4
PRINT "LOSER!"
LOCATE Q5, R5
PRINT "LOSER!"
LOCATE Q6, R6
PRINT "LOSER!"
SLEEP

CREDITS:
CLS
Ending

DEFINT A-Z
SUB Ending
    SCREEN 0
    COLOR 15
    LOCATE 3, 35
    PRINT "* CREDITS *"
PRINT ""
PRINT "   PROGRAMED        BY  JOHN.W.S"
PRINT "   GRAPHICS         BY  JOHN.W.S"
PRINT "   ORIGINAL CONCEPT BY  JOHN.W.S"
PRINT "   PLAYTESTING      BY  ANDREZEJ.C.S"
PRINT ""
PRINT "   SPECIAL THANKS TO ANDRZEJ.C.S"
PRINT "                     CHESTER.S"
PRINT "                     SANDRA.S"
PRINT ""
PRINT "   AND EVERYONE ELSE WHO HELPED MAKE THIS FINISHED PROGRAM A SUCESS!"
    SPARKLEPAUSE

END SUB

'SparklePause:
'  Creates flashing border for intro screen
SUB SPARKLEPAUSE

    COLOR 10, 0
    a$ = "$    $    $    $    $    $    $    $    $    $    $    $    $    $    $    $    $    "
    WHILE INKEY$ <> "": WEND 'Clear keyboard buffer

    WHILE INKEY$ = ""
        FOR a = 1 TO 5
            LOCATE 1, 1                             'print horizontal sparkles
            PRINT MID$(a$, a, 80);
            LOCATE 22, 1
            PRINT MID$(a$, 6 - a, 80);

            FOR B = 2 TO 21                         'Print Vertical sparkles
                c = (a + B) MOD 5
                IF c = 1 THEN
                    LOCATE B, 80
                    PRINT "$";
                    LOCATE 23 - B, 1
                    PRINT "$";
                ELSE
                    LOCATE B, 80
                    PRINT " ";
                    LOCATE 23 - B, 1
                    PRINT " ";
                END IF
            NEXT B
        NEXT a
    WEND

END SUB

there, the idea I nicked from mystical ninja on the snes.
thankfully, in a group of 16 yr olds who had never programmed, it seemed impressive to them.

and tomorow? Ill post a maze game, with cell based engine, 1 in ASCII, the ohter a sequel to Adventure on the atari 2600. Unless someone has some complaints or a request for something else.
You can't get a job in the games industry, until you've had at least 2 years experience in the industry, which wont happen until you get a job in the industry. " - random recruitment agency
Reply
#10
just beat the dice game... pretty impressive... those pictures of money at the end were wierd... :o
[Image: sig.php]
Back by popular demand!
I will byte and nibble you bit by bit until nothing remains but crumbs.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)