10 CLS:CLEAR:WIDTH20,8:MEMSET&HB00:DEFINTA-Z:DEFFIL8,0
20 OPTIONBASE1:DIMB(6,4),C(4),C$(2),Z(32)
30 LOCATES0,0,0:LOCATE8,2,0:PRINT"Milk";:GOSUB440:GOSUB430:GOSUB430:CLS
40 A=((VAL(LEFT$(TIME$,2))MOD6)*3600)+VAL(MID$(TIME$,4,2))*60+VAL(RIGHT$(TIME$,2))
50 RANDOMIZEA:POKE&H11E,&HA:POKE&H11F,&H40
60 FORI=&HA40 TO&HA87:READJ$:J=VAL("&H"+J$):POKEI,J:NEXTI
70 J=1:FORK=1TO4:READB1,B2,B3:B$(K)=CHR$(B1)+CHR$(B2)+CHR$(B3):NEXTK
80 C$(1)=CHR$(32):C$(2)=CHR$(225)
90 FORK=1TO4:LOCATE0,4-K:PRINTCHR$(225+K);:NEXTK
100 FORK=1TO4:LOCATE16,4-K:PRINTB$(1);:NEXTK
110 C=INT(RND*15)+1:C(1)=C\8:C(2)=(C\4)MOD2:C(3)=(C\2)MOD2:C(4)=C MOD2
120 I=17:FORK=1TO4:LOCATE1,4-K:PRINTC$(C(K)+1);:NEXTK:GOSUB430
130 A$=INKEY$:IFA$=""THENA=0ELSEA=ASC(A$)
140 A=A-27:IFSGN(A)<>1THEN150ELSE:ONA GOSUB290,300,300,290,310
150 FORK=1TO4:LOCATE18-I,4-K:PRINTCHR$(32);C$(C(K)+1);:NEXTK:GOSUB430
160 I=I-1:IFI<>J*3THEN130
170 FORK=1TO4:B(J+1,K)=(B(J,K)+C(K))\4:B(J,K)=B(J,K)+C(K)-B(J+1,K):NEXTK
180 FORK=1TO4:LOCATE18-I,4-K:PRINTCHR$(32);:NEXTK
190 FORK=1TO4:LOCATE19-J*3,4-K:PRINTB$(B(J,K)+1);:NEXTK
200 IF(B(J,1)ANDB(J,2)ANDB(J,3)ANDB(J,4))=3THENFLAG=FLAG+1:Z=Z+1
210 IF(B(J+1,1)ORB(J+1,2)ORB(J+1,3)ORB(J+1,4))=1THENFLAG=FLAG+2
220 ONFLAG GOSUB320,370,380
230 FLAG=0:IFJ<6THEN110
240 PUT%31,Z:FORK=0TO31:GET%K,Z(K+1):NEXTK
250 FORJ=31TO1STEP-1:FORI=1TOJ:IFZ(I)<Z(I+1)THENSWAPZ(I),Z(I+1)
260 NEXTI,J:FORK=0TO31:PUT%K,Z(K+1):NEXTK
270 CLS:PRINTZ:FORK=1TO8:PRINTUSING"#####";Z(K);:NEXTK
280 GOSUB440:END
290 IFC MOD2=1THENRETURNELSEC=C\2:SWAPC(4),C(3):SWAPC(3),C(2):SWAPC(2),C(1):RETURN
300 IFC\8=1THENRETURNELSEC=C+C:SWAPC(1),C(2):SWAPC(2),C(3):SWAPC(3),C(4):RETURN
310 FORK=1TO4:LOCATE18-I,4-K:PRINTCHR$(32);:NEXTK:I=J*3+1:RETURN
320 FORK=1TO4:B(J,K)=0:NEXTK
330 FORK=3TO0STEP-1:LOCATE19-3*J,K:PRINTSTRING$(3,224);:NEXTK:J=J-1:GOSUB450
340 ONSGN(J)+1GOTO350,360
350 FORK=3TO0STEP-1:LOCATE16,K:PRINTB$(1);:NEXTK:J=1:GOSUB460:RETURN
360 FORK=3TO0STEP-1:LOCATE16-3*J,K:PRINTSTRING$(3,32);:NEXTK:GOSUB460:RETURN
370 J=J+1:FORK=1TO4:LOCATE19-J*3,4-K:PRINTB$(B(J,K)+1);:NEXTK:RETURN
380 FORK=1TO4:B(J,K)=B(J+1,K):B(J+1,K)=0:NEXTK
390 FORK=1TO4:LOCATE16-3*J,4-K:PRINTB$(B(J,K)+1);B$(4);:NEXTK:GOSUB430
400 FORK=3TO0STEP-1:LOCATE19-3*J,K:PRINTSTRING$(3,224);:NEXTK:GOSUB450
410 FORK=1TO4:LOCATE16-3*J,4-K:PRINTSTRING$(3,32);B$(B(J,K)+1);:NEXTK:GOSUB460:RETURN
420 GOSUB460:RETURN
430 FORK=1TO192:NEXTK:RETURN
440 SOUND1,1:SOUND11,1:SOUND21,1:RETURN
450 FORE=1TO112STEP7:SOUNDE,1:NEXTE:RETURN
460 FORE=1TO112STEP8:SOUNDE,1:NEXTE:RETURN
470 DATA 3B,6D,7C,6D,3B,00,08,14,22,42,42,3C
480 DATA 80,41,22,22,22,1C,00,C1,22,22,22,1C,00,C1,22,22,22,1C,01,C1,22,22,22,1C
490 DATA 7E,42,24,24,42,42,42,42,42,42,81,81,81,81,81,81,81,7E
500 DATA 7E,7E,3C,3C,5A,5A,5A,5A,5A,5A,99,BD,BD,BD,BD,BD,81,7E
510 DATA 230,231,232,230,231,235,230,234,235,233,234,235
