Russian Roulette


The six-shooter points straight at you. There is only one bullet somewhere in the cylinder. Spin the cylinder as much as you wish and then press the trigger - if you dare!

    1 REM *** BBC VERSION ***
   10 REM RUSSIAN ROULETTE  @1983 MICHAEL BEW
S
   20 REM CONVERTED TO BBC MICRO BY C.R.TANNE
R
   30 VDU 23,224,-1,-1,-1,-1,-1,-1,-1,-1
   40 MODE 1:VDU 23;8202;0;0;0;28,4,27,35,4
   50 F=1:sc=0:hs=0:COLOUR 1:PRINT "RUSSIAN R
OULETTE"
   60 GCOL0,2:PROCcircle(126,119,32)
   70 PROCcircle(146,131,6)
   80 PROCcircle(146,107,6)
   90 PROCcircle(126,95,6)
  100 PROCcircle(106,107,6)
  110 PROCcircle(106,131,6)
  120 PROCcircle(126,143,6)
  130 PROCcircle(126,119,14)
  140 PROCcircle(126,119,13)
  150 PROCcircle(126,119,12)
  160 COLOUR 2:PRINT TAB(15,11);CHR$224;CHR$2
24;TAB(15,12);CHR$224;CHR$224;TAB(15,13);CHR$
224;CHR$224;TAB(15,14);CHR$224;CHR$224;TAB(15
,15);CHR$224;CHR$224
  170 PRINTTAB(15,2);" "
  180 COLOUR 3:PRINT TAB(0,16);"This is a rev
olver, pointing at you. It has one bullet. Pr
ess   'A' to spin the cylinder for as long as
 you wish and fire with  'B'. Score 100 each 
time the gunfails to kill you,Then try again.
"
  190 PRINT TAB(17,0);"THIS SCORE:   ";TAB(14
,1);"HIGHEST SCORE:   "
  200 A=0:IF INKEY(-66) THEN A=1:ELSE IF INKE
Y(-101) THEN A=2
  210 IF A=0 THEN 200
  220 SOUND 1,-1,255,0
  230 PRINT TAB(20,12);"            ";TAB(20,
14);"           "
  240 IF A=2 THEN GOTO 370 ELSE GCOL 3,1
  250 F=1:PLOT 69,712,716:FORx=0 TO 20:NEXT:P
LOT 69,712,716
  260 IF INKEY(-66) THEN ELSE 200
  270 F=2:PLOT 69,712,620:FORx=0 TO 20:NEXT:P
LOT 69,712,620
  280 IF INKEY(-66) THEN ELSE 200
  290 F=3:PLOT 69,632,572:FORx=0 TO 20:NEXT:P
LOT 69,632,572
  300 IF INKEY(-66) THEN ELSE 200
  310 F=4:PLOT 69,552,620:FORx=0 TO 20:NEXT:P
LOT 69,552,620
  320 IF INKEY(-66) THEN ELSE 200
  330 F=5:PLOT 69,552,716:FORx=0 TO 20:NEXT:P
LOT 69,552,716
  340 IF INKEY(-66) THEN ELSE 200
  350 F=6:PLOT 69,632,764:FORx=0 TO 20:NEXT:P
LOT 69,632,764
  360 GOTO200
  370 IF F=1 THEN VDU5:MOVE 620,680:GCOL 0,1:
SOUND 0,-15,6,3:PRINT "O":VDU 19,0,1,0,0,0:MO
VE 620,680:GCOL 0,0:PRINT CHR$(224):FOR x=0 T
O 30:NEXT:VDU 4,19,0,0,0,0,0:COLOUR 3:PRINT T
AB(20,12);"You're dead!";TAB(20,14);"Bullet i
n ";F:GOTO 440
  380 COLOUR 3:PRINT TAB(20,12);"You survived
";TAB(20,14);"Bullet in ";F:SOUND 1,-15,100,1
  390 sc=sc+100:PRINT TAB(28,0);"   ";TAB(28,
0);sc
  400 FOR x=0 TO 300:NEXT x:*FX 15 1
  410 REPEAT UNTIL INKEY$(100)<>""
  420 SOUND 1,-15,100,1:SOUND 1,-15,70,1:SOUN
D 1,-15,20,1
  430 F=RND(6):GOTO 200
  440 IF hs<sc THEN hs=sc
  450 sc=0
  460 PRINT TAB(28,1);"    ";TAB(28,1);hs
  470 PRINT TAB(28,0);"    ";TAB(28,0);sc
  480 *FX 15 1
  490 REPEAT UNTIL INKEY$(0)<>""
  500 SOUND 1,-15,50,1:SOUND 1,-15,50,1:SOUND
 1,-15,10,1:SOUND 1,-15,50,1
  510 F=1:GOTO 200
  520 DEFPROCcircle(X%,Y%,C%)
  530 MOVE (X%-C%)*4+128,Y%*4+192
  540 FOR XC=-C% TO C%
  550   YC=SQR(C%^2-XC^2)
  560   PLOT 5,(XC+X%)*4+128,(Y%+YC)*4+192
  570   NEXT
  580 FOR XC=C% TO -C% STEP -1
  590   YC=SQR(C%^2-XC^2)
  600   PLOT 5,(XC+X%)*4+128,(Y%-YC)*4+192
  610   NEXT
  620 ENDPROC