program Kosti; uses Crt; var Knopka:char; A,B,C,D,E,F,I,J:BYTE; A1,B1,C1,D1,E1,F1:BYTE; STATUS_1,STATUS_2:REAL; M1:ARRAY[1..5]OF BYTE; M2:ARRAY[1..6,1..2]OF BYTE; MAX,ZUFR,P,f11:BYTE; REZULT_1,REZULT_2:STRING; P1:ARRAY[1..5]OF BYTE; FORM:ARRAY[1..6] OF BYTE; menu:array[1..20,1..4] of char; label beg; procedure KYB_1(N,M:BYTE); VAR K:BYTE; begin TEXTCOLOR(0); K:=6; GOTOXY(12*N-K,M); writeLN(CHR(201),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(187)); GOTOXY(12*N-K,M+1); WRITELN(CHR(186),' ',CHR(186)); GOTOXY(12*N-K,M+2); WRITELN(CHR(186),' ',CHR(15),' ',CHR(186)); GOTOXY(12*N-K,M+3); WRITELN(CHR(186),' ',CHR(186)); GOTOXY(12*N-K,M+4); WRITELN(CHR(200),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(188)); TEXTCOLOR(RED); end; procedure KYB_2(N,M:BYTE); VAR K:BYTE; begin TEXTCOLOR(0); K:=6; GOTOXY(12*N-K,M); writeLN(CHR(201),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(187)); GOTOXY(12*N-K,M+1); WRITELN(CHR(186),' ',CHR(15),' ',CHR(186)); GOTOXY(12*N-K,M+2); WRITELN(CHR(186),' ',CHR(186)); GOTOXY(12*N-K,M+3); WRITELN(CHR(186),' ',CHR(15),' ',CHR(186)); GOTOXY(12*N-K,M+4); WRITELN(CHR(200),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(188)); TEXTCOLOR(RED); end; procedure KYB_3(N,M:BYTE); VAR K:BYTE; begin TEXTCOLOR(0); K:=6; GOTOXY(12*N-K,M); writeLN(CHR(201),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(187)); GOTOXY(12*N-K,M+1); WRITELN(CHR(186),' ',CHR(15),' ',CHR(186)); GOTOXY(12*N-K,M+2); WRITELN(CHR(186),' ',CHR(15),' ',CHR(186)); GOTOXY(12*N-K,M+3); WRITELN(CHR(186),' ',CHR(15),' ',CHR(186)); GOTOXY(12*N-K,M+4); WRITELN(CHR(200),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(188)); TEXTCOLOR(RED); end; procedure KYB_4(N,M:BYTE); VAR K:BYTE; begin TEXTCOLOR(0); K:=6; GOTOXY(12*N-K,M); writeLN(CHR(201),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(187)); GOTOXY(12*N-K,M+1); WRITELN(CHR(186),' ',CHR(15),' ',CHR(15),' ',CHR(186)); GOTOXY(12*N-K,M+2); WRITELN(CHR(186),' ',CHR(186)); GOTOXY(12*N-K,M+3); WRITELN(CHR(186),' ',CHR(15),' ',CHR(15),' ',CHR(186)); GOTOXY(12*N-K,M+4); WRITELN(CHR(200),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(188)); TEXTCOLOR(RED); end; procedure KYB_5(N,M:BYTE); VAR K:BYTE; begin TEXTCOLOR(0); K:=6; GOTOXY(12*N-K,M); writeLN(CHR(201),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(187)); GOTOXY(12*N-K,M+1); WRITELN(CHR(186),' ',CHR(15),' ',CHR(15),' ',CHR(186)); GOTOXY(12*N-K,M+2); WRITELN(CHR(186),' ',CHR(15),' ',CHR(186)); GOTOXY(12*N-K,M+3); WRITELN(CHR(186),' ',CHR(15),' ',CHR(15),' ',CHR(186)); GOTOXY(12*N-K,M+4); WRITELN(CHR(200),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(188)); TEXTCOLOR(RED); end; procedure KYB_6(N,M:BYTE); VAR K:BYTE; begin TEXTCOLOR(0); K:=6; GOTOXY(12*N-K,M); writeLN(CHR(201),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(187)); GOTOXY(12*N-K,M+1); WRITELN(CHR(186),' ',CHR(15),' ',CHR(15),' ',CHR(15),' ',CHR(186)); GOTOXY(12*N-K,M+2); WRITELN(CHR(186),' ',CHR(186)); GOTOXY(12*N-K,M+3); WRITELN(CHR(186),' ',CHR(15),' ',CHR(15),' ',CHR(15),' ',CHR(186)); GOTOXY(12*N-K,M+4); WRITELN(CHR(200),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(205),CHR(188)); TEXTCOLOR(RED); end; begin CLRSCR; TEXTCOLOR(0+BLINK); TEXTBACKGROUND(15); GOTOXY(3,9); WRITELN('KKK KKK OOOOO SSSSSSS TTTTTTTTTTTTTTTTTT IIII '); GOTOXY(3,10); WRITELN('KKK KKK OOOO OOOO SSSS SSS TTTTTTTTTTTTTTTTTT '); GOTOXY(3,11); WRITELN('KKK KKK OOO OOO SSSS TTTT IIII '); GOTOXY(3,12); WRITELN('KKKKKKKK OOO OOO SSSSSSS TTTT IIII '); GOTOXY(3,13); WRITELN('KKKKKKKK OOO OOO SSSSSSS TTTT IIII '); GOTOXY(3,14); WRITELN('KKK KKK OOO OOO SSSS TTTT IIII '); GOTOXY(3,15); WRITELN('KKK KKK OOOO OOOO SSS SSSS TTTT IIII '); GOTOXY(3,16); WRITEln ('KKK KKK OOOOO SSSSSSS TTTT IIII '); read; textcolor(0); gotoxy(25,18); writeln('Чтобы начать нажмите Enter'); gotoxy(25,19); writeln(' Чтобы выйти нажмите x'); knopka:=readkey; if (knopka='x')or(knopka='ч') then exit; TEXTCOLOR(RED); randomize; readln; clrscr; begin {/////////////////} beg: clrscr; textcolor(red); write('Чтобы бросить кубики нажми "Enter"'); A:=random(6); B:=random(6); C:=random(6); D:=random(6); E:=random(6); Readln; CASE A OF 0:KYB_1(1,2); 1:KYB_2(1,2); 2:KYB_3(1,2); 3:KYB_4(1,2); 4:KYB_5(1,2); 5:KYB_6(1,2); END; CASE B OF 0:KYB_1(2,2); 1:KYB_2(2,2); 2:KYB_3(2,2); 3:KYB_4(2,2); 4:KYB_5(2,2); 5:KYB_6(2,2); END; CASE C OF 0:KYB_1(3,2); 1:KYB_2(3,2); 2:KYB_3(3,2); 3:KYB_4(3,2); 4:KYB_5(3,2); 5:KYB_6(3,2); END; CASE D OF 0:KYB_1(4,2); 1:KYB_2(4,2); 2:KYB_3(4,2); 3:KYB_4(4,2); 4:KYB_5(4,2); 5:KYB_6(4,2); END; CASE E OF 0:KYB_1(5,2); 1:KYB_2(5,2); 2:KYB_3(5,2); 3:KYB_4(5,2); 4:KYB_5(5,2); 5:KYB_6(5,2); END; read; Writeln('Теперь я бросаю'); readln; A1:=random(6); B1:=random(6); C1:=random(6); D1:=random(6); E1:=random(6); CASE A1 OF 0:KYB_1(1,10); 1:KYB_2(1,10); 2:KYB_3(1,10); 3:KYB_4(1,10); 4:KYB_5(1,10); 5:KYB_6(1,10); END; CASE B1 OF 0:KYB_1(2,10); 1:KYB_2(2,10); 2:KYB_3(2,10); 3:KYB_4(2,10); 4:KYB_5(2,10); 5:KYB_6(2,10); END; CASE C1 OF 0:KYB_1(3,10); 1:KYB_2(3,10); 2:KYB_3(3,10); 3:KYB_4(3,10); 4:KYB_5(3,10); 5:KYB_6(3,10); END; CASE D1 OF 0:KYB_1(4,10); 1:KYB_2(4,10); 2:KYB_3(4,10); 3:KYB_4(4,10); 4:KYB_5(4,10); 5:KYB_6(4,10); END; CASE E1 OF 0:KYB_1(5,10); 1:KYB_2(5,10); 2:KYB_3(5,10); 3:KYB_4(5,10); 4:KYB_5(5,10); 5:KYB_6(5,10); END; end; Write(' Выбирай что перебросить (укажи номера кубиков через пробел): '); I:=0; WHILE NOT EOLN DO BEGIN INC(I); READ(P1[I]); END; FOR J:=1 TO I DO BEGIN IF P1[J]=1 THEN BEGIN A:=RANDOM(5); CASE A OF 0:KYB_1(1,2); 1:KYB_2(1,2); 2:KYB_3(1,2); 3:KYB_4(1,2); 4:KYB_5(1,2); 5:KYB_6(1,2); END; END; IF P1[J]=2 THEN BEGIN B:=RANDOM(5); CASE B OF 0:KYB_1(2,2); 1:KYB_2(2,2); 2:KYB_3(2,2); 3:KYB_4(2,2); 4:KYB_5(2,2); 5:KYB_6(2,2); END; END; IF P1[J]=3 THEN BEGIN C:=RANDOM(5); CASE C OF 0:KYB_1(3,2); 1:KYB_2(3,2); 2:KYB_3(3,2); 3:KYB_4(3,2); 4:KYB_5(3,2); 5:KYB_6(3,2); END; END; IF P1[J]=4 THEN BEGIN D:=RANDOM(5); CASE D OF 0:KYB_1(4,2); 1:KYB_2(4,2); 2:KYB_3(4,2); 3:KYB_4(4,2); 4:KYB_5(4,2); 5:KYB_6(4,2); END; END; IF P1[J]=5 THEN BEGIN E:=RANDOM(5); CASE E OF 0:KYB_1(5,2); 1:KYB_2(5,2); 2:KYB_3(5,2); 3:KYB_4(5,2); 4:KYB_5(5,2); 5:KYB_6(5,2); END; END; END; {/////////////////////////////////////} IF (A=B)AND(A=C)AND(A=E)AND(A=D) THEN STATUS_1:=7+A*0.1; {///////////////////////////} {СТАТУС ПЕРВОГО ГАМАЛЬЩИКА} M1[1]:=A; M1[2]:=B; M1[3]:=C; M1[4]:=D; M1[5]:=E; M2[1,1]:=0; M2[2,1]:=1; M2[3,1]:=2; M2[4,1]:=3; M2[5,1]:=4; M2[6,1]:=5; FOR I:=1 TO 5 DO FOR J:=1 TO 6 DO IF M1[I]=M2[J,1] THEN INC(M2[J,2]); MAX:=0; FOR I:=1 TO 6 DO IF M2[I,2]>MAX THEN BEGIN MAX:=M2[I,2]; ZUFR:=M2[I,1] END; IF (MAX=4)AND(STATUS_1=0) THEN STATUS_1:=6+0.1*ZUFR; {ЦИФРЫ ИЗ КОТОРЫХ СОСТОИТ КАРЕ} FOR I:=1 TO 6 DO IF (M2[I,2]=2)AND(MAX=3) THEN BEGIN STATUS_1:=5+0.1*ZUFR; ZUFR:=M2[I,1]; STATUS_1:=STATUS_1+0.01*ZUFR; END; {///////////////////////////////} P:=0; IF MAX=1 THEN BEGIN FOR I:=1 TO 5 DO FOR J:=1 TO 5 DO IF (M1[I]=0)AND(M1[J]=5) THEN P:=1; IF P=0 THEN STATUS_1:=4; END; {//////////////////////////////} IF (MAX=3)AND(STATUS_1=0) THEN STATUS_1:=3+0.1*ZUFR; {///////////////////////////////} IF MAX=2 THEN BEGIN STATUS_1:=1; FOR I:=1 TO 6 DO IF M2[I,2]=2 THEN STATUS_1:=STATUS_1+1+0.01*M2[I,1]; STATUS_1:=STATUS_1-1; END; {writeln(status_1:5:2); } readln; {/////////////////////////////////} IF STATUS_1=0 THEN REZULT_1:=' пусто'; IF (STATUS_1>=1)AND(STATUS_1<2) THEN REZULT_1:=' пара'; IF (STATUS_1>=2)AND(STATUS_1<3) THEN REZULT_1:=' две пары'; IF (STATUS_1>=3)AND(STATUS_1<4) THEN REZULT_1:=' триада'; IF STATUS_1=4 THEN REZULT_1:=' стрит'; IF (STATUS_1>=5)AND(STATUS_1<6) THEN REZULT_1:=' фул'; IF (STATUS_1>=6)AND(STATUS_1<7) THEN REZULT_1:=' каре'; IF STATUS_1>=7 THEN REZULT_1:=' триада'; GOTOXY(2,17); TEXTCOLOR(1); WRITELN('У тебя',REZULT_1); IF (A1=B1)AND(A1=C1)AND(A1=D1)AND(A1=E1) THEN STATUS_2:=7+A1*0.1; {///////////////////////////} {СТАТУС ВТОРОГО ГАМАЛЬЩИКА} fillchar(M2,SIZEOF(M2),0); M1[1]:=A1; M1[2]:=B1; M1[3]:=C1; M1[4]:=D1; M1[5]:=E1; M2[1,1]:=0; M2[2,1]:=1; M2[3,1]:=2; M2[4,1]:=3; M2[5,1]:=4; M2[6,1]:=5; FOR I:=1 TO 5 DO FOR J:=1 TO 6 DO IF M1[I]=M2[J,1] THEN INC(M2[J,2]); MAX:=0; FOR I:=1 TO 6 DO IF M2[I,2]>MAX THEN BEGIN MAX:=M2[I,2]; ZUFR:=M2[I,1] END; IF (MAX=4)AND(STATUS_2=0) THEN STATUS_2:=6+0.1*ZUFR; {ЦИФРЫ ИЗ КОТОРЫХ СОСТОИТ КАРЕ} FOR I:=1 TO 6 DO IF (M2[I,2]=2)AND(MAX=3) THEN BEGIN STATUS_2:=5+0.1*ZUFR; ZUFR:=M2[I,1]; STATUS_2:=STATUS_2+0.01*ZUFR; END; {///////////////////////////////} P:=0; IF MAX=1 THEN BEGIN FOR I:=1 TO 5 DO FOR J:=1 TO 5 DO IF (M1[I]=0)AND(M1[J]=5) THEN P:=1; IF P=0 THEN STATUS_2:=4; END; {//////////////////////////////} IF (MAX=3)AND(STATUS_2=0) THEN STATUS_2:=3+0.1*ZUFR; {///////////////////////////////} IF MAX=2 THEN BEGIN STATUS_2:=1; FOR I:=1 TO 6 DO IF M2[I,2]=2 THEN STATUS_2:=STATUS_2+1+0.01*M2[I,1]; STATUS_2:=STATUS_2-1; END; {/////////////////////////////////} IF STATUS_2=0 THEN REZULT_2:=' пусто'; IF (STATUS_2>=1)AND(STATUS_2<2) THEN REZULT_2:=' пара'; IF (STATUS_2>=2)AND(STATUS_2<3) THEN REZULT_2:=' две пары'; IF (STATUS_2>=3)AND(STATUS_2<4) THEN REZULT_2:=' триада'; IF STATUS_2=4 THEN REZULT_2:=' стрит'; IF (STATUS_2>=5)AND(STATUS_2<6) THEN REZULT_2:=' фул'; IF (STATUS_2>=6)AND(STATUS_2<7) THEN REZULT_2:=' каре'; IF STATUS_2>=7 THEN REZULT_2:=' триада'; {===========//////////////////////////=================} GOTOXY(2,16); IF (STATUS_2>STATUS_1) THEN WRITELN('Я небуду перебрасывать'); {/////////////////////////////////////////////////////////} IF STATUS_20 then begin inc(f11); write(form[i],' '); end; if f11=0 then write(' эм... нет, я пожалуй не буду перебрасывать'); {/////////////////////////////////////////////////////////} GOTOXY(2,18); TEXTCOLOR(1); WRITE('У меня',REZULT_2); GOTOXY(2,19); TEXTCOLOR(6); IF STATUS_1>STATUS_2 THEN WRITELN('Ты выиграл!') ELSE WRITELN('Я выиграл!'); {/////////////////////////////////} GOTOXY(30,20); TEXTCOLOR(6+BLINK); WRITE('Еще разок? '); write('Да/Нет '); Knopka:=readkey; if (Knopka='н')or(Knopka='y') then exit; if (Knopka='д')or(Knopka='l') then goto beg; {/////////////////////////////////} READLN; end.