Ruleta - známa kasínová hra
Delphi & Pascal (česká wiki)
Kategória: KMP (Klub mladých programátorov)
Autor: Peter Sulko
Program: Ruleta.pas
Súbor exe: Ruleta.exe
Potrebné: Rule01.pas
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......
Kredit je teoreticky nevyčerpateľný, takže tipujte......
{ 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(448,108); 115:Data(448,130); 116:Data(448,153); 117:Data(448,175); 118:Data(470,108); 119:Data(470,153); 120:Data(493, 85); 121:Data(493,108); 122:Data(493,130); 123:Data(493,153); 124:Data(493,175); 125:Data(515,108); 126:Data(515,153); 127:Data(538, 85); 128:Data(538,108); 129:Data(538,130); 130:Data(538,153); 131:Data(538,175); 132:Data(560,108); 133:Data(560,153); end; end; Procedure KRESLI_KRUZOK; var STip : String[3]; begin POZICIA; ZHASNI; SetColor(1); SetFillStyle(1,1); PieSlice(Xp+8,Yp+8,0,360,11); SetColor(14);Circle(Xp+8,Yp+8,11); SetTextStyle(2,0,4); STip:=''; Str(T[Tip],STip); if Length(STip)<3 then OutTextXY(Xp+3,Yp+2,STip); if Length(STip)=3 then OutTextXY(Xp,Yp+2,STip); PIS_VKLAD; PIS_KREDIT; SVIET; end; Procedure PIS_TIP; begin KRESLI_KRUZOK; if T[Tip]=0 then begin STVORCE; SIET; for Tip:=1 to 133 do if T[Tip]>0 then KRESLI_KRUZOK; end; SVIET; end; Procedure STAVKA; begin Tip:=0; if (X> 65)and(X< 80)and(Y> 70)and(Y<100) then Tip:= 1; if (X> 65)and(X< 80)and(Y>130)and(Y<145) then Tip:= 2; if (X> 65)and(X< 80)and(Y>175)and(Y<190) then Tip:= 3; if (X>110)and(X<125)and(Y> 70)and(Y<100) then Tip:= 4; if (X>110)and(X<125)and(Y>130)and(Y<145) then Tip:= 5; if (X>110)and(X<125)and(Y>175)and(Y<190) then Tip:= 6; if (X>155)and(X<170)and(Y> 70)and(Y<100) then Tip:= 7; if (X>155)and(X<170)and(Y>130)and(Y<145) then Tip:= 8; if (X>155)and(X<170)and(Y>175)and(Y<190) then Tip:= 9; if (X>200)and(X<215)and(Y> 70)and(Y<100) then Tip:=10; if (X>200)and(X<215)and(Y>130)and(Y<145) then Tip:=11; if (X>200)and(X<215)and(Y>175)and(Y<190) then Tip:=12; if (X>245)and(X<260)and(Y> 70)and(Y<100) then Tip:=13; if (X>245)and(X<260)and(Y>130)and(Y<145) then Tip:=14; if (X>245)and(X<260)and(Y>175)and(Y<190) then Tip:=15; if (X>290)and(X<305)and(Y> 70)and(Y<100) then Tip:=16; if (X>290)and(X<305)and(Y>130)and(Y<145) then Tip:=17; if (X>290)and(X<305)and(Y>175)and(Y<190) then Tip:=18; if (X>335)and(X<350)and(Y> 70)and(Y<100) then Tip:=19; if (X>335)and(X<350)and(Y>130)and(Y<145) then Tip:=20; if (X>335)and(X<350)and(Y>175)and(Y<190) then Tip:=21; if (X>380)and(X<395)and(Y> 70)and(Y<100) then Tip:=22; if (X>380)and(X<395)and(Y>130)and(Y<145) then Tip:=23; if (X>380)and(X<395)and(Y>175)and(Y<190) then Tip:=24; if (X>425)and(X<440)and(Y> 70)and(Y<100) then Tip:=25; if (X>425)and(X<440)and(Y>130)and(Y<145) then Tip:=26; if (X>425)and(X<440)and(Y>175)and(Y<190) then Tip:=27; if (X>470)and(X<485)and(Y> 70)and(Y<100) then Tip:=28; if (X>470)and(X<485)and(Y>130)and(Y<145) then Tip:=29; if (X>470)and(X<485)and(Y>175)and(Y<190) then Tip:=30; if (X>515)and(X<530)and(Y> 70)and(Y<100) then Tip:=31; if (X>515)and(X<530)and(Y>130)and(Y<145) then Tip:=32; if (X>515)and(X<530)and(Y>175)and(Y<190) then Tip:=33; if (X>560)and(X<575)and(Y> 70)and(Y<100) then Tip:=34; if (X>560)and(X<575)and(Y>130)and(Y<145) then Tip:=35; if (X>560)and(X<575)and(Y>175)and(Y<190) then Tip:=36; if (X> 5)and(X< 35)and(Y> 70)and(Y<205) then Tip:=37; if (X>590)and(X<635)and(Y> 70)and(Y<115) then Tip:=38; if (X>590)and(X<635)and(Y>115)and(Y<160) then Tip:=39; if (X>590)and(X<635)and(Y>160)and(Y<205) then Tip:=40; if (X> 50)and(X<230)and(Y>205)and(Y<250) then Tip:=41; if (X>230)and(X<410)and(Y>205)and(Y<250) then Tip:=42; if (X>410)and(X<590)and(Y>205)and(Y<250) then Tip:=43; if (X> 50)and(X<140)and(Y>250)and(Y<295) then Tip:=44; if (X>140)and(X<230)and(Y>250)and(Y<295) then Tip:=45; if (X>230)and(X<320)and(Y>250)and(Y<295) then Tip:=46; if (X>320)and(X<410)and(Y>250)and(Y<295) then Tip:=47; if (X>410)and(X<500)and(Y>250)and(Y<295) then Tip:=48; if (X>500)and(X<590)and(Y>250)and(Y<295) then Tip:=49; if (X> 35)and(X< 65)and(Y> 70)and(Y<100) then Tip:=50; if (X> 35)and(X< 65)and(Y>100)and(Y<130) then Tip:=51; if (X> 35)and(X< 65)and(Y>130)and(Y<145) then Tip:=52; if (X> 35)and(X< 65)and(Y>145)and(Y<175) then Tip:=53; if (X> 35)and(X< 65)and(Y>175)and(Y<205) then Tip:=54; if (X> 65)and(X< 80)and(Y>100)and(Y<130) then Tip:=55; if (X> 65)and(X< 80)and(Y>145)and(Y<175) then Tip:=56; if (X> 80)and(X<110)and(Y> 70)and(Y<100) then Tip:=57; if (X> 80)and(X<110)and(Y>100)and(Y<130) then Tip:=58; if (X> 80)and(X<110)and(Y>130)and(Y<145) then Tip:=59; if (X> 80)and(X<110)and(Y>145)and(Y<175) then Tip:=60; if (X> 80)and(X<110)and(Y>175)and(Y<205) then Tip:=61; if (X>110)and(X<125)and(Y>100)and(Y<130) then Tip:=62; if (X>110)and(X<125)and(Y>145)and(Y<175) then Tip:=63; if (X>125)and(X<155)and(Y> 70)and(Y<100) then Tip:=64; if (X>125)and(X<155)and(Y>100)and(Y<130) then Tip:=65; if (X>125)and(X<155)and(Y>130)and(Y<145) then Tip:=66; if (X>125)and(X<155)and(Y>145)and(Y<175) then Tip:=67; if (X>125)and(X<155)and(Y>175)and(Y<205) then Tip:=68; if (X>155)and(X<170)and(Y>100)and(Y<130) then Tip:=69; if (X>155)and(X<170)and(Y>145)and(Y<175) then Tip:=70; if (X>170)and(X<200)and(Y> 70)and(Y<100) then Tip:=71; if (X>170)and(X<200)and(Y>100)and(Y<130) then Tip:=72; if (X>170)and(X<200)and(Y>130)and(Y<145) then Tip:=73; if (X>170)and(X<200)and(Y>145)and(Y<175) then Tip:=74; if (X>170)and(X<200)and(Y>175)and(Y<205) then Tip:=75; if (X>200)and(X<215)and(Y>100)and(Y<130) then Tip:=76; if (X>200)and(X<215)and(Y>145)and(Y<175) then Tip:=77; if (X>215)and(X<245)and(Y> 70)and(Y<100) then Tip:=78; if (X>215)and(X<245)and(Y>100)and(Y<130) then Tip:=79; if (X>215)and(X<245)and(Y>130)and(Y<145) then Tip:=80; if (X>215)and(X<245)and(Y>145)and(Y<175) then Tip:=81; if (X>215)and(X<245)and(Y>175)and(Y<205) then Tip:=82; if (X>245)and(X<260)and(Y>100)and(Y<130) then Tip:=83; if (X>245)and(X<260)and(Y>145)and(Y<175) then Tip:=84; if (X>260)and(X<290)and(Y> 70)and(Y<100) then Tip:=85; if (X>260)and(X<290)and(Y>100)and(Y<130) then Tip:=86; if (X>260)and(X<290)and(Y>130)and(Y<145) then Tip:=87; if (X>260)and(X<290)and(Y>145)and(Y<175) then Tip:=88; if (X>260)and(X<290)and(Y>175)and(Y<205) then Tip:=89; if (X>290)and(X<305)and(Y>100)and(Y<130) then Tip:=90; if (X>290)and(X<305)and(Y>145)and(Y<175) then Tip:=91; if (X>305)and(X<335)and(Y> 70)and(Y<100) then Tip:=92; if (X>305)and(X<335)and(Y>100)and(Y<130) then Tip:=93; if (X>305)and(X<335)and(Y>130)and(Y<145) then Tip:=94; if (X>305)and(X<335)and(Y>145)and(Y<175) then Tip:=95; if (X>305)and(X<335)and(Y>175)and(Y<205) then Tip:=96; if (X>335)and(X<350)and(Y>100)and(Y<130) then Tip:=97; if (X>335)and(X<350)and(Y>145)and(Y<175) then Tip:=98; if (X>350)and(X<380)and(Y> 70)and(Y<100) then Tip:=99; if (X>350)and(X<380)and(Y>100)and(Y<130) then Tip:=100; if (X>350)and(X<380)and(Y>130)and(Y<145) then Tip:=101; if (X>350)and(X<380)and(Y>145)and(Y<175) then Tip:=102; if (X>350)and(X<380)and(Y>175)and(Y<205) then Tip:=103; if (X>380)and(X<395)and(Y>100)and(Y<130) then Tip:=104; if (X>380)and(X<395)and(Y>145)and(Y<175) then Tip:=105; if (X>395)and(X<425)and(Y> 70)and(Y<100) then Tip:=106; if (X>395)and(X<425)and(Y>100)and(Y<130) then Tip:=107; if (X>395)and(X<425)and(Y>130)and(Y<145) then Tip:=108; if (X>395)and(X<425)and(Y>145)and(Y<175) then Tip:=109; if (X>395)and(X<425)and(Y>175)and(Y<205) then Tip:=110; if (X>425)and(X<440)and(Y>100)and(Y<130) then Tip:=111; if (X>425)and(X<440)and(Y>145)and(Y<175) then Tip:=112; if (X>440)and(X<470)and(Y> 70)and(Y<100) then Tip:=113; if (X>440)and(X<470)and(Y>100)and(Y<130) then Tip:=114; if (X>440)and(X<470)and(Y>130)and(Y<145) then Tip:=115; if (X>440)and(X<470)and(Y>145)and(Y<175) then Tip:=116; if (X>440)and(X<470)and(Y>175)and(Y<205) then Tip:=117; if (X>470)and(X<485)and(Y>100)and(Y<130) then Tip:=118; if (X>470)and(X<485)and(Y>145)and(Y<175) then Tip:=119; if (X>485)and(X<515)and(Y> 70)and(Y<100) then Tip:=120; if (X>485)and(X<515)and(Y>100)and(Y<130) then Tip:=121; if (X>485)and(X<515)and(Y>130)and(Y<145) then Tip:=122; if (X>485)and(X<515)and(Y>145)and(Y<175) then Tip:=123; if (X>485)and(X<515)and(Y>175)and(Y<205) then Tip:=124; if (X>515)and(X<530)and(Y>100)and(Y<130) then Tip:=125; if (X>515)and(X<530)and(Y>145)and(Y<175) then Tip:=126; if (X>530)and(X<560)and(Y> 70)and(Y<100) then Tip:=127; if (X>530)and(X<560)and(Y>100)and(Y<130) then Tip:=128; if (X>530)and(X<560)and(Y>130)and(Y<145) then Tip:=129; if (X>530)and(X<560)and(Y>145)and(Y<175) then Tip:=130; if (X>530)and(X<560)and(Y>175)and(Y<205) then Tip:=131; if (X>560)and(X<575)and(Y>100)and(Y<130) then Tip:=132; if (X>560)and(X<575)and(Y>145)and(Y<175) then Tip:=133; if Tip<>0 then begin if (Bu=1)and(T[Tip]<=980) then begin Inc(T[Tip],10); Kredit:=Kredit-10; PIS_TIP; end; if (Bu=2)and(T[Tip]>0) then begin Dec(T[Tip],10); Kredit:=Kredit+10; PIS_TIP; end; end; end; Procedure ROZTOC; var P03 : Byte; SC : String[2]; Code : Integer; begin SetFillStyle(0,0); Bar(320,310,590,390); Randomize; Cislo:=Random(37); Str(Cislo,SC); if Length(SC)=1 then SC:=' '+SC; for P03:=2 to 20 do V[P03-1]:=V[P03]; V[20]:=SC; SetTextStyle(0,0,0); SetFillStyle(0,0); Bar(0,0,640,65); ZHASNI; for P03:=1 to 20 do begin Val(V[P03],Cislo,Code); if Cislo in Cervene then SetColor(4) else SetColor(7); if Cislo=0 then SetColor(2); OutTextXY(P03*30,30,V[P03]); end; VYHRA; for P03:=1 to 133 do begin OP[P03]:=T[P03]; T[P03]:=0; end; STVORCE; SIET; PIS_VKLAD; SVIET; end; Procedure OPAKUJ; var P04 : Byte; begin STVORCE; SIET; for P04:=1 to 133 do T[P04]:=OP[P04]; for P04:=1 to 133 do if T[P04]>0 then begin Tip:=P04; KRESLI_KRUZOK; end; Vklad:=0; for P04:=1 to 133 do Vklad:=Vklad+T[P04]; Kredit:=Kredit-Vklad; PIS_KREDIT; end; Procedure NULUJ; var P05 : Byte; begin STVORCE; SIET; Vklad:=0; for P05:=1 to 133 do Vklad:=Vklad+T[P05]; Kredit:=Kredit+Vklad; for P05:=1 to 133 do T[P05]:=0; PIS_VKLAD; PIS_KREDIT; end; BEGIN if RegisterBGIDriver(@PEGAVGA)<0 then Halt(1); if RegisterBGIFont(@PGOTH)<0 then Halt(1); if RegisterBGIFont(@PLITT)<0 then Halt(1); if RegisterBGIFont(@PSANS)<0 then Halt(1); if RegisterBGIFont(@PTRIP)<0 then Halt(1); GD:=Detect; InitGraph(GD,GM,''); for i:=1 to 133 do T[i]:=0; for i:=1 to 133 do OP[i]:=0; for i:=1 to 20 do V[i]:=''; STVORCE; SIET; SVIET; PIS_VKLAD; PIS_KREDIT; Volba:=255; Kredit:=0; repeat Pohyb(Bu,X,Y); if (Bu in [1,2])and(X> 5)and(X<635)and(Y> 70)and(Y<295) then STAVKA; if (Bu=1)and(X>320)and(X<590)and(Y>310)and(Y<390) then begin SetFillStyle(0,0); Bar(320,310,590,390); end; if (Bu=1)and(X>485)and(X<590)and(Y>420)and(Y<470) then ROZTOC; if (Bu=1)and(X>195)and(X<300)and(Y>420)and(Y<470) then OPAKUJ; if (Bu=1)and(X>340)and(X<445)and(Y>420)and(Y<470) then NULUJ; if (Bu=1)and(X> 50)and(X<155)and(Y>420)and(Y<470) then Volba:=0; { KONIEC } until Volba=0; ZHASNI;CloseGraph; END.