'=========================================================================== ' Subject: PAPER-SCISSORS-ROCK GAME Date: Unknown Date ' Author: Unknown Author(s) Code: PB ' Origin: PB Revision Packet: GAMES.ABC '=========================================================================== $IF 0 ROCKPAP.BAS for PowerBASIC, adopted from PAPEROCK.BAS. $ENDIF $LIB ALL OFF DEFINT A-Z black = 0: blue = 1: green = 2: cyan = 3: red = 4: magenta = 5 yellow = 6: white = 7: bright = 8 Charge$ = "T240MFCfa>c.l2C" begin: WIDTH 80 RANDOMIZE TIMER 'SCREEN 9 COLOR white + bright, cyan ' COLOR foreground, background CLS LOCATE 5, 8, 1 ' show cursor this screen! PRINT "Would You Like To Play The Paper-Scissors-Rock Game...?"; DO WHILE NOT INSTAT: WEND Ans$ = UCASE$(INKEY$) LOOP UNTIL TALLY (Ans$, ANY "YN" + CHR$(27)) PRINT Ans$ LOCATE , , 0 ' hide cursor IF Ans$ <> "Y" THEN GOTO ending END IF One: PLAY Charge$ ' and set the tempo for future PLAY's LOCATE 11, 1 PRINT " ... Press a Key to Play" SLEEP Junk$ = INKEY$ ' empty the buffer GAME: CLS LOCATE 2, 19 PRINT "Welcome To The Paper, Scissors, Rock Game!" LOCATE 5, 17 PRINT "You pick either (P)aper, (S)cissors, or (R)ock" LOCATE 7, 10 PRINT "and the computer will randomly select one of the other two." LOCATE 9, 18 PRINT "Please press the Q key to (Q)uit at any time." LOCATE 11, 25 PRINT "Now, What Do You Want... " LOCATE 13, 30 PRINT "(P/S/R) " DO WHILE NOT INSTAT: WEND guess$ = UCASE$(INKEY$) LOOP UNTIL TALLY (Guess$, ANY "RPSQ") IF guess$ = "P" THEN GOSUB paper IF guess$ = "S" THEN GOSUB scissors IF guess$ = "R" THEN GOSUB rock IF guess$ = "Q" THEN GOSUB ending WHILE INSTAT: Junk$ = INKEY$: WEND'empty the buffer GOTO GAME paper: x% = INT(RND * 9) + 1 IF x% > 5 THEN GOSUB winp IF x% < 5 THEN GOSUB loses IF x% = 5 THEN Item$ = "Paper" GOSUB TieBallGame END IF RETURN scissors: x% = INT(RND * 9) + 1 IF x% > 5 THEN GOSUB wins IF x% < 5 THEN GOSUB loser IF x% = 5 THEN Item$ = "Scissors" GOSUB TieBallGame END IF RETURN rock: x% = INT(RND * 9) + 1 IF x% > 5 THEN GOSUB winr IF x% < 5 THEN GOSUB losep IF x% = 5 THEN Item$ = "Rock" GOSUB TieBallGame END IF RETURN winp: CLS LOCATE 8, 3 PRINT "You chose Paper..." LOCATE 10, 4 PRINT "The computer chose Rock..." LOCATE 12, 5 PRINT "Paper wraps rock... You WON!!! "; PRINT CHR$(1) PLAY "MF O3 L6 C C C L4 < G L6 > E E E C" SLEEP 1 RETURN wins: CLS LOCATE 8, 3 PRINT "You chose Scissors..." LOCATE 10, 4 PRINT "The computer chose Paper..." LOCATE 12, 5 PRINT "Scissors cut Paper... You WON!!! "; PRINT CHR$(1) PLAY "MF O3 L6 C C C L4 < G L6 > E E E C" SLEEP 1 RETURN winr: CLS LOCATE 8, 3 PRINT "You chose Rock..." LOCATE 10, 4 PRINT "The computer chose Scissors..." LOCATE 12, 5 PRINT "Rock breaks Scissors... You WON!!! "; PRINT CHR$(1) PLAY "MF O3 L6 C C C L4 < G L6 > E E E C" SLEEP 1 RETURN losep: CLS LOCATE 8, 3 PRINT "You chose Rock..." LOCATE 10, 4 PRINT "The computer chose Paper..." LOCATE 12, 5 PRINT "Paper wraps Rock... please try again..." PLAY "MF O1 L4 G G L8 G L4 G L4 B- L8 A L4 A L6 G L4 G L6 F+ L4 G" SLEEP 2 RETURN loser: CLS LOCATE 8, 3 PRINT "You chose Scissors..." LOCATE 10, 4 PRINT "The computer chose Rock..." LOCATE 12, 5 PRINT "Rock breaks Scissors... please try again..." PLAY "MF O1 L4 G G L8 G L4 G L4 B- L8 A L4 A L6 G L4 G L6 F+ L4 G" SLEEP 2 RETURN loses: CLS LOCATE 8, 3 PRINT "You chose Paper..." LOCATE 10, 4 PRINT "The computer chose Scissors..." LOCATE 12, 5 PRINT "Scissors cut Paper... please try again..." PLAY "MF O1 L4 G G L8 G L4 G L4 B- L8 A L4 A L6 G L4 G L6 F+ L4 G" SLEEP 2 RETURN errortrap: LOCATE 19, 19 PRINT "Please type (P)aper, (S)cissors, or (R)ock " LOCATE 21, 22 PRINT "Press the Q key if you wish to (Q)uit" PLAY "MF L6 O1 C A B C A" SLEEP 2 RETURN ending: CLS LOCATE 10, 5 PRINT "Thanks For Playing... Good Bye!" END TieBallGame: CLS LOCATE 8, 3 PRINT "You chose "; Item$; "..." LOCATE 10, 4 PRINT "The computer chose "; Item$; "..." LOCATE 12, 5 PRINT "No Winner!!! "; PRINT CHR$(1) PLAY Charge$ SLEEP 1 RETURN