Umiestnenie súboru www.TrSek.com/cover/benkovic/oko.pas
{ OKO.PAS                                Copyright (c) Jan Benkovic }
{ Program na hratie hry oko s pocitacom.                            }
{                                                                   }
{ Po zacati hry sa zobrazia karty. Vlavo hore je karta hraca, pravo }
{ hore je obratena karta pocitaca, vlavo dole je ties obratena karta}
{ pocitaca 2 a pravo dole je miesto pre karty banku. V strede je    }
{ kopa a vrchna karta je obratena. Pri kazdej katre sa nachadzaju   }
{ konta a vsadene ciastky hracov. Po odklepnuti si hrac moze vsadit.}
{ Pri nespravnom zadani vsadenej ciatky, alebo po odklepnuti bez    }
{ napisania nejakej ciastky sa program sam vypne. Maximalna hodnota }
{ vsadenia je urcena bud hracovym kontom, alebo kontom Banku, ktore }
{ sa deli 3 aby kazdi hrac mohol vsadit rovanku ciastku. Po vsadeni }
{ program caka na stlacenie 'a' alebo 'n' pre tahanie dalsej karty, }
{ alebo prestanie tahania. Po stopnuti tahania pokracuje hrac       }
{ stlacanim akejkolvek klavesi. Teraz si potiahne pocitac a Bank.   }
{ Nakoniec hra vyhodnoti kto vyhral a mate moznost bud pokracovat,  }
{ alebo hru ukoncit 'Esc', alebo klinkutim na koniec. Hra bude      }
{ pokracovat pokial niekto s hracov nedosiahne nulu, alebo bank bude}
{ mat nulu. Ostatna cast hry ostava rovnaka ako pri normalnom OKU.  }
{ Pri tejto verzii sa vynechali veci ako CERVENA SEDMA a            }
{ TRI SEDMICKY, ktore mozu byt neskor dodane navise v novsich       }
{ verziach.                                                         }
{                                                                   }
{ Datum:08.06.2000                             http://www.trsek.com }

uses crt,graph;
type pole = array [1..32] of byte;
var
 gd,gm : integer;
 pp,bb,e,g,pom : byte;
 koef_miesania :integer;
 k,a,err: integer;
 pom_hrac : byte;
 pom_PC1 : byte;
 pom_PC2 : byte;
 pom_bank : byte;
 PC1_karty,PC2_karty,karty : pole;
 c: char;
 aa,l,prem1,prem,karta : string;
 vsad_PC1: string;
 vsad_PC2: string;
 vsad_hrac: string;
 t: text;
 q,vrch,koniec,bank,hrac,PC_1,PC_2 : byte;
 jedenastka_h: byte;
 jedenastka_p1: byte;
 jedenastka_p2: byte;
 jedenastka_b: byte;
 OldPattern : FillPatternType;
 konto_hrac : longint;
 konto_PC1 : longint;
 konto_PC2 : longint;
 konto_bank : longint;
 o: integer;
 vsadene_PC1: longint;
 vsadene_PC2: longint;
 vsadene_hrac: longint;
 max_vsad: longint;
 p1,p2,p3 : byte;
 prehra_hrac,prehra_PC1,prehra_PC2,prehra_bank : byte;
 _hra : byte;
 vyber: byte;

procedure err_koniec;
 begin
  cleardevice;
  setcolor(white);
  outtextxy(200,200,'V programe nastala chyba !!');
  readkey;
  halt;
  closegraph;
 end;

procedure nor_koniec;
 begin
  cleardevice;
  if _hra=0 then
   begin
    setcolor(green);
    outtextxy(230,150,'CREATED BY TRIO CREW');
    setcolor(white);
    outtextxy(275,190,'Macko 007');
    outtextxy(190,210,'http://freeweb.coco.cz/triocrew ');
    outtextxy(230,230,'Benkovic@internet.sk ');
    setcolor(red);
    outtextxy(240,470,'PRESS ANY KEY TO END');
    readkey;
   end
  else
   begin
    setcolor(red);
    outtextxy(275,1,'RESULTS :');
    setcolor(white);
    outtextxy(265,21,'Bank :');
    str(konto_bank,prem);
    outtextxy(325,21,prem);
    outtextxy(265,41,'PC 1 :');
    str(konto_PC1,prem);
    outtextxy(325,41,prem);
    outtextxy(265,61,'PC 2 :');
    str(konto_PC2,prem);
    outtextxy(325,61,prem);
    outtextxy(265,81,'Hrac :');
    str(konto_hrac,prem);
    outtextxy(325,81,prem);
    setcolor(yellow);

    if _hra=254 then 
       outtextxy(40,200,'Prepacte ale hra bola prerusena koli dlzke premmenej, DAKUJEM !')
    else if konto_bank=0 then 
            outtextxy(200,200,'Gratulujem vyhrali ste...')
    else if (konto_hrac=0)or(konto_PC1=0)or(konto_PC2=0) then 
            outtextxy(230,200,'Jeden z hracov prehral')
    else outtextxy(195,200,'Hra bola prerusena uzivatelom');

    readkey;
    cleardevice;
    setcolor(green);
    outtextxy(230,150,'CREATED BY TRIO CREW');
    setcolor(white);
    outtextxy(275,190,'Macko 007');
    outtextxy(190,210,'http://freeweb.coco.cz/triocrew ');
    outtextxy(230,230,'Benkovic@internet.sk ');
    setcolor(red);
    outtextxy(240,470,'PRESS ANY KEY TO END');
    readkey;
   end;
   closegraph;
  halt;
 end;

procedure vyk_karty (x,y,x1,y1 : integer;cislo : string);
 begin
  setcolor(red);
  rectangle(x-1,y-1,x1+1,y1+1);
  rectangle(x-2,y-2,x1+2,y1+2);
  bar (x,y,x1,y1);
  setcolor(black);
  if (pp=1)or(bb=1) then
   begin
    val(cislo,a,err);
    if err<>0 then err_koniec;
    if a<=9 then
     begin
      outtextxy(x+3,(345-(q*19+q)),cislo);
      outtextxy(x1-8,(460-(q*19+q)),cislo);
      outtextxy(x1-8,(345-(q*19+q)),cislo);
      outtextxy(x+3,(460-(q*19+q)),cislo);
     end
    else
     begin
      outtextxy(x+3,(345-(q*19+q)),cislo);
      outtextxy(x1-17,(460-(q*19+q)),cislo);
      outtextxy(x1-17,(345-(q*19+q)),cislo);
      outtextxy(x+3,(460-(q*19+q)),cislo);
     end;
   end
  else
   begin
    val(cislo,a,err);
    if err<>0 then err_koniec;
    if a<=9 then
     begin
      outtextxy(x+3,(19+(q*19+q)),cislo);
      outtextxy(x1-8,(19+(q*19+q)),cislo);
      outtextxy(x1-8,(134+(q*19+q)),cislo);
      outtextxy(x+3,(134+(q*19+q)),cislo);
     end
    else
     begin
      outtextxy(x+3,(19+(q*19+q)),cislo);
      outtextxy(x1-17,(19+(q*19+q)),cislo);
      outtextxy(x1-17,(134+(q*19+q)),cislo);
      outtextxy(x+3,(134+(q*19+q)),cislo);
     end;
   end;
 end;

procedure zakr_karty(x,y,x1,y1 : integer);
 begin
  setcolor(red);
  rectangle(x-1,y-1,x1+1,y1+1);
  rectangle(x-2,y-2,x1+2,y1+2);
  SetFillStyle(XHatchFill,red);
  bar (x,y,x1,y1);
  setcolor(black);
  GetFillPattern(OldPattern);
  SetFillPattern(OldPattern,White);
 end;

procedure plyer1 (posun_hrac:byte);
 begin
  repeat
   e:=e+1;
   str(hrac,prem);
   repeat c:=readkey until (c='a')or(c='A')or(c='n')or(c='N');
   case c of
    'a','A' : begin
               posun_hrac:=posun_hrac+1;
               q:=q+1;
               if (pom_hrac=11)and(karty[e+5]=11) then jedenastka_h:=1;
               hrac:=hrac+karty[e+5];
               str(karty[e+5],prem1);
               vyk_karty(2,(14+(posun_hrac*19+posun_hrac)),102,(144+(posun_hrac*19+posun_hrac)),prem1);
               setcolor(white);
              end;
    'n','N' : koniec:=koniec+1;
   end;
  until (hrac>=19)or(koniec=1);
  str(hrac,prem);
 end;

procedure player2 (posun_PC1:byte);
 begin
  repeat
   e:=e+1;
   posun_PC1:=posun_PC1+1;
   if (pom_PC1=11)and(karty[e+5]=11) then jedenastka_p1:=1;
   case PC_1 of
    1..13 : begin
             PC_1:=PC_1+karty[e+5];
             zakr_karty(500,(14+(posun_PC1*19+posun_PC1)),600,(144+(posun_PC1*19+posun_PC1)));
             PC1_karty[e]:=karty[e+5];
            end;
    14..16 : begin
              g:=random(5)+1;
              if (g>=1)and(g<=3) then
               begin
                PC_1:=PC_1+karty[e+5];
                PC1_karty[e]:=karty[e+5];
                zakr_karty(500,(14+(posun_PC1*19+posun_PC1)),600,(144+(posun_PC1*19+posun_PC1)));
               end
              else koniec:=koniec+1;
             end;
    17..21 : koniec:=koniec+1;
   end;
  until (PC_1>=19)or(koniec=1);
 end;

procedure player3(posun_PC3:byte);
 begin
  repeat
    posun_PC3:=posun_PC3+1;
    e:=e+1;
    if (pom_PC2=11)and(karty[e+5]=11) then jedenastka_p2:=1;
    case PC_2 of
     1..15 : begin
              PC_2:=PC_2+karty[e+5];
              PC2_karty[e]:=karty[e+5];
              zakr_karty(2,340-(posun_PC3*19+posun_PC3),102,470-(posun_PC3*19+posun_PC3));
             end;
     16..17 : begin
               g:=random(5)+1;
               if (g>=1)and(g<=3) then
                begin
                 PC_2:=PC_2+karty[e+5];
                 zakr_karty(2,340-(posun_PC3*19+posun_PC3),102,470-(posun_PC3*19+posun_PC3));
                 PC2_karty[e]:=karty[e+5];
                end
               else koniec:=koniec+1;
              end;
     18..21 : koniec:=koniec+1;
    end;
   until (PC_2>=19)or(koniec=1);
  end;

procedure player4(posun_PC4:byte);
 begin
  bb:=1;
  repeat
   if (bank+vrch=21)or(bank+vrch=20)or(bank+vrch=19)or(bank+vrch=18)then
    begin
     posun_PC4:=posun_PC4+1;
     q:=q+1;
     bank:=bank+vrch;
     zakr_karty(250,135,350,265);
     str(vrch,l);
     vyk_karty(500,340-(posun_PC4*19+posun_PC4),600,470-(posun_PC4*19+posun_PC4),l);
    end;
   posun_PC4:=posun_PC4+1;
   e:=e+1;
   if (pom_bank=11)and(karty[e+5]=11) then jedenastka_b:=1;
   case bank of
    1..14 : begin
             q:=q+1;
             str(karty[e+5],l);
             vyk_karty(500,340-(posun_PC4*19+posun_PC4),600,470-(posun_PC4*19+posun_PC4),l);
             bank:=bank+karty[e+5];
            end;
    15..17 : begin
              g:=random(5)+1;
              if (g>=1)and(g<=2) then
               begin
                q:=q+1;
                bank:=bank+karty[e+5];
                str(karty[e+5],l);
                vyk_karty(500,340-(posun_PC4*19+posun_PC4),600,470-(posun_PC4*19+posun_PC4),l);
               end
              else koniec:=koniec+1;
             end;
    18..21 : koniec:=koniec+1;
   end;
  until (bank>=19)or(koniec=1);
  bb:=0;
 end;

procedure miesanie;
 begin
  a:=0;
  koef_miesania:=0;
  assign(t,'oko.dat');
  reset(t);
  randomize;
  repeat
   e:=e+1;
   readln(t,karta);
   val(karta,a,err);
   if err<>0 then err_koniec;
   if (a<>3)and(a<>4)and(a<>2)and(a<>7)and(a<>8)and(a<>9)and(a<>10)and(a<>11) then err_koniec;
   karty[e]:=a;
  until e=32;
  close(t);
  repeat
   for e:=1 to 32 do
    begin
     g:=random(32)+1;
     pom:=karty[g];
     karty[g]:=karty[e];
     karty[e]:=pom;
    end;
   koef_miesania:=koef_miesania+1;
  until koef_miesania=2501;
 end;

procedure vsadenie_hraca;
 begin
  gotoxy(16,2);
  readln(aa);
  val(aa,vsadene_hrac,err);
  if err<>0 then vsadene_hrac:=0;
  if (vsadene_hrac>max_vsad)or(vsadene_hrac>konto_hrac) then
   begin
    outtextxy(160,18,'- Nevsadil si sapravne');
    readkey;
    setcolor(black);
    outtextxy(160,18,'- Nevsadil si sapravne');
    setcolor(white);
    vsadenie_hraca;
   end;
 end;

procedure hra;
 begin
  cleardevice;
  if (konto_bank<=2)or(konto_hrac=0)or(konto_PC1=0)or(konto_PC2=0)or(_hra=254)then nor_koniec;
  setcolor(white);
  outtextxy(270,150,'-=LOADING=-');
  outtextxy(260,220,'Miesaine...');
  miesanie;
  outtextxy(350,220,'OK');
  outtextxy(260,240,'Nulovanie...');
  inc(_hra);
  prehra_bank:=0;
  prehra_hrac:=0;
  prehra_PC1:=0;
  prehra_PC2:=0;
  p1:=0;
  p2:=0;
  p3:=0;
  randomize;
  koniec:=0;
  vsadene_PC1:=0;
  vsadene_PC2:=0;
  vsadene_hrac:=0;
  e:=0;
  for k:= 1 to 32 do
   begin
    PC1_karty[k]:=0;
    PC2_karty[k]:=0;
   end;
  bank:=0;
  PC_1:=0;
  PC_2:=0;
  hrac:=0;
  vrch:=0;
  pom_hrac:=0;
  pom_PC1 :=0;
  pom_PC2 :=0;
  pom_bank :=0;
  jedenastka_h:=0;
  jedenastka_p1:=0;
  jedenastka_p2:=0;
  jedenastka_b:=0;
  outtextxy(350,240,'OK');
  outtextxy(260,260,'Tahanie....');
  bank:=karty[1];
  PC_1:=karty[2];
  PC_2:=karty[3];
  hrac:=karty[4];
  vrch:=karty[5];
  pom_hrac:=karty[4];
  pom_PC1 :=karty[2];
  pom_PC2 :=karty[3];
  pom_bank :=karty[1];
  outtextxy(350,260,'OK');
  cleardevice;
  str(vrch,prem);
  setcolor(red);
  rectangle(250-1,135-1,350+1,265+1);
  rectangle(250-2,135-2,350+2,265+2);
  bar (250,135,350,265);
  setcolor(black);
  if vrch<=9 then
   begin
    outtextxy(250+3,140,prem);
    outtextxy(350-8,140,prem);
    outtextxy(350-8,255,prem);
    outtextxy(250+3,255,prem);
   end
  else
   begin
    outtextxy(250+3, 140,prem);
    outtextxy(350-17,140,prem);
    outtextxy(350-17,255,prem);
    outtextxy(250+3, 255,prem);
   end;
  setcolor(white);
  outtextxy(460,465,'Bank ma :');
  zakr_karty(500,34,600,164);
  setcolor(white);
  outtextxy(460,5,'Konto PC : ');
  outtextxy(545,5,vsad_PC1);
  str(PC_1,prem);
  PC1_karty[1]:=PC_1;
  outtextxy(460,18,'Vsadil : ');
  max_vsad:=(konto_bank)DIV(3);
  case PC_1 of
   3..5 : begin
           case konto_PC1 of
            1..10 : vsadene_PC1:=1;
            11..25 : vsadene_PC1:=5;
            26..50 : vsadene_PC1:=random(10)+11;
            51..100 : vsadene_PC1:=random(10)+11;
            101..200 : vsadene_PC1:=random(20)+21;
            201..250 : vsadene_PC1:=random(55)+11;
            250..500 : vsadene_PC1:=random(90)+11;
            else vsadene_PC1:=random(140)+51;
           end;
           if vsadene_PC1>max_vsad then vsadene_PC1:=max_vsad;
          end;
   7..9 : begin
           case konto_PC1 of
            1..10 : vsadene_PC1:=1;
            11..25 : vsadene_PC1:=10;
            26..50 : vsadene_PC1:=random(15)+11;
            51..100 : vsadene_PC1:=random(30)+11;
            101..200 : vsadene_PC1:=random(35)+21;
            201..250 : vsadene_PC1:=random(75)+11;
            250..500 : vsadene_PC1:=random(90)+21;
            else vsadene_PC1:=random(150)+81;
           end;
           if vsadene_PC1>max_vsad then vsadene_PC1:=max_vsad;
          end;
   10..11 : begin
             case konto_PC1 of
              1..4 : vsadene_PC1:=1;
              5..10 : vsadene_PC1:=3;
              11..25 : vsadene_PC1:=11;
              26..50 : vsadene_PC1:=random(10)+16;
              51..100 : vsadene_PC1:=random(35)+16;
              101..200 : vsadene_PC1:=random(40)+31;
              201..250 : vsadene_PC1:=random(80)+21;
              250..500 : vsadene_PC1:=random(115)+31;
              else vsadene_PC1:=random(160)+131;
             end;
             if vsadene_PC1>max_vsad then vsadene_PC1:=max_vsad;
            end;
  end;
  konto_PC1:=konto_PC1-vsadene_PC1;
  konto_bank:=konto_bank-vsadene_PC1;
  str(vsadene_PC1,prem);
  outtextxy(530,18,prem);
  str(konto_PC1,prem);
  outtextxy(545,5,prem);
  zakr_karty(2,320,102,450);
  setcolor(white);
  outtextxy(1,458,'Konto PC : ');
  outtextxy(86,458,vsad_PC2);
  str(PC_2,prem);
  PC2_karty[1]:=PC_2;
  outtextxy(1,468,'Vsadil : ');
  case PC_2 of
   3..5 : begin
           case konto_PC2 of
            1..10 : vsadene_PC2:=1;
            11..25 : vsadene_PC2:=5;
            26..50 : vsadene_PC2:=random(10)+11;
            51..100 : vsadene_PC2:=random(20)+11;
            101..200 : vsadene_PC2:=random(30)+21;
            201..250 : vsadene_PC2:=random(60)+21;
            250..500 : vsadene_PC2:=random(100)+11;
            else vsadene_PC2:=random(160)+71;
           end;
           if vsadene_PC2>max_vsad then vsadene_PC2:=max_vsad;
          end;
   7..9 : begin
           case konto_PC2 of
            1..10 : vsadene_PC2:=1;
            11..25 : vsadene_PC2:=10;
            26..50 : vsadene_PC2:=random(15)+11;
            51..100 : vsadene_PC2:=random(30)+11;
            101..200 : vsadene_PC2:=random(40)+21;
            201..250 : vsadene_PC2:=random(105)+21;
            250..500 : vsadene_PC2:=random(110)+11;
            else vsadene_PC2:=random(180)+81;
           end;
           if vsadene_PC2>max_vsad then vsadene_PC2:=max_vsad;
          end;
   10..11 : begin
             case konto_PC2 of
              1..4 : vsadene_PC2:=1;
              5..10 : vsadene_PC2:=3;
              11..25 : vsadene_PC2:=11;
              26..50 : vsadene_PC2:=random(10)+16;
              51..100 : vsadene_PC2:=random(25)+16;
              101..200 : vsadene_PC2:=random(50)+21;
              201..250 : vsadene_PC2:=random(100)+21;
              250..500 : vsadene_PC2:=random(115)+11;
              else vsadene_PC2:=random(200)+91;
             end;
             if vsadene_PC2>max_vsad then vsadene_PC2:=max_vsad;
            end;
  end;
  konto_PC2:=konto_PC2-vsadene_PC2;
  konto_bank:=konto_bank-vsadene_PC2;
  str(vsadene_PC2,prem);
  outtextxy(86,468,prem);
  str(konto_PC2,prem);
  outtextxy(86,458,prem);
  str(konto_bank,prem);
  outtextxy(540,465,prem);
  q:=1;
  str(hrac,prem);
  vyk_karty(2,34,102,164,prem);
  setcolor(white);
  str(konto_hrac,vsad_hrac);
  outtextxy(1,5,'Momentalne mas : ');
  outtextxy(135,5,vsad_hrac);
  outtextxy(1,18,'Kolko vsadit : ');
  str(konto_hrac,prem);
  str(max_vsad,prem1);
  outtextxy(115,18,'Max ');
  if konto_hrac>max_vsad then outtextxy(145,18,prem1)
  else if konto_hrac<max_vsad then outtextxy(145,18,prem)
        else outtextxy(145,18,prem1);
  readkey;
  setcolor(black);
  if konto_hrac>max_vsad then outtextxy(145,18,prem1)
  else if konto_hrac<max_vsad then outtextxy(145,18,prem)
        else outtextxy(145,18,prem1);
  outtextxy(115,18,'Max ');
  setcolor(white);
  vsadenie_hraca;
  setcolor(black);
  str(konto_bank,prem);
  outtextxy(540,465,prem);
  setcolor(white);
  konto_hrac:=(konto_hrac)-vsadene_hrac;
  konto_bank:=konto_bank-vsadene_hrac;
  str(konto_bank,prem);
  outtextxy(540,465,prem);
  plyer1(1);
  koniec:=0;
  q:=0;
  readkey;
  player2(1);
  koniec:=0;
  q:=0;
  readkey;
  player3(1);
  koniec:=0;
  q:=1;
  str(bank,prem);
  bb:=1;
  vyk_karty(500,320,600,450,prem);
  bb:=0;
  player4(1);
  koniec:=0;
  readkey;
  q:=0;
  o:=0;
  for k:=1 to 32 do
   begin
    if PC1_karty[k]=0 then
    else
     begin
      o:=o+1;
      q:=q+1;
      str(PC1_karty[k],l);
      vyk_karty(500,(14+(o*19+o)),600,(144+(o*19+o)),l);
     end;
   end;
  readkey;
  pp:=1;
  o:=0;
  q:=0;
  for k:=1 to 32 do
   begin
    if PC2_karty[k]=0 then
    else
     begin
      o:=o+1;
      str(PC2_karty[k],l);
      q:=q+1;
      vyk_karty(2,340-(o*19+o),102,470-(o*19+o),l)
     end;
   end;
  pp:=0;
  readkey;
  if hrac>21 then
   begin
    if jedenastka_h=1 then
    else
     begin
      p1:=1;
      konto_bank:=konto_bank+(2*vsadene_hrac);
      prehra_hrac:=1;
     end;
   end;
  if PC_1>21 then
   begin
    if jedenastka_p1=1 then
    else
     begin
      p2:=1;
      konto_bank:=konto_bank+(2*vsadene_PC1);
      prehra_PC1:=1;
     end;
   end;
  if PC_2>21 then
   begin
    if jedenastka_p2=1 then
    else
     begin
      p3:=1;
      konto_bank:=konto_bank+(2*vsadene_PC2);
      prehra_PC2:=1;
     end;
   end;
  if bank>21 then
   begin
    if jedenastka_b=1 then
     else
      begin
       prehra_bank:=1;
       if p1=1 then
       else
        begin
         konto_hrac:=konto_hrac+(2*vsadene_hrac);
         p1:=1;
        end;
       if p2=1 then
       else
        begin
         konto_PC1:=konto_PC1+(2*vsadene_PC1);
         p2:=1;
        end;
       if p3=1 then
       else
        begin
         p3:=1;
         konto_PC2:=konto_PC2+(2*vsadene_PC2);
        end;
      end;
   end;
  if p1=0 then
   begin
    if (jedenastka_b=1) and (jedenastka_h=1) then
     begin
      konto_bank:=konto_bank+(2*vsadene_hrac);
      prehra_hrac:=1;
     end
    else if (jedenastka_b=1) and (jedenastka_h=0) then
     begin
      konto_bank:=konto_bank+(2*vsadene_hrac);
      prehra_hrac:=1;
     end
    else if (jedenastka_b=0) and (jedenastka_h=1) then
     begin
      konto_hrac:=konto_hrac+(2*vsadene_hrac);
      prehra_bank:=1;
     end
    else if bank>hrac then
     begin
      konto_bank:=konto_bank+(2*vsadene_hrac);
      prehra_hrac:=1;
     end
    else if bank<hrac then
     begin
      konto_hrac:=konto_hrac+(2*vsadene_hrac);
      prehra_bank:=1;
     end
    else if bank=hrac then
     begin
      konto_bank:=konto_bank+(2*vsadene_hrac);
      prehra_hrac:=1;
     end;
   end;
  if p2=0 then
   begin
    if (jedenastka_b=1) and (jedenastka_p1=1) then
     begin
      konto_bank:=konto_bank+(2*vsadene_PC1);
      prehra_PC1:=1;
     end
    else if (jedenastka_b=1) and (jedenastka_p1=0) then
     begin
      konto_bank:=konto_bank+(2*vsadene_PC1);
      prehra_PC1:=1;
     end
    else if (jedenastka_b=0) and (jedenastka_p1=1) then
     begin
      konto_PC1:=konto_PC1+(2*vsadene_PC1);
      prehra_bank:=1;
     end
    else if bank>PC_1 then
     begin
      konto_bank:=konto_bank+(2*vsadene_PC1);
      prehra_PC1:=1;
     end
    else if bank<PC_1 then
     begin
      konto_PC1:=konto_PC1+(2*vsadene_PC1);
      prehra_bank:=1;
     end
    else if bank=PC_1 then
     begin
      konto_bank:=konto_bank+(2*vsadene_PC1);
      prehra_PC1:=1;
     end;
   end;
  if p3=0 then
   begin
    if (jedenastka_b=1)and(jedenastka_p2=1) then
     begin
      konto_bank:=konto_bank+(2*vsadene_PC2);
      prehra_PC2:=1;
     end
    else if (jedenastka_b=1) and (jedenastka_p2=0) then
     begin
      konto_bank:=konto_bank+(2*vsadene_PC2);
      prehra_PC2:=1;
     end
    else if (jedenastka_b=0) and (jedenastka_p1=1) then
     begin
      konto_PC2:=konto_PC2+(2*vsadene_PC2);
      prehra_bank:=1;
     end
    else if bank>PC_2 then
     begin
      konto_bank:=konto_bank+(2*vsadene_PC2);
      prehra_Pc2:=1;
     end
    else if bank<PC_2 then
     begin
      konto_PC2:=konto_PC2+(2*vsadene_PC2);
      prehra_bank:=1;
     end
    else if bank=PC_2 then
     begin
      konto_bank:=konto_bank+(2*vsadene_PC2);
      prehra_PC2:=1;
     end;
    end;
  bar(190,100,420,300);
  setcolor(yellow);
  outtextxy(275,80,'Vysledky');
  setcolor(blue);
  line(190,220,420,220);
  rectangle(190-1,100-1,420+1,300+1);
  rectangle(190-2,100-2,420+2,300+2);
  rectangle(192,102,292,122);
  rectangle(192,132,292,152);
  rectangle(192,162,292,182);
  rectangle(192,192,292,212);
  rectangle(300,102,330,122);
  rectangle(300,132,330,152);
  rectangle(300,162,330,182);
  rectangle(300,192,330,212);
  rectangle(338,102,418,122);
  rectangle(338,132,418,152);
  rectangle(338,162,418,182);
  rectangle(338,192,418,212);
  rectangle(250,260,300,298);
  rectangle(310,260,360,298);
  rectangle(192,228,280,248);
  rectangle(288,228,418,248);
  setcolor(black);
  outtextxy(257,275,'Dalej');
  outtextxy(321,275,'Exit');
  outtextxy(195,233,'Pocet hier');
  str(_hra,prem);
  outtextxy(292,233,prem);
  outtextxy(195,107,'Hrac');
  outtextxy(195,137,'Pocitac I');
  outtextxy(195,167,'Pocitac II');
  outtextxy(195,197,'Bank');
  str(konto_hrac,prem);
  outtextxy(341,107,prem);
  str(konto_PC1,prem);
  outtextxy(341,137,prem);
  str(konto_PC2,prem);
  outtextxy(341,167,prem);
  str(konto_bank,prem);
  outtextxy(341,197,prem);
  if prehra_hrac=1 then outtextxy(305,107,'-P-')
  else outtextxy(305,107,'-V-');
  if prehra_PC1=1 then outtextxy(305,137,'-P-')
  else outtextxy(305,137,'-V-');
  if prehra_PC2=1 then outtextxy(305,167,'-P-')
  else outtextxy(305,167,'-V-');
  if prehra_bank=1 then outtextxy(305,197,'-P-')
  else outtextxy(305,197,'-V-');
  koniec:=0;
  vyber:=1;
  setcolor(green);
  rectangle(250,260,300,298);
  setcolor(green);
  outtextxy(257,275,'Dalej');
  repeat
   repeat c:=readkey until (c=#13)or(c=#27)or(c='K')or(c='M');
   case c of
    'M' : begin
           vyber:=2;
           setcolor(blue);
           rectangle(250,260,300,298);
           setcolor(red);
           rectangle(310,260,360,298);
           outtextxy(321,275,'Exit');
           setcolor(black);
           outtextxy(257,275,'Dalej');
          end;
    'K' : begin
           vyber:=1;
           setcolor(green);
           rectangle(250,260,300,298);
           setcolor(blue);
           rectangle(310,260,360,298);
           setcolor(green);
           outtextxy(257,275,'Dalej');
           setcolor(black);
           outtextxy(321,275,'Exit');
          end;
    #13 : koniec:=1;
    #27 : begin
           koniec:=1;
           vyber:=2;
          end;
   end;
  until koniec=1;
  if vyber=1 then hra
  else nor_koniec;
 end;

procedure Help;
 var
  stopp: string;
  text : string;
  rychlost : integer;
  rych : string;
 begin
  e:=0;
  assign(t,'oko.dat');
  reset(t);
  repeat
   readln(t,stopp);
  until stopp='*';
  cleardevice;
  setcolor(red);
  outtextxy(300,1,'HELP');
  readln(t,rych);
  val(rych,rychlost,err);
  if err<>0 then err_koniec;
  setcolor(white);
  repeat
   inc(e);
   readln(t,text);
   delay(rychlost);
   outtextxy(1,20+e*12,text);
   if e=16 then delay(0);
  until e=19;
  setcolor(red);
  outtextxy(300,330,'INFO');
  setcolor(white);
  e:=0;
  repeat
   inc(e);
   readln(t,text);
   delay(rychlost);
   outtextxy(1,340+e*12,text);
  until e=9;
  e:=0;
  setcolor(red);
  outtextxy(265,470,'PRESS ANY KEY');
  readkey;
  hra;
 end;

procedure Credits;
 var
  stopp: string;
  text : string;
 begin
  e:=0;
  assign(t,'oko.dat');
  reset(t);
  repeat
   readln(t,stopp);
  until stopp='=';
  cleardevice;
  setcolor(red);
  outtextxy(280,1,'CREDITS');
  setcolor(white);
  repeat
   inc(e);
   readln(t,text);
   outtextxy(10,40+e*12,text);
  until e=26;
  setcolor(red);
  e:=0;
  outtextxy(265,470,'PRESS ANY KEY ');
  readkey;
  hra;
 end;

begin
 clrscr;
 detectgraph(gd,gm);
 initgraph(gd,gm,'');
 randomize;
 cleardevice;
 assign(t,'oko.dat');
 reset(t);
 repeat
  readln(t);
  e:=e+1;
 until eof(t);
 if e<>90 then err_koniec;
 e:=0;
 cleardevice;
 konto_hrac:=random(215)+101;
 konto_PC1:=random(200)+151;
 konto_PC2:=random(200)+201;
 konto_bank:=(konto_PC1)+(konto_PC2)+(konto_hrac)+(random(250)+51);
 _hra:=0;
 setcolor(green);
 rectangle(235,195,375,210);
 setcolor(white);
 outtextxy(290,150,'MENU');
 outtextxy(272,200,'Nova Hra');
 outtextxy(260,220,'Info & Help');
 outtextxy(277,240,'Credits');
 outtextxy(290,260,'Exit');
 vyber:=1;
 koniec:=0;
 repeat
  repeat c:=readkey until (c='H')or(c='P')or(c=#13)or(c=#27);
  case c of
   'P' : begin
          if vyber=4 then
           begin
            vyber:=1;
            setcolor(black);
            rectangle(235,175+4*19+4,375,190+4*19+4);
            setcolor(green);
            rectangle(235,175+vyber*19+vyber,375,190+vyber*19+vyber);
           end
          else vyber:=vyber+1;
          setcolor(black);
          if vyber=1 then
          else rectangle(235,155+vyber*19+vyber,375,170+vyber*19+vyber);
          setcolor(green);
          rectangle(235,175+vyber*19+vyber,375,190+vyber*19+vyber);
         end;
   'H' : begin
          if vyber=1 then
           begin
            vyber:=4;
            setcolor(black);
            rectangle(235,175+1*19+1,375,190+1*19+1);
            setcolor(green);
            rectangle(235,175+vyber*19+vyber,375,190+vyber*19+vyber);
           end
          else vyber:=vyber-1;
          setcolor(black);
          if vyber=4 then
          else rectangle(235,195+vyber*19+vyber,375,210+vyber*19+vyber);
          setcolor(green);
          rectangle(235,175+vyber*19+vyber,375,190+vyber*19+vyber);
         end;
   #13 : koniec:=1;
   #27 : begin
          koniec:=1;
          vyber:=4;
         end;
  end;
 until koniec=1;
 case vyber of
  1 : hra;
  2 : Help;
  3 : Credits;
  4 : nor_koniec;
 end;
end.

Copyrigth by Zdeno Sekerak 2007, http://www.trsek.com