'=========================================================================== ' Subject: BOX-CAR RACES Date: 03-18-96 (18:06) ' Author: Justin Pasher Code: QB, QBasic, PDS ' Origin: FidoNet QUIK_BAS Echo Packet: GAMES.ABC '=========================================================================== 'Try this code. Maybe looks a little nicer. I wrote this about 3 yrs ago 'and haven't looked at it since, so many improvements can be made. ON ERROR GOTO 55000 MONEY = 50 1000000 CLS SCREEN 8 PRINT " WELCOME TO THE BOX-CAR RACES v1.3" PRINT : PRINT " TODAY'S ODDS ARE AS FOLLOWS:" LOCATE 2, 1: PRINT "$"; STR$(MONEY); ".00" RANDOMIZE TIMER DEF FNODD1 = INT(10 * RND) + 1 DEF FNODD2 = INT(10 * RND) + 1 DEF FNODD3 = INT(10 * RND) + 1 DEF FNODD4 = INT(10 * RND) + 1 DEF FNODD5 = INT(10 * RND) + 1 A = FNODD1 B = FNODD2 C = FNODD3 D = FNODD4 E = FNODD5 COLOR 2 PRINT : PRINT "BOX #1 : "; A; " TO 1" COLOR 3 PRINT : PRINT "BOX #2 : "; B; " TO 1" COLOR 5 PRINT : PRINT "BOX #3 : "; C; " TO 1" COLOR 6 PRINT : PRINT "BOX #4 : "; D; " TO 1" COLOR 8 PRINT : PRINT "BOX #5 : "; E; " TO 1" COLOR 15 IF MONEY = 1 THEN BET = 1: GOTO 24 23 LOCATE 14, 10: PRINT " " LOCATE 14, 1: PRINT "WHAT IS YOUR BET (IN DOLLAR AMOUNTS ONLY, " + " for ALL)--->"; INPUT BET IF BET = 0 THEN BET = MONEY IF BET > MONEY THEN LOCATE 16, 1: PRINT "YOU DON'T HAVE "; STR$(BET); " DOLLAR(S)!" GOSUB 50000: LOCATE 16, 1 PRINT " ": LOCATE 14, 65 PRINT " ": GOTO 23 ELSE IF BET < 0 GOTO 27 END IF BET = INT(BET): IF BET = 0 GOTO 27 GOTO 24 27 PRINT : PRINT "YOU WIMP. AT LEAST BET 1 DOLLAR!": GOSUB 50000 LOCATE 16, 1: PRINT " ": GOTO 23 24 LOCATE 16, 10: PRINT " " LOCATE 16, 1: INPUT "WHICH BOX DO YOU WANT TO BET ON --->"; BETNUM IF BETNUM < 1 OR BETNUM > 5 THEN LOCATE 18, 1: PRINT "BETWEEN 1 AND 5!": GOSUB 50000: LOCATE 18, 1: PRINT " ": GOTO 24 CLS IF BETNUM = 1 THEN Z = A IF BETNUM = 2 THEN Z = B IF BETNUM = 3 THEN Z = C IF BETNUM = 4 THEN Z = D IF BETNUM = 5 THEN Z = E LOCATE 24, 30: PRINT "BET : "; STR$(BET); ".00 #"; STR$(BETNUM); PRINT ". Odds : "; Z; "to 1." ' TRACK CONSTRUCTION COLOR 4 LINE (0, 0)-(640, 0) LINE (0, 20)-(640, 20) LINE (0, 40)-(640, 40) LINE (0, 60)-(640, 60) LINE (0, 80)-(640, 80) LINE (0, 100)-(640, 100) LINE (600, 0)-(640, 100), 0, BF LINE (600, 0)-(639, 100), , B LOCATE 2, 78 COLOR 15 PRINT "F" LOCATE 4, 78 PRINT "I" LOCATE 6, 78 PRINT "N" LOCATE 8, 78 PRINT "I" LOCATE 10, 78 PRINT "S" LOCATE 12, 78 PRINT "H" LOCATE 2, 72 PRINT "1" LOCATE 2, 2 PRINT "1" LOCATE 4, 72 PRINT "2" LOCATE 4, 2 PRINT "2" LOCATE 7, 72 PRINT "3" LOCATE 7, 2 PRINT "3" LOCATE 9, 72 PRINT "4" LOCATE 9, 2 PRINT "4" LOCATE 12, 72 PRINT "5" LOCATE 12, 2 PRINT "5" LINE (20, 0)-(20, 100), 4 FOR I = 1 TO 1000: NEXT I LOCATE 14, 2 PRINT "PRESS A KEY IF READY!" DO kbd$ = INKEY$ LOOP WHILE kbd$ = "" LINE (0, 101)-(200, 200), 0, BF LOCATE 14, 2 PRINT "READY?" LOCATE 14, 2 PLAY "MF O3 L3 C" SLEEP 1 PRINT "SET? " LOCATE 14, 2 PLAY "MF O3 L3 C" SLEEP 1 PRINT "GO!!!!!!!!!!" PLAY "MB O5 L3 C" ' CAR'S SPEED RANDOMIZE TIMER A1 = 1 A2 = 1 A3 = 1 A4 = 1 A5 = 1 15 A1 = A1 + INT(RND * 10) GOTO 30 25 A2 = A2 + INT(RND * 10) GOTO 40 35 A3 = A3 + INT(RND * 10) GOTO 50 45 A4 = A4 + INT(RND * 10) GOTO 60 55 A5 = A5 + INT(RND * 10) GOTO 70 30 IF A1 = 0 THEN GOTO 15 ELSE GOTO 25 40 IF A2 = 0 THEN GOTO 25 ELSE GOTO 35 50 IF A3 = 0 THEN GOTO 35 ELSE GOTO 45 60 IF A4 = 0 THEN GOTO 45 ELSE GOTO 55 70 IF A5 = 0 THEN GOTO 55 ELSE GOTO 10000 10000 ' DRAW CAR LINE (A, 0)-(A + 20, 0), 4 LINE (A1, 5)-(A1 + 20, 15), 2, BF LINE (A2, 25)-(A2 + 20, 35), 3, BF LINE (A3, 45)-(A3 + 20, 55), 5, BF LINE (A4, 65)-(A4 + 20, 75), 6, BF LINE (A5, 85)-(A5 + 20, 95), 8, BF IF A1 >= 580 OR A2 >= 580 OR A3 >= 580 OR A4 >= 580 OR A5 >= 580 THEN GOTO 100 LINE (A1, 5)-(A1 + 20, 15), 0, BF LINE (A2, 25)-(A2 + 20, 35), 0, BF LINE (A3, 45)-(A3 + 20, 55), 0, BF LINE (A4, 65)-(A4 + 20, 75), 0, BF LINE (A5, 85)-(A5 + 20, 95), 0, BF COLOR 15 LOCATE 2, 72 PRINT "1" LOCATE 2, 2 PRINT "1" LOCATE 4, 72 PRINT "2" LOCATE 4, 2 PRINT "2" LOCATE 7, 72 PRINT "3" LOCATE 7, 2 PRINT "3" LOCATE 9, 72 PRINT "4" LOCATE 9, 2 PRINT "4" LOCATE 12, 72 PRINT "5" LOCATE 12, 2 PRINT "5" LINE (20, 0)-(20, 100), 4 GOTO 15 100 LOCATE 14, 2 PRINT "WE HAVE A WINNER!!!" IF A1 > A5 THEN GOTO 2000 GOTO 1 2000 IF A1 < A4 THEN GOTO 1 IF A1 < A3 THEN GOTO 1 IF A1 < A2 THEN GOTO 1 GOTO 200 1 IF A2 > A1 THEN GOTO 3000 GOTO 2 3000 IF A2 < A3 THEN GOTO 2 IF A2 < A4 THEN GOTO 2 IF A2 < A5 THEN GOTO 2 GOTO 300 2 IF A3 > A1 THEN GOTO 4000 GOTO 3 4000 IF A3 < A2 THEN GOTO 3 IF A3 < A4 THEN GOTO 3 IF A3 < A5 THEN GOTO 3 GOTO 400 3 IF A4 > A1 THEN GOTO 5000 GOTO 4 5000 IF A4 < A2 THEN GOTO 4 IF A4 < A3 THEN GOTO 4 IF A4 < A5 THEN GOTO 4 GOTO 500 4 GOTO 600 FOR I = 1 TO 800: NEXT I 200 XX$ = "1" XX = 1 GOTO 1000 300 XX$ = "2" XX = 2 GOTO 1000 400 XX$ = "3" XX = 3 GOTO 1000 500 XX$ = "4" XX = 4 GOTO 1000 600 XX$ = "5" XX = 5 GOTO 1000 1000 PRINT "THE WINNER IS THE BOX IN LANE "; XX$; "!!!!!!!!!!" PRINT "DISTANCE OF CAR IN LANE 1="; A1 PRINT "DISTANCE OF CAR IN LANE 2="; A2 PRINT "DISTANCE OF CAR IN LANE 3="; A3; "" PRINT "DISTANCE OF CAR IN LANE 4="; A4 PRINT "DISTANCE OF CAR IN LANE 5="; A5 IF BETNUM <> XX THEN PRINT : PRINT "YOU LOSE $"; LTRIM$(STR$(BET)); PRINT "!": MONEY = MONEY - BET: GOTO 700 IF BETNUM = 1 THEN BET = BET * A IF BETNUM = 2 THEN BET = BET * B IF BETNUM = 3 THEN BET = BET * C IF BETNUM = 4 THEN BET = BET * D IF BETNUM = 5 THEN BET = BET * E PRINT : PRINT "CONGRATULATIONS. YOU HAVE WON $"; LTRIM$(STR$(BET)); "!" MONEY = MONEY + BET 700 IF MONEY <= 0 THEN PRINT "UH-OH. IT LOOKS LIKE YOUR BROKE! " + "HA, HA. COME BACK SOME OTHER TIME. ": END PRINT "ANOTHER RACE?(Y\N)"; DO kbd$ = INPUT$(1) kbd$ = UCASE$(kbd$) IF kbd$ = "Y" THEN EXIT DO IF kbd$ = "N" THEN EXIT DO BEEP LOOP PRINT kbd$ IF kbd$ = "Y" THEN GOTO 1000000 IF kbd$ = "N" THEN END END ' G O S U B S E C T I O N 50000 SLEEP 2: RETURN 55000 SCREEN 0 IF ERR = 53 THEN 56000 PRINT : PRINT "Warning!! Error"; ERR; " occured! Aborting..." END 56000 PRINT : PRINT "Warning!! Error"; ERR; " occured! Aborting..." END