Could you solve the cases and survive the perils of being a detective. Find out by playing this game.
Firstly you are briefed on the correct number-plates for the cars and trucks you are likely to see. Then you are stationed near a main road, watching cars and lorries travel past.
You are looking for a stolen vehicle whose plates have been changed. When you see a car or lorry you suspect, you must call up by radio the two squad cars in the area, and tell them to set up a road-block.
If you time it right, the suspected vehicle, which veers off the road when it sees you are interested, will be caught. If your suspected vehicle was stolen and you catch it, the driver comes quietly and your score increases. If however you catch a vehicle which has not been stolen, the driver dresses you down, and your score decreases. If you do not catch the suspected vehicle, then you are told whether your suspicions were correct but your score is unchanged.
How to play
Press C when you have read which cars and lorries have which number plates. You will then see cars and lorries travel by with the number plates they have attached to them displayed below the road. When you see a vehicle which you suspect has got the wrong number plate, then press A to get the white car at the top of the screen to set up a road block, or Z to have the other white car set up a trap. You may do this continuously, by trying to set up the road block just as the suspected vehicle passes by.
If you catch the vehicle you will hear police-car sirens as the other squad cars approach. Then you are told the result. Press RETURN to play again.
Programming hints
The cars and lorries are made up of two user-defined characters next to each other. They are animated, or made to travel along the road, in line 450. They are animated by PRINTing them in successive positions along the road, preceded by a space to erase the back half of the previously drawn vehicle.
You can make the game more difficult by making the vehicles whizz past faster. To do this reduce the value of K in line 400.
10 REM DETECTIVE 20 REM COPYRIGHT (C) G.LUDINSKI 1983 30 MODE 5 40 DIM V$(6),C(6),P$(6),VM$(6) 50 B=128:BL=0:RD=1:GR=2:WH=3:SC=0 60 VDU 19,GR,2,0,0,0 70 GOTO 200 80 REM 90 REM U.D.G. CALCULATOR 100 REM REM 110 DEF FNB(N$) 120 TF=0 130 FOR L=0 TO 7 140 TF=TF+(2^L)*VAL(MID$(N$,8-L,1)) 150 NEXT L 160 =TF 170 REM 180 REM CAR AND LORRY SHAPES 190 REM 200 VDU 23,224,FNB("00001111"),FNB("00 001000"),FNB("00001000"),255,255,255,255 ,FNB("00001100") 210 VDU 23,225,FNB("11110000"),FNB("00 010000"),FNB("00010000"),255,255,255,255 ,FNB("00000110") 220 VDU 23,226,FNB("11000000"),FNB("11 111000"),FNB("11001000"),FNB("11001111") ,255,255,255,FNB("11001110") 230 VDU 23,227,255,255,255,255,255,255 ,255,FNB("01110001") 240 CA$=CHR$(224)+CHR$(225):LO$=CHR$(2 27)+CHR$(226) 250 C(1)=WH:P$(1)=" "+CA$:C(2)=RD:P$(2 )=" "+CA$:C(3)=2:P$(3)=" "+CA$ 260 FORI=1TO3:C(I+3)=C(I):P$(I+3)=" "+ LO$:NEXTI 270 PROC_START 280 REM 290 REM DRAW FIELDS,ROAD,POLICE CARS 300 REM 310 COLOUR B+BL:COLOUR WH:CLS 320 GCOL 0,GR:PROC_BLOCK(0,300,1280,60 ) 330 GCOL 0,BL:PROC_BLOCK(0,300,1280,60 ) 340 PROC_MIX 350 COLOUR B+GR:COLOUR WH:PRINT TAB(0, 7);CA$;TAB(0,14);CA$:COLOUR BL:PRINT TAB (0,30);CA$;TAB(10,30)"Score ";SC 360 COLOUR WH:PRINT TAB(0,27)"Call up cars A or Z " 370 REM 380 REM LETS CARS TRAVEL ALONG ROAD 390 REM 400 COLOUR B+BL:K=20 410 J=RND(6) 420 FOR I=0 TO 17 430 IF I=0 THEN COLOUR C(J):PRINT TA B(I,21);P$(J):COLOUR B+BL:COLOUR WH:PRIN T TAB(6,24);VM$(J):FOR D=1 TO 5000:NEXT D 440 COLOURC(J) 450 I$=INKEY$(0):IF I$="" THEN PRINT TAB(I,21);P$(J):GOTO 480 460 IF I$="H" THEN PROC_START:GOTO31 0 470 GOTO510 480 FOR D=1 TO K:NEXTD 490 NEXTI:COLOUR0:PRINTTAB(17,21)" " ; 500 COLOUR WH:GOTO 410 510 PROC_CHASE 520 REM 530 REM FINAL MESSAGE & POLICE SIREN 540 REM 550 COLOUR BL 560 IF EN=1 AND (VN$=VM$(A) OR VN$=VM$ (BB)) THEN SC=SC+1:PRINTTAB(0,27)"It's a fair cop, guv.":GOTO 600 570 IF EN=1 THEN PRINTTAB(0,27)"I'll s ue you, fool! ":SC=SC-1:GOTO600 580 IF VN$=VM$(A) OR VN$=VM$(BB) THEN PRINTTAB(0,27)"Stolen car has gone ":GOT O600 590 PRINTTAB(0,27)"Chasing wrong car " 600 *FX15,0 610 FOR I=1 TO 4:SOUND 1,-15,109,10:SO UND 1,-15,101,10:NEXT 620 PRINTTAB(0,30)"Press RETURN ";:INPUT RB$:GOTO 270 630 REM 640 DEFPROC_BLOCK(X,Y,W,H) 650 MOVEX,Y:MOVEX+W,Y 660 PLOT85,X,Y+H 670 PLOT85,X+W,Y+H 680 ENDPROC 690 DEFPROC_START 700 COLOUR B+BL:CLS 710 FORI=1 TO 6 720 V$(I)=CHR$(64+RND(26))+CHR$(64+R ND(26))+CHR$(64+RND(26))+STR$(RND(10)-1) +STR$(RND(10)-1)+STR$(RND(10)-1)+CHR$(64 +RND(26)) 730 NEXT 740 FORI=1 TO 6 STEP 2 750 COLOURC(I):PRINTTAB(3,10+(4*INT( (I-1)/2)));P$(I);:COLOURC(I+1):PRINTTAB( 12,10+(4*INT((I-1)/2)));P$(I+1) 760 COLOURC(I):PRINT'" ";V$(I);" " ;:COLOUR C(I+1):PRINTV$(I+1):PRINT 770 NEXT I 780 COLOUR WH:PRINTTAB(0,27)"Press C t o continue" 790 RB$=INKEY$(6000) 800 ENDPROC 810 DEFPROC_MIX 820 A=RND(6):BB=RND(6):IF BB=A THEN GO TO820 830 FOR I=1 TO 6 840 VM$(I)=V$(I) 850 NEXTI 860 WK$=VM$(A):VM$(A)=VM$(BB):VM$(BB)= WK$ 870 ENDPROC 880 DEFPROC_CHASE 890 COLOUR B+BL:PRINT TAB(0,21)SPC(19) ," "; 900 COLOUR B+GR 910 CL=C(J):VT$=RIGHT$(P$(J),2):VN$=VM $(J) 920 X=2:Y=19:GO=0:X1=X:Y1=Y:EN=0 930 COLOUR WH:PRINTTAB(0,7);CA$ 940 PRINTTAB(0,14)CA$ 950 I$=INKEY$(0) 960 IF I$="A" THEN PROC_ROAD(7) 970 IF I$="Z" THEN PROC_ROAD(14) 980 IF EN=1 THEN 1080 990 COLOUR CL:PRINT TAB(X,Y);VT$; 1000 PRINTTAB(X1,Y1)" "; 1010 Y1=Y:X1=X 1020 I$=INKEY$(0) 1030 IF I$="A" THEN PROC_ROAD(7) 1040 IF I$="Z" THEN PROC_ROAD(14) 1050 X=X+1:IF X > 18 THEN X=2 1060 Y=Y-INT(2*RND(1)):IF Y<0 THEN Y=19 1070 GO=GO+1:IF GO<50 THEN GOTO 950 1080 ENDPROC 1090 DEFPROC_ROAD(L) 1100 COLOUR WH:PRINTTAB(0,L)CA$;"------ ------------" 1110 FOR D=1 TO 100:NEXT D 1120 PRINT TAB(0,L)CA$;SPC(18) 1130 IF Y=L THEN EN=1 1140 ENDPROC