USES
CRT;
CONST
CESIT:
ARRAY
[
0..3
]
OF
CHAR
=(
''
,
''
,
''
,
''
);
GORUNUM:
ARRAY
[
1..13
]
OF
STRING
[
2
]=(
'A'
,
'2'
,
'3'
,
'4'
,
'5'
,
'6'
,
'7'
,
'8'
,
'9'
,
'10'
,
'J'
,
'Q'
,
'K'
);
VAR
SECILEN:
ARRAY
[
1..52
]
OF
INTEGER
;
TOP,CES,DEGER,DEGER2,TOP2,TOP11,PUANO,PUANK,SAYAC,SEKIL,SAYAC2,TOPILK,TOPILK2,I,KART:
INTEGER
;
CH:
CHAR
;GIZLI:
STRING
[
2
];NAME:
STRING
; secim,CIKAN,CIKAN2:
byte
;KO,KK:
BOOLEAN
;
PROCEDURE
GETNAME(
VAR
NAME:
STRING
);
BEGIN
CLRSCR;
GOTOXY(
18
,
10
);
WRITELN
(
'iSMiNiZi GiRiNiZ'
);
GOTOXY(
19
,
14
);READ(NAME);
END
;
PROCEDURE
RENK;
BEGIN
TEXTBACKGROUND(WHITE);
IF
(CES=
0
)
OR
(CES=
1
)
THEN
TEXTCOLOR(RED)
ELSE
TEXTCOLOR(BLACK);
END
;
PROCEDURE
RENK2;
BEGIN
TEXTBACKGROUND(BLACK);HIGHVIDEO;TEXTCOLOR(WHITE);
END
;
PROCEDURE
SIFIRLA;
BEGIN
FOR
I:=
1
TO
52
DO
SECILEN[KART]:=
0
;
TOP:=
0
;TOP2:=
0
;SAYAC:=
1
;SAYAC2:=
1
;TOP11:=
0
;KART:=
0
;CIKAN:=
0
;CIKAN2:=
0
;
END
;
PROCEDURE
PUAN_YAZ;
BEGIN
GOTOXY(
14
,
20
);
WRITELN
(
'PUAN:'
,PUANO);
GOTOXY(
46
,
20
);
WRITELN
(
'PUAN:'
,PUANK);
END
;
PROCEDURE
OKU;
BEGIN
REPEAT
CH:=READKEY;
CH:=UPCASE(CH);
UNTIL
CH
IN
[
'D'
,
'P'
];
END
;
PROCEDURE
YENDINIZ;
BEGIN
GOTOXY(
14
,
19
);
WRITELN
(NAME,
' KAZANDI'
);
PUANO:=PUANO+
1
;
SIFIRLA;
END
;
PROCEDURE
YENILDINIZ;
BEGIN
GOTOXY(
46
,
19
);
WRITELN
(
'MEHMET KAZANDI'
);
PUANK:=PUANK+
1
;
SIFIRLA;
END
;
PROCEDURE
KARMA(
VAR
CES,DEGER:
INTEGER
);
BEGIN
KART:=KART+
1
;
SECILEN[KART]:=RANDOM(
52
)+
1
;
FOR
I:=
1
TO
KART-
1
DO
BEGIN
IF
SECILEN[KART]=SECILEN[I]
THEN
BEGIN
REPEAT
SECILEN[KART]:=RANDOM(
52
)+
1
;
I:=
1
;
UNTIL
SECILEN[KART]<>SECILEN[I];
END
;
END
;
IF
(SECILEN[KART]<=
13
)
AND
(SECILEN[KART]>
1
)
THEN
CES:=
0
ELSE
IF
SECILEN[KART]<=
26
THEN
CES:=
1
ELSE
IF
SECILEN[KART]<=
39
THEN
CES:=
2
ELSE
CES:=
3
;
DEGER:=SECILEN[KART]
MOD
13
+
1
;
SEKIL:=SECILEN[KART]
MOD
13
+
1
;
IF
SEKIL
IN
[
11
,
12
,
13
]
THEN
DEGER:=
10
;
END
;
PROCEDURE
KASA(
VAR
TOP2,SAYAC2:
INTEGER
);
BEGIN
RENK;SAYAC2:=SAYAC2+
1
;
IF
SEKIL=
1
THEN
BEGIN
DEGER:=
11
;CIKAN2:=CIKAN2+
1
;
END
;
TOP2:=TOP2+DEGER;
IF
TOP2>
21
THEN
BEGIN
TOP2:=TOP2-CIKAN2*
10
;CIKAN2:=
0
;
END
;
IF
SAYAC2<>
3
THEN
BEGIN
GOTOXY(
48
,SAYAC2);
WRITELN
(CESIT[CES],GORUNUM[SEKIL]:
2
);
RENK2;
GOTOXY(
46
,
18
);
WRITELN
(
'TOPLAM: '
,TOP2:
2
);
END
;
IF
SAYAC2=
3
THEN
BEGIN
GIZLI:=GORUNUM[SEKIL];
GOTOXY(
48
,SAYAC2);
WRITELN
(
'# ?'
);
RENK2;
END
;
END
;
PROCEDURE
PLAYER(
VAR
TOP,SAYAC:
INTEGER
);
BEGIN
RENK;SAYAC:=SAYAC+
1
;
GOTOXY(
16
,SAYAC);
WRITELN
(CESIT[CES],GORUNUM[SEKIL]:
2
);
IF
SEKIL=
1
THEN
BEGIN
DEGER:=
11
;CIKAN:=CIKAN+
1
;
END
;
TOP:=TOP+DEGER;
IF
TOP>
21
THEN
BEGIN
TOP:=TOP-CIKAN*
10
;CIKAN:=
0
;
END
;
RENK2;
END
;
PROCEDURE
BASLA;
BEGIN
CLRSCR;
GOTOXY(
47
,
1
);
WRITELN
(
'MEHMET OLGAR'
);
GOTOXY(
14
,
1
);
WRITELN
(NAME);
KARMA(CES,DEGER);PLAYER(TOP,SAYAC);
KARMA(CES,DEGER); PLAYER(TOP,SAYAC);
KARMA(CES,DEGER); KASA(TOP2,SAYAC2);
KARMA(CES,DEGER);KASA(TOP2,SAYAC2);
BEGIN
KO:=
FALSE
;KK:=
FALSE
;
IF
TOP=
21
THEN
IF
TOP2<>
21
THEN
BEGIN
PUANO:=PUANO+
2
;
GOTOXY(
27
,
19
);
WRITELN
(NAME,
' BLACKJACK YAPTI'
);
KO:=
TRUE
;
END
;
IF
TOP2=
21
THEN
IF
TOP<>
21
THEN
BEGIN
PUANK:=PUANK+
2
;
GOTOXY(
27
,
19
);
WRITELN
(
'MEHMET BLACKJACK YAPTI'
);
KK:=
TRUE
;
END
;
END
;
IF
(KK=
FALSE
)
AND
(KO=
FALSE
)
THEN
BEGIN
GOTOXY(
46
,
18
);
WRITELN
(
'TOPLAM: ??'
);
END
;
IF
(KK=
TRUE
)
OR
(KO=
TRUE
)
OR
((TOP=
21
)
AND
(TOP2=
21
))
THEN
BEGIN
GOTOXY(
48
,
3
);
WRITELN
(
' ? ->'
,GIZLI:
2
);
GOTOXY(
46
,
18
);
WRITELN
(
'TOPLAM: '
,TOP2:
2
);
END
;
GOTOXY(
14
,
18
);
WRITELN
(
'TOPLAM: '
, TOP:
2
);
PUAN_YAZ;
END
;
PROCEDURE
PUANLA;
BEGIN
IF
(KO=
FALSE
)
AND
(KK=
FALSE
)
THEN
BEGIN
IF
(TOP=TOP2)
AND
(TOP<
22
)
THEN
BEGIN
GOTOXY(
34
,
19
);
WRITELN
(
'BERABER'
);
END
;
IF
(TOP=
21
)
AND
(TOP2<>
21
)
THEN
YENDINIZ;
IF
(TOP2=
21
)
AND
(TOP<>
21
)
THEN
YENILDINIZ;
IF
(TOP2<
21
)
AND
(TOP<
21
)
THEN
BEGIN
IF
TOP>TOP2
THEN
YENDINIZ;
IF
TOP<TOP2
THEN
YENILDINIZ;
END
;
IF
(TOP2<
21
)
AND
(TOP>
21
)
THEN
BEGIN
YENILDINIZ;
GOTOXY(
14
,
19
);
WRITELN
(NAME,
' BATTI..'
);
END
;
IF
(TOP2>
21
)
AND
(TOP<
21
)
THEN
BEGIN
YENDINIZ;
GOTOXY(
46
,
19
);
WRITELN
(
'MEHMET BATTI..'
);
END
;
IF
(TOP>
21
)
AND
(TOP2>
21
)
THEN
BEGIN
GOTOXY(
14
,
19
);
WRITELN
(NAME,
' BATTI..'
);
GOTOXY(
46
,
19
);
WRITELN
(
'MEHMET BATTI..'
);
END
;
END
;
END
;
BEGIN
CLRSCR;
SIFIRLA;
GETNAME(NAME);
REPEAT
RANDOMIZE;
BASLA;
IF
(KK=
FALSE
)
AND
(KO=
FALSE
)
THEN
BEGIN
GOTOXY(
24
,
22
);
WRITELN
(
'(P)AS MI?,,(D)EVAM MI?'
);
OKU;
IF
(CH=
'D'
)
AND
(TOP<>
21
)
THEN
WHILE
(TOP<
21
)
AND
(CH<>
'P'
)
DO
BEGIN
KARMA(CES,DEGER);
PLAYER(TOP,SAYAC);
GOTOXY(
14
,
18
);
WRITELN
(
'TOPLAM: '
,TOP:
2
);
OKU;
END
;
IF
(CH=
'P'
)
OR
(TOP>
20
)
THEN
BEGIN
GOTOXY(
46
,
18
);
WRITELN
(
'TOPLAM: '
,TOP2:
2
);
GOTOXY(
48
,
3
);
WRITELN
(
' ? ->'
,GIZLI:
2
);
END
;
IF
((CH=
'P'
)
OR
(TOP>
21
))
AND
(TOP2<
17
)
THEN
BEGIN
REPEAT
KARMA(CES,DEGER);
KASA(TOP2,SAYAC2);
UNTIL
(TOP2>
21
)
OR
((
16
<TOP2)
AND
(TOP2<
22
));
END
;
PUANLA;
PUAN_YAZ;
END
;
SIFIRLA;
GOTOXY(
24
,
22
);
WRITELN
(
'DEVAM ETMEK ISTERMISINIZ?#-E-*-H-#'
);
REPEAT
CH:=READKEY; CH:=UPCASE(CH);
UNTIL
CH
IN
[
'E'
,
'H'
];
UNTIL
CH=
'H'
;
END
.