'=========================================================================== ' Subject: SIMPLE DICE GAME Date: 09/95 (00:00) ' Author: Kurt Kuzba Code: QB, QBasic, PDS ' Origin: FidoNet QUIK_BAS Echo Packet: GAMES.ABC '=========================================================================== '_|_|_| DICE_EX.BAS '_|_|_| A simple dice game in BASIC, using the RND function. '_|_|_| Released to the Public Domain by Kurt Kuzba '_|_|_| DECLARE SUB DrawDice (vl%, x%, y%) RANDOMIZE (TIMER + INP(64)): play$ = "yes" WHILE play$ = "yes" COLOR 7, 0: CLS LOCATE 3, 10: PRINT "SPACE to begin play, or RETURN to quit" k$ = "": WHILE k$ <> CHR$(13) AND k$ <> CHR$(32): k$ = INKEY$: WEND IF k$ = CHR$(13) THEN play$ = "no" ELSE player% = 0: computer% = 0 COLOR 7, 0: CLS : COLOR 15, 1: LOCATE 9 LOCATE , 23: PRINT "[][][][][][][][][][][][][][][][][][]" LOCATE , 23: PRINT "[] Press SPACE to roll the die. []" LOCATE , 23: PRINT "[] Player #1 Computer []" LOCATE , 23: PRINT "[] []" LOCATE , 23: PRINT "[] []" LOCATE , 23: PRINT "[] []" LOCATE , 23: PRINT "[] Presently playing turn # []" LOCATE , 23: PRINT "[][][][][][][][][][][][][][][][][][]" FOR turn% = 1 TO 10 COLOR 15, 3 LOCATE 11, 37: PRINT player% LOCATE 11, 52: PRINT computer% LOCATE 15, 52: PRINT turn% WHILE INKEY$ <> CHR$(32): WEND FOR roll% = 1 TO 20 vl% = ((RND * 999) MOD 6) + 1: DrawDice vl%, 12, 30 NEXT: player% = player% + vl% FOR roll% = 1 TO 20 vl% = ((RND * 999) MOD 6) + 1: DrawDice vl%, 12, 45 NEXT: computer% = computer% + vl% NEXT COLOR 15, 3 LOCATE 11, 37: PRINT player% LOCATE 11, 52: PRINT computer% LOCATE 15, 52: PRINT turn% LOCATE 16, 23: COLOR 15, 1 IF player% > computer% THEN PRINT "[] You Won the Game!! []" END IF IF player% < computer% THEN PRINT "[] The Computer Won!! []" END IF IF player% = computer% THEN PRINT "[] It was a Tie Score. []" END IF LOCATE , 23: PRINT "[] Hit RETURN to continue []" LOCATE , 23: PRINT "[][][][][][][][][][][][][][][][][][]" WHILE INKEY$ <> CHR$(13): WEND END IF WEND END SUB DrawDice (vl%, x%, y%) COLOR 15, 1: LOCATE x% d$ = " " WAIT &H3DA, 8: WAIT &H3DA, 8, 8 LOCATE , y%: PRINT LEFT$(d$, 7) LOCATE , y%: PRINT MID$(d$, 8, 7) LOCATE , y%: PRINT RIGHT$(d$, 7) SELECT CASE vl% CASE IS = 1: d$ = " O " CASE IS = 2: d$ = " O O " CASE IS = 3: d$ = " O O O " CASE IS = 4: d$ = " O O O O " CASE IS = 5: d$ = " O O O O O " CASE IS = 6: d$ = " O O O O O O " END SELECT COLOR 1, 7: LOCATE x% WAIT &H3DA, 8: WAIT &H3DA, 8, 8 WAIT &H3DA, 8: WAIT &H3DA, 8, 8 LOCATE , y%: PRINT LEFT$(d$, 7) LOCATE , y%: PRINT MID$(d$, 8, 7) LOCATE , y%: PRINT RIGHT$(d$, 7) END SUB