Programalama > PASCAL

Etiketler: blackjack

Ort. 0
Puan ver:
USES CRT;{WINDOWS ICIN WINCRT}

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;{KULLANICIDAN ILGILI YERLERDE KULLANMAK ICIN ISIM ALIR}

PROCEDURE RENK;
 BEGIN
  TEXTBACKGROUND(WHITE);
  IF (CES=0)OR(CES=1)THEN TEXTCOLOR(RED)ELSE TEXTCOLOR(BLACK);
 END;{KARTLARIN ARKA PLAN VE TEXT RENGINI BELIRLER}

PROCEDURE RENK2;
BEGIN
  TEXTBACKGROUND(BLACK);HIGHVIDEO;TEXTCOLOR(WHITE);
 END;{ORJINAL TEXT VE ARKA PLAN RENGINI GERI YUKLER}

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;{DEGISKENLERI SIFIRLAR}

PROCEDURE PUAN_YAZ;
BEGIN
 GOTOXY(14,20);WRITELN('PUAN:',PUANO);
 GOTOXY(46,20);WRITELN('PUAN:',PUANK);
END;{PUANLARI ILGILI YERLERE YAZAR}

PROCEDURE OKU;
 BEGIN
   REPEAT
    CH:=READKEY;
    CH:=UPCASE(CH);
   UNTIL CH IN['D','P'];
 END;{KLAVYEDEN DOGRU VERI ALINMASINI SAGLAR}

PROCEDURE YENDINIZ;
BEGIN
 GOTOXY(14,19);WRITELN(NAME,'  KAZANDI');
 PUANO:=PUANO+1;
 SIFIRLA;
END;{OYUNCUNUN KAZANDIGI DURUMLARDA KULLANILIR}

PROCEDURE YENILDINIZ;
BEGIN
 GOTOXY(46,19);WRITELN('MEHMET KAZANDI');
 PUANK:=PUANK+1;
 SIFIRLA;
END;{OYUNCUNUN KAYBETTIGI DURUMLARDA KULLANILIR}

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;{KARMA ISLEMINI YAPAR VE KARTIN DAHA ONCE KULLANILIP
                                           KULLANILMADIGINI KONTROL EDER}


PROCEDURE KASA(VAR TOP2,SAYAC2:INTEGER);
BEGIN
  RENK;SAYAC2:=SAYAC2+1;
  {KASA ICIN AS DURUMU}
 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;{KASANIN OYUNLA ILGILI TUM ISLEMLERINI YAPAR}

PROCEDURE PLAYER(VAR TOP,SAYAC:INTEGER);
 BEGIN
  RENK;SAYAC:=SAYAC+1;
  GOTOXY(16,SAYAC);WRITELN(CESIT[CES],GORUNUM[SEKIL]:2);
  {OYUNCU ICIN AS DURUMU}
  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;{OYUNCUNU OYUNLA ILGILI TUM ISLEMLERINI YAPAR}

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;{OYUN MASASINI HAZIRLAR VE BLACKJACK KONTROLU YAPAR}

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;{PUANLAMA ISLEMINI YAPAR}

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;{OYUNCUNUN ISLEMLERI}

     IF (CH='P')OR(TOP>20) THEN
                            BEGIN
                             GOTOXY(46,18);WRITELN('TOPLAM: ',TOP2:2);
                             GOTOXY(48,3);WRITELN(' ? ->',GIZLI:2);
                            END;{GIZLENMIS KAGIDI DOGRU ZAMANDA
                                                       ILGILI YERE YAZAR}

     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;{KASANIN ISLEMLERI}
     PUANLA;
     PUAN_YAZ;
    END;{OYUNUN TUM ISLEMLERI}
     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.{OYUN}


Yorumlar                 Yorum Yaz
Bu hazır kod'a ilk yorumu siz yapın!
KATEGORİLER
ASP - 240
ASP.NET - 24
C# - 75
C++ - 174
CGI - 8
DELPHI - 247
FLASH - 49
HTML - 536
PASCAL - 246
PERL - 11
PHP - 160
WML - 9
XML - 2
Copyright © 2002 - 2020 Hazır Kod - Tüm Hakları Saklıdır.
Siteden yararlanırken gizlilik ilkelerini okumanızı tavsiye ederiz.
hazirkod.com bir İSOBİL projesidir.