10 INPUT"NUMBER OF PLAYERS";N 20 GOSUB 700 30 FOR I=1 TO N 40 PRINT"PLAYER";I; 50 INPUT"NAME IS";A$(I) 60 NEXT I 80 INPUT"Action";I$ 90 Z$=MID$(I$,1,1) 100 IF Z$="A" THEN GOSUB 600 110 IF Z$="G" THEN GOSUB 400 120 IF Z$="P" THEN PRINT:FOR I=1 TO N:PRINT"PLAYER";I;"IS ";A$(I):NEXT 130 IF Z$="D" THEN GOSUB 800 140 IF Z$="C" THEN FOR I=1 TO 25:PRINT:NEXT 150 IF Z$="U" THEN GOSUB 190 180 GOTO 80 190 YES=ASC("Y") 200 FOR I=1 TO 21 210 FOR J=1 TO N 220 FOR Q=1 TO 5 230 IF A(I,J)=YES THEN B(I,J,Q)=0 240 NEXT Q 250 NEXT J 270 NEXT I 290 FLAG=0 300 FOR J=1 TO N 310 FOR I=1 TO 21 320 FOR Q=1 TO 5 330 IF B(I,J,Q)=0 GOTO 370 340 FOR TE=1 TO 21:IF B(I,J,Q)=B(TE,J,Q) THEN FLAG=FLAG+1:NEXT TE 350 IF FLAG=1 THEN A(I,J)=YES:B(I,J,Q)=0 370 NEXTQ:NEXTI:NEXTJ 390 RETURN 400 REM PROCESS GUESS 410 INPUT"WHO'S GUESS";J$ 420 FOR J=1(ON:IF MID$(A$(J),1,LEN(J$))=J$ GOTO 440 430 NEXT J:PRINT"NO SUCH NAME":RETURN 440 INPUT"PERSON,WEAPON,ROOM";A$,B$,C$ 450 RESTORE:FOR A=1 TO 6:DAD X$:IF MID$(X$,1,LEN(A$))=A$ GOTO 470 460 NEXT A:PRINT"NO SUCH PERSON":RETURN 470 FOR B=A+1 TO 12:READ X$:IF MID$(X$,1,LEN(B$))=B$ GOTO 490 480 NEXT B:PRINT"NO SUCH WEAPON":RETURN 490 FOR C=B+1 TO 21:READ X$:IF MID$(X$,1,LEN(C$))=C$ GOTO 510 500 NEXT C:PRINT"NO SUCH ROOM":RETURN 510 INPUT"WHO HAD IT";K$ 520 FOR K=1 TO N:IF MID$(A$(K),1,LEN(K$))=K$ GOTO 540 530 NEXT K:PRINT"NO SUCH PLAYER":RETURN 540 J=J+1:IF J>N THEN J=1 550 IF J<>K THEN A(A,J)=NO:A(B,J)=NO:A(C,J)=NO:GOTO 540 555 G=G+1 560 FORQ=1TO5:IFB(A,K,Q)=0ANDB(B,K,Q)=0ANDB(C,K,Q)=0GOTO580:NEXTQ 570 RETURN 580 B(A,K,Q)=G:B(B,K,Q)=G:B(C,K,Q)=G 590 RETURN 600 REM PROCESS ASSIGN 610 INPUT"WHO,WHAT";J$,I$ 620 FOR J=1 TO N:IF MID$(A$(J),1,LEN(J$))=J$ GOTO 640 630 NEXT J:PRINT"NO SUCH PLAYER":RETURN 640 RESTORE:FOR I=1 TO 21:READ X$:IF MID$(X$,1,LEN(I$))=I$ GOTO 660 650 NEXT I:PRINT"NO SUCH IDEM":RETURN 660 A(I,J)=ASC("Y") 670 RETURN 700 REM INIT MATRIX 710 DIM A(21,N) 720 DIM B(21,N,5) 730 FOR I=1 TO 21 740 FOR J=1 TO N 750 A(I,J)=ASC(".") 760 NEXT J:NEXT I 770 T=13:IF N>4 THEN T=10:IF N=5 THEN T=12 780 NO=ASC("N") 790 RETURN 800 REM SET UP HEADER 820 PRINT TAB(T);" "; 830 FOR J=1 TO N 840 PRINT CHR$(J+48);" "; 850 NEXT J:PRINT 860 REM SET UP DISPLAY 870 RESTORE 880 FOR I=1 TO 21 890 IF I=7 OR I=13 THEN PRINT 900 READ A$:A$=MID$(A$,1,T):PRINT A$; 910 PRINT TAB(T);" "; 920 FOR J=1 TO N 930 X=A(I,J) 940 FOR Q=1 TO 5:IF B(I,J,Q)<>0 THEN X=ASC("M"):GOTO 950:NEXT Q 950 PRINT CHR$(X);" ";:NEXT J 960 PRINT:NEXT I 970 RETURN 1000 DATA MUSTARD,PLUM,GREEN,PEACOCK,SCARLET,WHITE 1010 DATA KNIFE,CANDLESTICK,REVOLVER,ROPE,LEAD PIPE,WRENCH 1020 DATA HALL,LOUNGE,DINING ROOM,KITCHEN,BALL ROOM,CONSERVATORY 1030 DATA BILLIARD ROOM,LIBRARY,STUDY 1040 END