| 10 REM SAFECRACKER
20 DIM C(4),G(4),T(4) 30 GOSUB 270 40 MODE 1:BORDER 8 50 G=0:F=0 60 PEN 1 70 GOSUB 360 80 G=G+1:IF G=11 THEN GOTO 190 90 GOSUB 390 100 GOSUB 550 110 IF F=0 THEN GOTO 80 120 REM CORRECT DEDUCTION 130 LOCATE 1,19:PRINT"CORRECT ... The Safe swings gently open" 140 FOR L=1 TO 4 150 PRINT C(L);" " 160 NEXT L 170 LOCATE 9,21:PRINT "IN ";G;" attempts" 180 GOTO 240 190 REM THE COMBINATION REMAINED HIDDEN 200 LOCATE 1,14:PRINT "Alarm bells ring out loudly":LOCATE 1,16:PRINT "The time switch has been triggered" 210 LOCATE 1,19:PRINT "The combination was : " 220 LOCATE 1,21:PRINT " "; 230 FOR L=1 TO 4:PRINT C(L);" ";:NEXT L 240 IF INKEY$="" THEN GOTO 240 250 IF INKEY$<>"" THEN GOTO 250 260 RUN 270 REM SET THE COMBINATION LOCK 280 C(1)=INT(RND(1)*8+1) 290 FOR L=2 TO 4 300 C(L)=INT(RND(1)*8+1) 310 FOR I=1 TO L-1 320 IF C(L)=C(I) THEN C(L)=INT(RND(1)*8+1) 330 NEXT I 340 NEXT L 350 RETURN 360 REM TITLE THE COLUMNS 370 LOCATE 4,1:PRINT "YOUR GUESS my mark" 380 RETURN 390 REM SET A GUESS INTO G() 400 L=1 410 IF INKEY$<>"" THEN GOTO 410 420 D$=INKEY$:IF D$="" THEN GOTO 420 430 D=ASC(D$) 440 IF D=127 THEN GOTO 500 450 IF D=13 THEN GOTO 530 460 IF D<ASC("1") OR D>ASC("9") THEN GOTO 410 470 IF L=5 THEN GOTO 410 480 LOCATE 3+L*2,G+3:PEN 2:PRINT CHR$(D); 490 G(L)=D-48:L=L+1:GOTO 410 500 L=L-1:IF L=0 THEN L=1 510 LOCATE 3+L*2,G+3:PRINT " "; 520 GOTO 410 530 IF L<5 THEN GOTO 410 540 RETURN 550 REM SCORE G() AGAINST THE COMBINATION 560 B1=0:W1=0 570 FOR H=1 TO 4 580 IF G(H)=C(H) THEN B1=B1+1 590 NEXT H 600 FOR L=1 TO 4:T(L)=C(L):NEXT L 610 FOR J=1 TO 4 620 IF T(J)=-1 THEN GOTO 660 630 FOR L=1 TO 4 640 IF T(J)=G(L) THEN W1=W1+1:T(J)=-1 650 NEXT L 660 NEXT J 670 W1=W1-B1 680 IF B1=4 THEN F=1 690 LOCATE 15,3+G 700 PEN 3 710 PRINT B1;" ";W1 720 RETURN |