Programalama > PASCAL

Etiketler: blackjack

Ort. 0
Puan ver:
uses crt;

procedure kartver(tplm,kart1,kart2,kart3,kart4,ktplm,isarettk,yazil:integer);
var
   oyuncukart1,yaz,yazk,kasakart1:integer;
   cvp:char;
   isarett,isaretk:integer;
begin
   randomize;

{------------oyuncu istemeyene kadar yeni kar verme-----------}

   repeat
    writeln('(K)a§t m (P)as m');
    readln(cvp);
   if cvp='k' then
   begin
   repeat
   oyuncukart1:=(random(52)+1);
   isarett:=oyuncukart1 div 13;
   oyuncukart1:=oyuncukart1 mod 13;
   yaz:=oyuncukart1;
   if (oyuncukart1=11) or (oyuncukart1=12) or (oyuncukart1=0) then yaz:=10;
    if oyuncukart1=1 then yaz:=11;
     until (oyuncukart1<>kart1) and (oyuncukart1<>kart2) and (oyuncukart1<>kart3) and (oyuncukart1<>kart4);
     case isarett of
      0:write('verilen kart:kupa ');
      1:write('verilen kart:sinek ');
      2:write('verilen kart:karo ');
      3:write('verilen kart:maca ');
      else write('verilen kart:maca ');
      end;
      if oyuncukart1=11 then writeln('vale');
      if oyuncukart1=12 then writeln('kz');
      if oyuncukart1=0  then writeln('papaz');
      if oyuncukart1=1  then writeln('as');
      if (oyuncukart1<>11) and (oyuncukart1<>12) and (oyuncukart1<>0)
      and (oyuncukart1<>1) then writeln(yaz);
   tplm:=tplm+yaz;
   if (tplm>21) and (kart1<>1) and (kart2<>1) and (oyuncukart1<>1) then writeln('yandnz');
   if ((kart1=1) or(kart2=1) or (oyuncukart1=1)) and (tplm>21) then
   tplm:=tplm-10;
   writeln('toplam:',tplm);
   end;
   until (cvp='p') or (tplm>21);

{--------kasaya 16'y gecene kadar kart verme--------------}

   repeat
   repeat
   kasakart1:=(random(52)+1);
   isaretk:=kasakart1 div 13;
   kasakart1:=kasakart1 mod 13;
   yazk:=kasakart1;
   if (kasakart1=11) or (kasakart1=12) or (kasakart1=0) then yazk:=10;
    if kasakart1=1 then yazk:=11;
     until (kasakart1<>kart1) and (kasakart1<>kart2) and (kasakart1<>kart3) and (kasakart1<>kart4)
     and (kasakart1<>oyuncukart1);
       ktplm:=ktplm+yazk;
   until ktplm>16;

{----------bilgi verme--------------------------------------------}

{---------kasann ilk iki kartndan gizli olan--------------------------}

   if (ktplm>tplm) and (ktplm<22) then
     begin
     case isarettk of
     0:write('kasann di§er kartlar: kupa ');
     1:write('kasann di§er kartlar: sinek ');
     2:write('kasann di§er kartlar: karo ');
     3:write('kasann di§er kartlar: ma&#8225;a ');
     else write('kasann di§er kartlar: ma&#8225;a ');
     end;
     if kart4=11 then write('vale');
      if kart4=12 then write('kz');
      if kart4=0  then write('papaz');
      if kart4=1  then write('as');
      if (kart4<>11) and (kart4<>12) and (kart4<>0)
      and (kart4<>1) then write(yazil);

{---------kasann di§er kartlar------------------------------------}
     if ((ktplm>tplm) and (ktplm<22)) then begin
     case isaretk of
     0:write('  -  kupa ');
     1:write('  -  sinek ');
     2:write('  -  karo ');
     3:write('  -  ma&#8225;a ');
     else write('-  ma&#8225;a ');
      end;
     if kasakart1=11 then writeln('vale');
      if kasakart1=12 then writeln('kz');
      if kasakart1=0  then writeln('papaz');
      if kasakart1=1  then writeln('as');
      if (kasakart1<>11) and (kasakart1<>12) and (kasakart1<>0)
      and (kasakart1<>1) then writeln(yazk);

    end;
    end;
{--------puan alma durumlar-----------------------------------------}

   if (ktplm>21) and (tplm<22) then writeln('kasa batt oyuncu 1 puan');

   if (tplm>21) and (ktplm<22) then writeln('oyuncu batt kasa 1 puan');

   if (ktplm>tplm) and (ktplm<22)
      then writeln('kasa kazand kasann eli:',ktplm, '  ### 1 puan kasann')
      else if (tplm>ktplm) and (tplm<22) then writeln('oyuncu kazand ### 1 puan oyuncunun');

   if (tplm>21) and (ktplm>21) then writeln('kasa da oyuncu da yand puan verilmedi');

   if tplm=ktplm then writeln('eller e&#376;it puan verilmedi');
end;

{---------------------------------------------------------------------------}



var
    kart:array[1..20] of integer;
    isaret:array[1..20] of integer;
    yaz1:array[1..20] of integer;
    toplam,ktoplam:integer;
    cvp,cevap:char;
begin

    clrscr;
    randomize;
    repeat
    clrscr;
  {-------------------oyuncunun birinci kart belirlenir-------------------}
    kart[1]:=(random(52)+1);
    isaret[1]:=kart[1] div 13;
    kart[1]:=kart[1] mod 13;
    yaz1[1]:=kart[1];
    if (kart[1]=11) or (kart[1]=12) or (kart[1]=0) then yaz1[1]:=10;
    if kart[1]=1 then yaz1[1]:=11;
    case isaret[1] of
      0:write('birinci kart:kupa ');
      1:write('birinci kart:sinek ');
      2:write('birinci kart:karo ');
      3:write('birinci kart:maca ');
      else write('birinci kart:maca');
     end;
     if kart[1]=11 then write(' vale');
      if kart[1]=12 then write(' kz');
      if kart[1]=0  then write(' papaz');
      if kart[1]=1  then write(' as');
      if (kart[1]<>11) and (kart[1]<>12) and (kart[1]<>0)
      and (kart[1]<>1) then write(yaz1[1]);
 {-----------------oyuncunun ikinci kart---------------------------------}
    kart[2]:=(random(52)+1);
    isaret[2]:=kart[2] div 13;
    kart[2]:=kart[2] mod 13;
    yaz1[2]:=kart[2];
    if (kart[2]=11) or (kart[2]=12) or (kart[2]=0) then yaz1[2]:=10;
    if kart[2]=1 then yaz1[2]:=11;
    case isaret[2] of
      0:write(' ,ikinci kart:kupa ');
      1:write(' ,ikinci kart:sinek ');
      2:write(' ,ikinci kart:karo ');
      3:write(' ,ikinci kart:maca ');
      else write(' ,ikinci kart:maca ');
      end;
      if kart[2]=11 then write('vale');
      if kart[2]=12 then write('kz');
      if kart[2]=0  then write('papaz');
      if kart[2]=1  then write('as');
      if (kart[2]<>11) and (kart[2]<>12) and (kart[2]<>0)
      and (kart[2]<>1) then write(yaz1[2]);
 {-------------oyuncunun kartlarnn de§erleri toplam--------------}
    toplam:=yaz1[2]+yaz1[1];
    if (yaz1[1]=11) or (yaz1[2]=11) then
    writeln('   (toplam:',toplam,'   ya da   ',toplam-10,')')
    else
    writeln('  (toplam:',toplam,')');
 {-------------kasann ilk kart------------------------------}

    repeat
    kart[3]:=(random(52)+1);
    until  (kart[3]<>kart[1])  or (kart[3]<>kart[2]);
    isaret[3]:=kart[3] div 13;
    kart[3]:=kart[3] mod 13;
    yaz1[3]:=kart[3];
    if (kart[3]=11) or (kart[3]=12) or (kart[3]=0) then yaz1[3]:=10;
    if kart[3]=1 then yaz1[3]:=11;
    case isaret[3] of
      0:write('kasann ack kart:kupa ');
      1:write('kasann ack kart:sinek ');
      2:write('kasann ack kart:karo ');
      3:write('kasann ack kart:maca ');
      else write('kasann ack kart:maca ');
      end;
      if kart[3]=11 then writeln('vale');
      if kart[3]=12 then writeln('kz');
      if kart[3]=0  then writeln('papaz');
      if kart[3]=1  then writeln('as');
      if (kart[3]<>11) and (kart[3]<>12) and (kart[3]<>0)
      and (kart[3]<>1) then writeln(yaz1[3]);

{---------------kasann ikinci kart---------------------------}

      repeat
    kart[4]:=(random(52)+1);
    until  (kart[4]<>kart[1])  or (kart[4]<>kart[2]) or(kart[4]<>kart[3]);
    isaret[4]:=kart[4] div 13;
    kart[4]:=kart[4] mod 13;
    yaz1[4]:=kart[4];
    if (kart[4]=11) or (kart[4]=12) or (kart[4]=0) then yaz1[4]:=10;
    if kart[4]=1 then yaz1[4]:=11;

{-----------kasann kartlar de§erleri toplam-----------------}

    ktoplam:=yaz1[4]+yaz1[3];

{------------blackjack olmas durumlar-------------------------}

    if (toplam=21) and (ktoplam<>21) then  begin
    writeln('#BLACKJACK#');
    writeln('2 puan kazandnz');
    writeln('oyuncu:2    kasa:0');
    end;
    if (ktoplam=21) and (toplam<>21) then begin
    writeln('kasa #BLACKJACK#');
    writeln;

    case isaret[4] of
     0:write('kasann di§er kartlar: kupa ');
     1:write('kasann di§er kartlar: sinek ');
     2:write('kasann di§er kartlar: karo ');
     3:write('kasann di§er kartlar: ma&#8225;a ');
     else write('kasann di§er kartlar: ma&#8225;a ');

    if kart[4]=11 then writeln('vale');
      if kart[4]=12 then writeln('kz');
      if kart[4]=0  then writeln('papaz');
      if kart[4]=1  then writeln('as');
      if (kart[4]<>11) and (kart[4]<>12) and (kart[4]<>0)
      and (kart[4]<>1) then writeln(yaz1[4]);
    end;
    writeln;
    writeln('2 puan kasann');
    writeln('oyuncu:0   kasa:2');
    end;

{---------------blackjack olmaz ise kartverme prosedr devreye girer----}

    if (toplam<21) and (ktoplam<21) then
    kartver(toplam,kart[1],kart[2],kart[3],kart[4],ktoplam,isaret[4],yaz1[4]);


   write('devam etmek istiyormusunuz(E/H):');
   readln(cevap);
   until (cevap='h') or (cevap='H');
end.


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 - 2024 Hazır Kod - Tüm Hakları Saklıdır.
Siteden yararlanırken gizlilik ilkelerini okumanızı tavsiye ederiz.
hazirkod.com bir İSOBİL projesidir.