(*$L-*) (* (C) FSV 12/05/1999 *) PROGRAM CHISLO; VAR P,I,J,N:INTEGER; S:CHAR; C:ARRAY [1..8] OF CHAR; M,U:SET OF '0'..'9'; SEED:REAL; PROCEDURE SPOUT(C:CHAR); BEGIN INLINE(#FD,#21,#3A,#5C,#DD,#7E,2,#D7) END; PROCEDURE AT(X,Y:INTEGER); BEGIN SPOUT(CHR(22));SPOUT(CHR(Y));SPOUT(CHR(X)) END; PROCEDURE BEEPER(A,B:INTEGER); BEGIN INLINE(#DD,#6E,2,#DD,#66,3, #DD,#5E,4,#DD,#56,5, #CD,#B5,3,#F3) END; PROCEDURE BEEP(FR:INTEGER;LE:REAL); VAR I:INTEGER; BEGIN IF FR=0 THEN FOR I:=1 TO ENTIER(12000*LE) DO ELSE BEEPER(ENTIER(FR*LE),ENTIER(437500/FR-30.125)); FOR I:=1 TO 100 DO END; PROCEDURE GENINIT; BEGIN SEED:=RANDOM*256 END; FUNCTION GENNEXT:REAL; BEGIN SEED:=(SEED+1)*75; SEED:=SEED-65537*ENTIER(SEED/65537)-1; GENNEXT:=SEED/65536 END; BEGIN PAGE; (* TIN('RUS/LAT ',-936); *) POKE(23606,-1192); GENINIT; REPEAT PAGE; POKE(23658,CHR(8)); M:=[];U:=[]; C[1]:=CHR(49+ENTIER(GENNEXT*9)); M:=M+[C[1]]; FOR I:=2 TO 8 DO BEGIN C[I]:=CHR(48+ENTIER(GENNEXT*10)); M:=M+[C[I]] END; AT(10,0);WRITE('*** ×ÈÑËÎ ***'); AT(12,3);WRITE('********'); AT(0,10);WRITE('ÂÛÁÐÀÍÍÛÅ ÖÈÔÐÛ: '); N:=17; P:=8; REPEAT AT(0,7);WRITE('ÏÎÏÛÒÎÊ - ',P:1); REPEAT AT(0,14); WRITE('ÂÀØÀ ÖÈÔÐÀ: '); READ(J); AT(0,14);WRITE(' ':18); UNTIL (J IN [0..9]) AND (NOT(CHR(48+J) IN U)); S:=CHR(48+J); U:=U+[S]; AT(N,10);WRITE(S:1);N:=N+1; IF S IN M THEN FOR I:=1 TO 8 DO IF S=C[I] THEN BEGIN AT(11+I,3); WRITE(S:1); BEEP(1000,0.3);BEEP(0,0.12) END; M:=M-[S]; P:=P-1 UNTIL (P=0) OR (M=[]); AT(10,7);WRITE(P:1); IF M=[] THEN BEGIN AT(10,14);WRITELN('ÂÛ ÂÛÈÃÐÀËÈ !!!') END ELSE BEGIN AT(10,14);WRITE('ÂÛ ÏÐÎÈÃÐÀËÈ !!!'); AT(4,16);WRITE('ÇÀÃÀÄÀÍÎ ×ÈÑËÎ: ',C); WRITELN END; WRITELN; WRITE('ÅÙÅ ÑÛÃÐÀÅÌ (Ä/Í) ? '); REPEAT POKE(23658,CHR(0)); READ(S) UNTIL S IN ['Ä','Í'] UNTIL S='Í'; PAGE; POKE(23658,CHR(8)) END.