English
English
Slovensky
Slovensky
Česky
Česky
Šarišsky
Šarišsky
 
Kategória: Programy v Pascale (KMP)
ruleta.png
Autor: Peter Sulko
Program: Ruleta.pas
Súbor exe: Ruleta.exe
Potrebné: Rule01.pas
Ide o známu kasínovú hru. Minimálny vklad je 10 Korún. Ľavým tlačítkom myši v hracom poli zvyšujem stávku o 10, pravým tlačítkom myši v hracom poli znižujem stávku o 10.
Kredit je teoreticky nevyčerpateľný, takže tipujte......
Zobrazené: 633x


{ RULETA.PAS                                    Copyright (c) Sulko }
{                                                                   }
{ Ide o znamu kasinovi hru. Minimalny vklad je 10 Korun.            }
{ Lavym tlacitkom mysi v hracom poli zvysujem stavku o 10,          }
{ pravym tlacitkom mysi v hracom poli znizujem stavku o 10.         }
{ Kredit je teoreticky nevycerpatelny, takze tipujte......          }
{                                                                   }
{ Author: Peter Sulko                                               }
{ Date  : 2003                                 http://www.trsek.com }
 
Program RULETA;
Uses Dos, Crt, Graph, RULE01;
 
const Cervene=[1,3,5,7,9,12,14,16,18,19,21,23,25,27,30,32,34,36];
      Cierne=[2,4,6,8,10,11,13,15,17,20,22,24,26,28,29,31,33,35];
 
var GD,GM,Bu,X,Y,Xp,Yp: Integer;
    i : Word;
    R : Registers;
    Volba,Tip : Byte;
    T,OP : Array[1..133] of Word;
    V : Array[1..20] of String[2];
    Vklad : Longint;
    Kredit : Real;
    Cislo : Byte;
 
Procedure POHYB(var Bu,X,Y:Integer);   { pohyb kurzora mysi, zistuje polohu }
  begin
    R.ax:=3;  Intr($33,R);
    Bu:=R.bx;  X:=R.cx;  Y:=R.dx;  { do premennych ulozi aktualne hodnoty bu,x,y }
    while R.bx<>0 do               { ak sa stlaci tlacitko, vyhodnoti sa az po jeho uvolneni }
      begin  R.ax:=3;  Intr($33,R);  end;
  end;
 
Procedure ZHASNI;  { zhasne kurzor mysi }
  begin
    R.ax:=2;  Intr($33,R);
  end;
 
Procedure SVIET;  { zobrazi sa kurzor mysi }
  begin
    R.ax:=1;  Intr($33,R);
  end;
 
Procedure SIET;
  var P01 : Byte;
  begin
    ZHASNI;
    SetColor(7);
    for P01:=0 to 13 do
      Line(50+P01*45,70,50+P01*45,205);
    for P01:=0 to 3 do
      Line(50,70+P01*45,635,70+P01*45);
 
    MoveTo(50,70); LineTo(5,70); LineTo(5,205); LineTo(50,205);
    LineTo(50,295); LineTo(590,295); LineTo(590,205);
    Line(50,250,590,250);
    Line(230,205,230,295);
    Line(410,205,410,295);
    Line(140,250,140,295);
    Line(320,250,320,295);
    Line(500,250,500,295);
    SVIET;
  end;
 
Procedure STVORCE;
  begin
    ZHASNI;
    SetFillStyle(0,0); Bar(5,70,635,295);
    SetFillStyle(1,2); Bar(5,70,50,205); { 0}
    SetFillStyle(1,4);
    Bar( 50, 70, 95,115); { 1}
    Bar( 50,160, 95,205); { 3}
    Bar( 95,115,140,160); { 5}
    Bar(140, 70,185,115); { 7}
    Bar(140,160,185,205); { 9}
    Bar(185,160,230,205); {12}
    Bar(230,115,275,160); {14}
    Bar(275, 70,320,115); {16}
    Bar(275,160,320,205); {18}
    Bar(320, 70,365,115); {19}
    Bar(320,160,365,205); {21}
    Bar(365,115,410,160); {23}
    Bar(410, 70,455,115); {25}
    Bar(410,160,455,205); {27}
    Bar(455,160,500,205); {30}
    Bar(500,115,545,160); {32}
    Bar(545, 70,590,115); {34}
    Bar(545,160,590,205); {36}
    SetTextStyle(0,0,2);
    SetColor(0);
    OutTextXY( 68, 88,'1');
    OutTextXY( 68,178,'3');
    OutTextXY(113,133,'5');
    OutTextXY(158, 88,'7');
    OutTextXY(158,178,'9');
    OutTextXY(193,178,'12');
    OutTextXY(238,133,'14');
    OutTextXY(283,88,'16');
    OutTextXY(283,178,'18');
    OutTextXY(328,88,'19');
    OutTextXY(328,178,'21');
    OutTextXY(373,133,'23');
    OutTextXY(418,88,'25');
    OutTextXY(418,178,'27');
    OutTextXY(463,178,'30');
    OutTextXY(508,133,'32');
    OutTextXY(553,88,'34');
    OutTextXY(553,178,'36');
 
    SetColor(4);
    OutTextXY( 68,133,'2');
    OutTextXY(113,88,'4');
    OutTextXY(113,178,'6');
    OutTextXY(158,133,'8');
    OutTextXY(193,88,'10');
    OutTextXY(193,133,'11');
    OutTextXY(238,88,'13');
    OutTextXY(238,178,'15');
    OutTextXY(283,133,'17');
    OutTextXY(328,133,'20');
    OutTextXY(373,88,'22');
    OutTextXY(373,178,'24');
    OutTextXY(418,133,'26');
    OutTextXY(463,88,'28');
    OutTextXY(463,133,'29');
    OutTextXY(508,88,'31');
    OutTextXY(508,178,'33');
    OutTextXY(553,133,'35');
    SetColor(15);
    OutTextXY( 21,133,'0');
    OutTextXY(598, 88,'1R');
    OutTextXY(598,133,'2R');
    OutTextXY(598,178,'3R');
    OutTextXY(101,223,' 1-12');
    OutTextXY(281,223,'13-24');
    OutTextXY(461,223,'25-36');
    OutTextXY( 50,268,' 1-18');
    OutTextXY(508,268,'19-36');
    OutTextXY(162,268,'PAR');
    OutTextXY(416,268,'NEPAR');
    Bar(235,255,315,290);
 
    SetColor(15); SetFillStyle(11,1);
    Bar( 50,420,155,470); Rectangle(50,420,155,470);
    Bar(195,420,300,470); Rectangle(195,420,300,470);
    Bar(340,420,445,470); Rectangle(340,420,445,470);
    Bar(485,420,590,470); Rectangle(485,420,590,470);
    SetTextStyle(0,0,0);
    OutTextXY(80,435,'KONIEC'); OutTextXY(92,450,'HRY');
    OutTextXY(215,435,'OPAKOVANA'); OutTextXY(225,450,'STAVKA');
    OutTextXY(367,435,'NULOVAT'); OutTextXY(370,450,'STAVKU');
    OutTextXY(507,435,'ROZTOCIT'); OutTextXY(515,450,'RULETU');
    SetColor(8); SetTextStyle(2,1,4);
    OutTextXY(0,270,'ver.1.0 - (C)2003 - ING.PETER SULKO');
    SetColor(14); SetTextStyle(0,0,0);
    OutTextXY(50,330,'VKLAD V HRE:');
    OutTextXY(50,360,'KREDIT:');
    SVIET;
  end;
 
Procedure PIS_VYHRU(Vysl:Real);
  var SVklad : String[12];
      SPom,SVysl : String[30];
      P08 : Byte;
  begin
    SetFillStyle(0,0); Bar(320,310,590,390);
    SetColor(15); Rectangle(320,310,590,390); Line(320,350,590,350);
    OutTextXY(400,320,'VKLAD V KOLE');
    Str(Vklad,SVklad);
    SetColor(10);OutTextXY(455-Round(Length(SVklad)*4),335,SVklad);
    SVysl:=''; Str(Vysl:30:0,SPom);
    for P08:=1 to Length(SPom) do
      if SPom[P08]<>' ' then SVysl:=SVysl+SPom[P08];
    SetColor(15);OutTextXY(400,358,'VYHRA Z KOLA');
    SetColor(10);OutTextXY(455-Round(Length(SVysl)*4),373,SVysl);
  end;
 
Procedure PIS_VKLAD;
  var SVklad : String[12];
      P02 : Byte;
  begin
    Vklad:=0;
    for P02:=1 to 133 do Vklad:=Vklad+T[P02];
    SetFillStyle(0,0); Bar(150,330,300,340); Str(Vklad,SVklad);
    SetColor(10);SetTextStyle(0,0,0); OutTextXY(150,330,SVklad);
  end;
 
Procedure PIS_KREDIT;
  var SPom,SKredit : String[30];
      P06 : Byte;
  begin
    SetFillStyle(0,0); Bar(120,360,270,370); SKredit:='';
    Str(Kredit:30:0,SPom);
    for P06:=1 to Length(SPom) do
      if SPom[P06]<>' ' then SKredit:=SKredit+SPom[P06];
    SetColor(10);SetTextStyle(0,0,0); OutTextXY(120,360,SKredit);
  end;
 
Procedure VYHRA;
  var Vysl : Real;
      P07 : Byte;
  begin
    Vysl:=0;
    Case Cislo of 0:Vysl:=36*T[37]+18*(T[50]+T[52]+T[54])+12*(T[51]+T[53]);
                  1:Vysl:=36*T[1]+18*(T[50]+T[55]+T[57])+12*T[51]+9*T[58];
                  2:Vysl:=36*T[2]+18*(T[52]+T[55]+T[56]+T[59])+12*(T[51]+T[53])+9*(T[58]+T[60]);
                  3:Vysl:=36*T[3]+18*(T[54]+T[56]+T[61])+12*T[53]+9*T[60];
                  4:Vysl:=36*T[4]+18*(T[57]+T[62]+T[64])+9*(T[58]+T[65]);
                  5:Vysl:=36*T[5]+18*(T[59]+T[62]+T[63]+T[66])+9*(T[58]+T[60]+T[65]+T[67]);
                  6:Vysl:=36*T[6]+18*(T[61]+T[63]+T[68])+9*(T[60]+T[67]);
                  7:Vysl:=36*T[7]+18*(T[64]+T[69]+T[71])+9*(T[65]+T[72]);
                  8:Vysl:=36*T[8]+18*(T[66]+T[69]+T[70]+T[73])+9*(T[65]+T[67]+T[72]+T[74]);
                  9:Vysl:=36*T[9]+18*(T[68]+T[70]+T[75])+9*(T[67]+T[74]);
                 10:Vysl:=36*T[10]+18*(T[71]+T[76]+T[78])+9*(T[72]+T[79]);
                 11:Vysl:=36*T[11]+18*(T[73]+T[76]+T[77]+T[80])+9*(T[72]+T[74]+T[79]+T[81]);
                 12:Vysl:=36*T[12]+18*(T[75]+T[77]+T[82])+9*(T[74]+T[81]);
                 13:Vysl:=36*T[13]+18*(T[78]+T[83]+T[85])+9*(T[79]+T[86]);
                 14:Vysl:=36*T[14]+18*(T[80]+T[83]+T[84]+T[87])+9*(T[79]+T[81]+T[86]+T[88]);
                 15:Vysl:=36*T[15]+18*(T[82]+T[84]+T[89])+9*(T[81]+T[88]);
                 16:Vysl:=36*T[16]+18*(T[85]+T[90]+T[92])+9*(T[86]+T[93]);
                 17:Vysl:=36*T[17]+18*(T[87]+T[90]+T[91]+T[94])+9*(T[86]+T[88]+T[93]+T[95]);
                 18:Vysl:=36*T[18]+18*(T[89]+T[91]+T[96])+9*(T[88]+T[95]);
                 19:Vysl:=36*T[19]+18*(T[92]+T[97]+T[99])+9*(T[93]+T[100]);
                 20:Vysl:=36*T[20]+18*(T[94]+T[97]+T[98]+T[101])+9*(T[93]+T[95]+T[100]+T[102]);
                 21:Vysl:=36*T[21]+18*(T[96]+T[98]+T[103])+9*(T[95]+T[102]);
                 22:Vysl:=36*T[22]+18*(T[99]+T[104]+T[106])+9*(T[100]+T[107]);
                 23:Vysl:=36*T[23]+18*(T[101]+T[104]+T[105]+T[108])+9*(T[100]+T[102]+T[107]+T[109]);
                 24:Vysl:=36*T[24]+18*(T[103]+T[105]+T[110])+9*(T[102]+T[109]);
                 25:Vysl:=36*T[25]+18*(T[106]+T[111]+T[113])+9*(T[107]+T[114]);
                 26:Vysl:=36*T[26]+18*(T[108]+T[111]+T[112]+T[115])+9*(T[107]+T[109]+T[114]+T[116]);
                 27:Vysl:=36*T[27]+18*(T[110]+T[112]+T[117])+9*(T[109]+T[116]);
                 28:Vysl:=36*T[28]+18*(T[113]+T[118]+T[120])+9*(T[114]+T[121]);
                 29:Vysl:=36*T[29]+18*(T[115]+T[118]+T[119]+T[122])+9*(T[114]+T[116]+T[121]+T[123]);
                 30:Vysl:=36*T[30]+18*(T[117]+T[119]+T[124])+9*(T[116]+T[123]);
                 31:Vysl:=36*T[31]+18*(T[120]+T[125]+T[127])+9*(T[121]+T[128]);
                 32:Vysl:=36*T[32]+18*(T[122]+T[125]+T[126]+T[129])+9*(T[121]+T[123]+T[128]+T[130]);
                 33:Vysl:=36*T[33]+18*(T[124]+T[126]+T[131])+9*(T[123]+T[130]);
                 34:Vysl:=36*T[34]+18*(T[127]+T[132])+9*T[128];
                 35:Vysl:=36*T[35]+18*(T[129]+T[132]+T[133])+9*(T[128]+T[130]);
                 36:Vysl:=36*T[36]+18*(T[131]+T[133])+9*T[130];
                 end;
    if Cislo in [ 1..12] then Vysl:=Vysl+3*T[41];
    if Cislo in [13..24] then Vysl:=Vysl+3*T[42];
    if Cislo in [25..36] then Vysl:=Vysl+3*T[43];
    if Cislo in Cervene then Vysl:=Vysl+2*T[46];
    if Cislo in Cierne then Vysl:=Vysl+2*T[47];
    if Cislo in [1..18] then Vysl:=Vysl+2*T[44];
    if Cislo in [19..36] then Vysl:=Vysl+2*T[49];
    if Cislo in [2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36] then Vysl:=Vysl+2*T[45];
    if Cislo in [1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35] then Vysl:=Vysl+2*T[48];
    if Cislo in [1,4,7,10,13,16,19,22,25,28,31,34] then Vysl:=Vysl+3*T[38]; { 1R }
    if Cislo in [2,5,8,11,14,17,20,23,26,29,32,35] then Vysl:=Vysl+3*T[39]; { 2R }
    if Cislo in [3,6,9,12,15,18,21,24,27,30,33,36] then Vysl:=Vysl+3*T[40]; { 3R }
    Vklad:=0;
    for P07:=1 to 133 do Vklad:=Vklad+T[P07];
    Kredit:=Kredit+Vysl;
    PIS_KREDIT; if Vysl>0 then PIS_VYHRU(Vysl);
  end;
 
Procedure DATA(A,B:Integer);
  begin
    Xp:=A; Yp:=B;
  end;
 
Procedure POZICIA;
  begin
    case Tip of  1:Data( 65, 85);
                 2:Data( 65,130);
                 3:Data( 65,175);
                 4:Data(110, 85);
                 5:Data(110,130);
                 6:Data(110,175);
                 7:Data(155, 85);
                 8:Data(155,130);
                 9:Data(155,175);
                10:Data(200, 85);
                11:Data(200,130);
                12:Data(200,175);
                13:Data(245, 85);
                14:Data(245,130);
                15:Data(245,175);
                16:Data(290, 85);
                17:Data(290,130);
                18:Data(290,175);
                19:Data(335, 85);
                20:Data(335,130);
                21:Data(335,175);
                22:Data(380, 85);
                23:Data(380,130);
                24:Data(380,175);
                25:Data(425, 85);
                26:Data(425,130);
                27:Data(425,175);
                28:Data(470, 85);
                29:Data(470,130);
                30:Data(470,175);
                31:Data(515, 85);
                32:Data(515,130);
                33:Data(515,175);
                34:Data(560, 85);
                35:Data(560,130);
                36:Data(560,175);
                37:Data( 20,130);
                38:Data(605, 85);
                39:Data(605,130);
                40:Data(605,175);
                41:Data(133,220);
                42:Data(313,220);
                43:Data(493,220);
                44:Data( 88,265);
                45:Data(178,265);
                46:Data(268,265);
                47:Data(358,265);
                48:Data(448,265);
                49:Data(538,265);
                50:Data( 43, 85);
                51:Data( 43,108);
                52:Data( 43,130);
                53:Data( 43,153);
                54:Data( 43,175);
                55:Data( 65,108);
                56:Data( 65,153);
                57:Data( 88, 85);
                58:Data( 88,108);
                59:Data( 88,130);
                60:Data( 88,153);
                61:Data( 88,175);
                62:Data(110,108);
                63:Data(110,153);
                64:Data(133, 85);
                65:Data(133,108);
                66:Data(133,130);
                67:Data(133,153);
                68:Data(133,175);
                69:Data(155,108);
                70:Data(155,153);
                71:Data(178, 85);
                72:Data(178,108);
                73:Data(178,130);
                74:Data(178,153);
                75:Data(178,175);
                76:Data(200,108);
                77:Data(200,153);
                78:Data(223, 85);
                79:Data(223,108);
                80:Data(223,130);
                81:Data(223,153);
                82:Data(223,175);
                83:Data(245,108);
                84:Data(245,153);
                85:Data(268, 85);
                86:Data(268,108);
                87:Data(268,130);
                88:Data(268,153);
                89:Data(268,175);
                90:Data(290,108);
                91:Data(290,153);
                92:Data(313, 85);
                93:Data(313,108);
                94:Data(313,130);
                95:Data(313,153);
                96:Data(313,175);
                97:Data(335,108);
                98:Data(335,153);
                99:Data(358, 85);
               100:Data(358,108);
               101:Data(358,130);
               102:Data(358,153);
               103:Data(358,175);
               104:Data(380,108);
               105:Data(380,153);
               106:Data(403, 85);
               107:Data(403,108);
               108:Data(403,130);
               109:Data(403,153);
               110:Data(403,175);
               111:Data(425,108);
               112:Data(425,153);
               113:Data(448, 85);
               114:Data