home *** CD-ROM | disk | FTP | other *** search
- program domino;
-
- uses crt,graph,dos,domdem;{a domdem saját készitésû unit}
- type sat=record
- param : integer;
- end;
- var
- hset:sat ;
- satup:file of sat;
- regs:registers;
- domfogl:array[0..9,0..9] of boolean;
- dirinfo : searchrec;
- datumido : datetime;
- helyezes,pontszam,jutalom,z,becsapo : longint;
- hely :array[1..22] of integer;
- ideghely :array[1..22] of integer;
- xhelyek :array[1..22] of integer;
- yhelyek :array[1..22] of integer;
- vv:array[1..5] of integer;
- ff:array[1..5] of integer;
- vm:array[1..5] of integer;
- fm:array[1..5] of integer;
- rv:array[1..5] of integer;
- rf:array[1..5] of integer;
- rgb:array[1..3] of integer;
- cc,kisors,sorsszam,labmutato,labhelyzet:integer;
- vizdomdat:array[0..9] of string;
- fugdomdat:array[0..9] of string;
- neve:array[0..15] of string;
- alapnev:array[0..15] of string;
- posz:array[0..16] of longint;
- size,ora,perc,regiperc,sec,regisec,secke:word;
- p,p1,p2,p3,p4:pointer;
- ii,q,h,m,no,pont,bonusz,idegstring,utvonal : string;
- kirdom,xmod,ymod,mu,domdel,szam,betu,szamszam,a1,b1,c1,d1,a,b,c,d,e,f,g,k,ra,rb: integer;
- vizmut,fugmut,hossz,kirdomh,kirdom1,kirdom2,gb,gm,hiba,mutato:integer;
- oraszin,dominoszin,idegszam,idegszin:integer;
-
- procedure terminator;{kép összemenés}
- begin
- setfillstyle(1,0);
- for i:=0 to 120 do {alulról és felülrôl növekvô téglalapok}
- begin {szûkitik a képet}
- bar(0,0,639,i*2);
- bar(0,480-i*2,639,479);
- delay((a1-1)*15);
- end;
- setfillstyle(1,15);bar(0,240,639,241);
- setfillstyle(1,0);
- for i:=0 to 320 do {a középsô fehér vonal ponttá zsugorodik}
- begin
- bar(0,240,i,241);
- bar(640-i,240,639,241);
- delay(a1*5);
- end;
- setfillstyle(1,green);setcolor(green);
- fillellipse(320,240,2,1); {a pont elsötétül}
- for i:=63 downto 0 do
- begin
- setrgbpalette(green,i,i,i);
- delay((a1-1)*16);
- end;
- end;
-
- procedure szovegszet;{a bejövô szöveg hosszából kiszámitja a szöveg}
- begin {pozicionálását majd egyesével növekedve}
- {kiirja azt}
- setcolor(lightcyan);settextstyle(1,0,6);{szin,méretállitás}
- settextjustify(lefttext,centertext);{pozicionálás középre}
- vizmut:=(640-textwidth(pont)) div 2;{poziciószámitás}
- for i:=1 to length(pont) do
- begin
- idegstring:=copy(pont,1,i);
- setcolor(lightcyan);
- outtextxy(vizmut,fugmut,idegstring);
- delay(a1*50);
- end;
- end;
-
- procedure achtung;{feliratot helyez a képernyôre,a sokachtung rutin hivja}
- begin
- setcolor(idegszin);
- outtextxy(320,fugmut,'Figyelem! Warning! Achtung! Vnyimannyie!');
- end;
-
- procedure sokachtung;{az achtung rutin segitségével figyelmeztetô szöveget}
- begin {küld a képernyôre}
- repeat
- idegszin:=red;fugmut:=10;achtung;{szinállitás,helyzetállitás}
- idegszin:=lightred;fugmut:=450;achtung;
- delay(a1*300); {várakozás}
- idegszin:=red;fugmut:=450;achtung;
- idegszin:=lightred;fugmut:=10;achtung;
- delay(a1*300);
- until keypressed;{billenytûnyomásig vár}
- end;
-
- procedure belekotor;{filehiba esetén hibaüzenetet ad}
- begin
- cleardevice; {képernyôtörlés}
- setcolor(lightcyan);settextstyle(1,0,6);
- settextjustify(lefttext,centertext);
- pont:='Ugye belejavitottál';fugmut:=70;szovegszet;
- pont:='valamelyik file-ba?';fugmut:=130;szovegszet;
- pont:='Sajnos,ezt a program';fugmut:=270;szovegszet;
- pont:='nem viseli el!!!';fugmut:=330;szovegszet;
- settextstyle(1,0,3);settextjustify(centertext,centertext);
- sokachtung;
- terminator;cleardevice;closegraph;halt;{grafikus lezárás}
- end;
-
- procedure labki;{a sétáló egér lábait rajzolja meg az aktuális}
- begin {lábhelyzetnek megfelelôen}
- if labmutato=1 then labhelyzet:=-3; {4.láb}
- if labmutato=2 then labhelyzet:=0; {3.láb}
- if labmutato=3 then labhelyzet:=+3; {2.láb}
- if labmutato=4 then labhelyzet:=0; {1.láb}
- line(30,180,30-labhelyzet,185);line(35,180,35+labhelyzet,185);
- line(55,180,55-labhelyzet,185);line(60,180,60+labhelyzet,185);
- end;
-
- procedure labtorles;
- begin {törlôszinnel meghivja a lábki rutint}
- setcolor(0);
- labki;
- end;
-
- procedure labrajz;
- begin {rajzolószinnel meghivja a lábki rutint}
- setcolor(lightgray);
- labki;
- end;
-
- procedure egergond;{ha a setupban egér lett beálliva de az nincs}
- begin {betöltve,a program hibával leáll}
- cleardevice; {rajzol egy egeret,ami sétál a képernyôn,majd megdöglik}
- setcolor(lightgray);setfillstyle(1,lightgray);setlinestyle(0,3,lightgray);
- line(5,180,65,180); {farok} {világosszürke az egér}
- ellipse(45,180,0,180,20,15);floodfill(45,175,lightgray); {test}
- fillellipse(57,168,5,6); {fül}
- setcolor(0);ellipse(57,168,160,230,5,5);{fülcimpa}
- setcolor(lightred);setfillstyle(1,lightred);
- fillellipse(58,175,1,1); {szem}
- putpixel(58,175,0); {szembogár}
- {kirajzolja a négy lépésfázist,mindegyiket elteszi a memóriába}
- labmutato:=1;labrajz;size:=imagesize(0,157,70,185);getmem(p1,size);
- getimage(0,157,70,185,p1^);labtorles;
- labmutato:=2;labrajz;size:=imagesize(0,157,70,185);getmem(p2,size);
- getimage(0,157,70,185,p2^);labtorles;
- labmutato:=3;labrajz;size:=imagesize(0,157,70,185);getmem(p3,size);
- getimage(0,157,70,185,p3^);labtorles;
- labmutato:=4;labrajz;size:=imagesize(0,157,70,185);getmem(p4,size);
- getimage(0,157,70,185,p4^);
- setcolor(lightred);settextstyle(1,0,6);
- outtextxy(10,176,'Nincs egér betöltve!');
- for i:=0 to 26 do {a mozzanatokat váltogatva kelti a járás látszatát}
- begin
- for k:=0 to 4 do putimage(i*20+k,157,p1^,0);delay(a1*50);
- for k:=0 to 4 do putimage(i*20+5+k,157,p2^,0);delay(a1*50);
- for k:=0 to 4 do putimage(i*20+10+k,157,p3^,0);delay(a1*50);
- for k:=0 to 4 do putimage(i*20+15+k,157,p4^,0);delay(a1*50);
- end;
- sound(8500);delay(a1*200);nosound; {egérsikoly,visszalépés}
- for k:=4 downto 0 do putimage(i*20+15+k,157,p1^,0);delay(a1*50);
- for k:=4 downto 0 do putimage(i*20+10+k,157,p2^,0);delay(a1*50);
- for k:=4 downto 0 do putimage(i*20+5+k,157,p3^,0);delay(a1*50);
- for k:=4 downto 0 do putimage(i*20+k,157,p4^,0);delay(a1*50);
- for i:=0 to 100 do {zuhanás}
- begin
- putimage(520,i*3+157,p3^,0);delay(a1-1);
- end;
- {döglött egér}
- setcolor(0);setfillstyle(1,0);bar(535,450,595,480);
- setcolor(lightgray);setfillstyle(1,lightgray);
- line(540,460,585,460); {has}
- ellipse(565,460,180,0,20,15);floodfill(565,465,lightgray);{test}
- ellipse(545,470,90,270,20,10);{farok}
- fillellipse(577,472,5,6);{fül}
- line(550,455,550,460);{lábak}
- line(555,455,555,460);
- line(575,455,575,460);
- line(580,455,580,460);
- setcolor(darkgray);line(576,465,580,465);
- setcolor(0);ellipse(577,472,130,230,5,5);{fülcimpa}
- repeat until keypressed;
- terminator;cleardevice;closegraph;halt;
- end;
-
- procedure klikk;{a setup beállitásától függôen kiir egy space vagy egy}
- begin {klikk feliratot}
- if b1=2 then idegstring:='klikk'
- else idegstring:='space';
- settextstyle(1,0,2);setcolor(white);outtextxy(570,440,idegstring);
- end;
-
- procedure egerkikapcs;{eltünteti az egér nyilát}
- begin
- regs.ax:=2;intr($33,regs);
- end;
-
- procedure egerbekapcs;{megjeleniti az egér nyilát}
- begin
- regs.ax:=1;intr($33,regs);
- end;
-
- procedure egerlekerdez;{lekérdezi a gombok állapotát,valamint az egér}
- begin {aktuális koordinátáit}
- regs.ax:=3;intr($33,regs);
- end;
-
- procedure egervar1;{vár amig le nincs nyomva egy gomb az egéren}
- begin
- repeat
- regs.ax:=3;intr($33,regs);
- until regs.bx<>1;
- end;
-
- procedure egervar0;{vár amig el nem engedünk minden gombot az egéren}
- begin
- repeat
- regs.ax:=3;intr($33,regs);
- until regs.bx<>0;
- end;
-
- procedure futty; {bekapcsolt órafüttynél egy rövidet sipol}
- begin
- if d1=1 then begin {óraaktivitásvizsgálat}
- sound(1000);delay(a1*50);nosound;
- end;
- end;
-
- procedure pannongsm;{dallamot játszik}
- begin
- sound(500);delay(a1*22);nosound;delay(a1*153);
- sound(450);delay(a1*22);nosound;delay(a1*153);
- sound(500);delay(a1*22);nosound;delay(a1*153);
- sound(450);delay(a1*22);nosound;delay(a1*81);
- sound(500);delay(a1*221);nosound;delay(a1*261);
- sound(500);delay(a1*22);nosound;delay(a1*153);
- sound(550);delay(a1*230);nosound;delay(a1*153);
- sound(450);delay(a1*22);nosound;delay(a1*153);
- sound(500);delay(a1*270);
- for i:=500 downto 100 do {hanghajlitás lefelé}
- begin
- sound(i);delay(a1*1);
- end;
- nosound;
- end;
-
- procedure taps; {a hangmagasság gyors véletlen változtatásával}
- begin {taps effektus hatást kelt}
- for k:=0 to 999 do
- begin
- ra:=random(3000);
- sound(ra);delay(a1*1);
- sound(3000-ra);delay(a1*1);
- end;
- nosound;
- end;
-
- procedure filemegnyitas; {megnyitja a rekord.dat file-t}
- type rek=record
- nev : string[15];
- po : longint;
- end;
- var
- drek:rek;
- rekord:file of rek; {rekord...lista}
- begin {kurrens könyvtárat megállapitja,ha az nem \ jelre végzôdik,megtoldja egy \ jellel}
- getdir(0,utvonal);if copy(utvonal,length(utvonal),1)<>'\' then utvonal:=utvonal+'\';
- assign(rekord,utvonal+'rekord.dat'); {megnyitja}
- {$I-} reset(rekord); if ioresult<>0 then {ha nincs a lemezen,ir egy alapértelmezett rekord.,dat-ot}
- begin
- rewrite(rekord); {ùj megnyitás}
- becsapo:=random(255);
- with drek do
- begin
- nev:='Feltoresvedelem.....';
- po:=becsapo;
- {15 kezdô név,és pontszám} write(rekord,drek);
- end;
- alapnev[1]:='Pistike I.o.tan';alapnev[2]:='Kovács II. tiz.';alapnev[3]:='II.János Pál';alapnev[4]:='Bobby Ewing';
- alapnev[5]:='Egri János';alapnev[6]:='Én,a Gyula,...';alapnev[7]:='Columbo felügy.';alapnev[8]:='Zorró';
- alapnev[9]:='Besenyô Pistabá';alapnev[10]:='Bill Clinton';alapnev[11]:='Mr. Bean';alapnev[12]:='Kató néni';
- alapnev[13]:='Samantha Fox';alapnev[14]:='Michael Jackson';alapnev[15]:='Torgyán József';
- {ezeket felirja a rekord.dat-ba} for i:=1 to 15 do
- begin
- with drek do
- begin
- nev:=alapnev[i];
- po:=1600-(i*100);
- write(rekord,drek);
- end;
- end;
- end;
- close(rekord); {lezárja a file-t}
- reset(rekord); {olvasásra megnyitja}
- for i:=0 to 15 do
- begin {beolvassa a rekordlistát}
- with drek do
- begin
- read(rekord,drek);
- neve[i]:=nev;
- posz[i]:=po;
- end;
- end;
- close(rekord); {lezárja a file-t}
- end;
-
- procedure hanyadik; {A pontszám és a rekordlista összevetésével}
- begin {kiszámolja az aktuális helyezést}
- k:=0;posz[16]:=-1;
- repeat
- k:=k+1
- until pontszam>=posz[k] ;
- helyezes:=k;
- end;
-
- procedure pontosido; {megjeleniti az órát,illetve sipol}
- begin
- if d1=0 then oraszin:=blue; {fütty kikapcsolva}
- if d1=1 then oraszin:=lightblue; {fütty bekapcsolva}
- gettime(ora,perc,sec,secke);{rendszeridôlekérdezés}
- str(ora,h);str(perc,m);
- if sec<>regisec then {ha nem ugrott a sec,nem ir ki semmit}
- begin
- regisec:=sec;
- if perc<>regiperc then {ha nem ugrott a perc,nem ir ki semmit}
- begin
- mu:=mu+1; {percenként eggyel megdobja a képernyôvédelmet vezérlô mutatót}
- if ora<10 then h:=' '+h;{egy karakteres idôket 0-val kibôviti}
- if perc<10 then m:='0'+m;
- if b1=2 then egerkikapcs; {órakiirás}
- regiperc:=perc;setfillstyle(1,0);bar(545,10,630,40);
- settextstyle(1,0,2);setcolor(oraszin);
- outtextxy(500,10,'Idô:');outtextxy(557,10,h);
- outtextxy(587,10,':');outtextxy(595,10,m);futty;
- if b1=2 then egerbekapcs;
- if ora=12 then
- begin
- if perc=0 then
- begin
- setfillstyle(1,0);bar(165,00,475,90);bar(45,160,595,280);
- settextstyle(1,0,9);
- repeat
- setcolor(lightred);outtextxy(55,160,'Ebédszünet!');delay(a1*500);
- bar(45,160,595,280);delay(a1*300);
- until keypressed;terminator;cleardevice;closegraph;halt
- end;
- end;
- end;
- if perc=59 then {59 perc,55 sec-tôl 5 sipjelet ad}
- begin
- if sec>55 then futty;
- end;
- if perc=0 then {kerek óra,kerek perc,kerek mp-kor hosszùt sipol}
- begin
- if sec=0 then
- begin
- if d1=1 then begin
- sound(1000);delay(a1*1000);nosound;
- end;
- end;
- end;
- end;
- end;
-
- procedure konv;{'cg'cg-bol szamot csinal a betube}
- begin
- if cg='a' then betu:=65;
- if cg='b' then betu:=66;
- if cg='c' then betu:=67;
- if cg='d' then betu:=68;
- if cg='e' then betu:=69;
- if cg='f' then betu:=70;
- if cg='g' then betu:=71;
- if cg='h' then betu:=72;
- if cg='i' then betu:=73;
- if cg='j' then betu:=74;
- if cg='1' then szamszam:=1;
- if cg='2' then szamszam:=2;
- if cg='3' then szamszam:=3;
- if cg='4' then szamszam:=4;
- end;
-
- procedure kepernyoszovegek;{a helyezes,pontszam,jutalom mutatókat stringgé}
- begin {konvertálja,és kiirja a képernyôre}
- settextjustify(lefttext,toptext);{pozicionálás balról és felülrôl}
- if b1=2 then egerkikapcs;
- hanyadik;
- settextstyle(2,0,5);setcolor(lightgreen);
- for i:=1 to 5 do
- begin
- outtextxy(0,i*80+25,chr(i+64));
- outtextxy(634,i*80+25,chr(i+69));
- end;
- settextstyle(3,0,1);
- for i:=1 to 4 do outtextxy(i*80+115,460,chr(i+48));
- {helyezés}
- setfillstyle(1,0);bar(70,10,140,60);
- settextstyle(1,0,6);setcolor(10);
- if helyezes>15 then no:='-'
- else str(helyezes,no);
- outtextxy(0,0,'Nº:'+no);
- {pontszam}
- setfillstyle(1,0);bar(165,37,475,87);
- settextstyle(1,0,5);setcolor(15);
- str(pontszam,pont);outtextxy(175,32,'Pont:'+pont);
- {bonus}
- setfillstyle(1,0);bar(190,0,440,35);
- settextstyle(1,0,4);setcolor(4);
- str(jutalom,bonusz);outtextxy(200,0,'Bónusz:'+bonusz);
- {h e l p }
- settextstyle(1,0,2);setcolor(lightblue);
- outtextxy(500,40,'ESC F1 F2 F3');
- if b1=2 then egerbekapcs;
- end;
-
- procedure alapadatok;
- begin
- for i:=1 to 22 do hely[i]:=100;{a dominóhelyeket logikailag törli}
- for i:=1 to 5 do
- begin
- yhelyek[i]:=(i-1)*80+80;yhelyek[i+5]:=yhelyek[i];{konstansokat csinál}
- end; {a késôbbi vizszintes dominókitevésekhez}
- for i:=1 to 3 do
- begin {a függôleges dominókitevésekhez}
- yhelyek[(i*4)+7]:=(i-1)*150+101;for j:=8 to 11 do yhelyek[(i*4)+j]:=yhelyek[(i*4)+7];
- end;
- for i:= 1 to 5 do
- begin
- xhelyek[i]:=10;xhelyek[i+5]:=490;
- end;
- for i:=1 to 4 do
- begin
- xhelyek[i+10]:=(i-1)*80+165;xhelyek[i+14]:=(i-1)*80+165;xhelyek[i+18]:=(i-1)*80+165;
- end;
- {dominópontminta definiálása}
- vizdomdat[0]:='000000000';vizdomdat[1]:='000010000';vizdomdat[2]:='100000001';
- vizdomdat[3]:='100010001';vizdomdat[4]:='101000101';vizdomdat[5]:='101010101';
- vizdomdat[6]:='111000111';vizdomdat[7]:='110101111';vizdomdat[8]:='111101111';
- vizdomdat[9]:='111111111';
- for i:=0 to 9 do fugdomdat[i]:=vizdomdat[i];
- fugdomdat[6]:='101101101';
- for i:=0 to 9 do
- begin
- for j:=0 to 9 do {a dominófoglaltsági táblát logikailag kinullázza}
- begin
- domfogl[i,j]:=false;
- domfogl[j,i]:=false;
- end;
- end;
- end;
-
- procedure dominotorles; {domdel;az adott helyszámù dominót törli}
- begin
- if b1=2 then egerkikapcs;{kikapcsolja az egeret,hogy az grafikailag}
- hely[domdel]:=100; {ne zavarjon}
- if domdel>5 then xmod:=480
- else xmod:=0;
- if domdel>5 then domdel:=domdel-5;
- setfillstyle(1,0);
- bar(xmod+9,domdel*80-7,xmod+157,domdel*80+71);
- if b1=2 then egerbekapcs;
- end;
-
- procedure tolas;{-} {a függôleges dominókat eggyel lentebb tolja}
- begin
- if b1=2 then egerkikapcs;
- size:=imagesize(165,80,481,479);getmem(p,size);{memóriahelyfoglalás}
- getimage(165,80,481,479,p^);setfillstyle(1,0);{lefényképezés}
- for i:=1 to 15 do putimage(165,i*10+80,p^,0);{ùj helyre kirakás 15-ször}
- freemem(p,size); {memóriafelszabaditás}
- pontszam:=pontszam+100;jutalom:=jutalom+9;
- kepernyoszovegek;
- for i:=19 to 22 do {4 alsó eldobva}
- begin
- kirdom1:=hely[i] div 10;kirdom2:=hely[i] mod 10;
- domfogl[kirdom1,kirdom2]:=false;domfogl[kirdom2,kirdom1]:=false;
- end;
- for i:=0 to 3 do {leléptetés}
- begin
- hely[i+19]:=hely[i+15];hely[i+15]:=hely[i+11];hely[i+11]:=100
- end;
- if b1=2 then egerbekapcs;
- end;
-
- procedure dominokirak; {kirdom}{az adott helyszámra kiteszi a dominót}
- begin
- if b1=2 then egerkikapcs;
- kirdomh:=kirdom div 100; {hely}
- kirdom1:=(kirdom-(kirdomh*100)) div 10; {dominó bal fele}
- kirdom2:=(kirdom-(kirdomh*100))-(kirdom1*10); {dominó jobb oldala}
- hely[kirdomh]:=kirdom1*10+kirdom2;
- {teglalaprajz}
- if kirdomh<11 then xmod:=140
- else xmod:=70;
- ymod:=210-xmod;
- setfillstyle(1,dominoszin);setcolor(lightgray);
- bar3d(xhelyek[kirdomh],yhelyek[kirdomh],xhelyek[kirdomh]+xmod,yhelyek[kirdomh]+ymod,6,true);
- setfillstyle(1,dominoszin);
- floodfill(xhelyek[kirdomh]+4,yhelyek[kirdomh]-2,lightgray);
- if kirdomh<11 then floodfill(xhelyek[kirdomh]+xmod+4,yhelyek[kirdomh]+ymod-5,lightgray);
- if kirdomh>10 then floodfill(xhelyek[kirdomh]+xmod+4,yhelyek[kirdomh]+ymod-75,lightgray);
- setlinestyle(0,3,3);setcolor(lightgray);
- if kirdomh<11 then
- begin
- xmod:=140;ymod:=70;
- line(xhelyek[kirdomh]+70,yhelyek[kirdomh]+5,xhelyek[kirdomh]+70,yhelyek[kirdomh]+65);
- end;
- if kirdomh>10 then
- begin
- xmod:=70;ymod:=140;
- line(xhelyek[kirdomh]+5,yhelyek[kirdomh]+70,xhelyek[kirdomh]+65,yhelyek[kirdomh]+70);
- end;
- {pottyok}
- {bal vagy felso rajz}
- setlinestyle(0,0,1);
- for i:=0 to 2 do {3*3 pötty}
- begin
- for j:=1 to 3 do
- begin
- if kirdomh<11 then
- begin
- if copy(vizdomdat[kirdom1],i*3+j,1)='0' then k:=dominoszin
- else k:=15;
- end;
- if kirdomh>10 then
- begin
- if copy(fugdomdat[kirdom1],i*3+j,1)='0' then k:=dominoszin
- else k:=15;
- end;
- setfillstyle(1,k);setcolor(k);
- fillellipse(xhelyek[kirdomh]+(j*20)-5,yhelyek[kirdomh]+(i*20)+15,6,6);
- end;
- end;
- {jobb vagy also rajz}
- if kirdomh<11 then xmod:=70
- else xmod:=0;
- ymod:=70-xmod;
- for i:=0 to 2 do
- begin
- for j:=1 to 3 do
- begin
- if kirdomh<11 then
- begin
- if copy(vizdomdat[kirdom2],i*3+j,1)='0' then k:=dominoszin
- else k:=15;
- end;
- if kirdomh>10 then
- begin
- if copy(fugdomdat[kirdom2],i*3+j,1)='0' then k:=dominoszin
- else k:=15;
- end;
- setfillstyle(1,k);setcolor(k);
- fillellipse(xhelyek[kirdomh]+(j*20)-5+xmod,yhelyek[kirdomh]+(i*20)+15+ymod,6,6);
- end;
- end;
- if b1=2 then egerbekapcs;
- end;
-
- procedure kepernyovissza;{visszaállitja az eredeti játéktáblát}
- begin
- if b1=2 then egerkikapcs;
- cleardevice;
- for ra:=1 to 22 do {22 dominót kirak}
- begin
- if hely[ra]<>100 then {az üres helyet kihagyja}
- begin
- kirdom:=ra*100+hely[ra];dominokirak;
- end;
- end;
- kepernyoszovegek;regiperc:=66;mu:=0;
- if b1=2 then egerbekapcs;
- end;
-
- procedure egyki;{rizikónál egy szines dominót kitesz}
- label 1;
- begin
- kirdom:=random(2200)+100;
- 1:
- dominoszin:=random(14)+1;if dominoszin=lightgray then goto 1;
- dominokirak;
- end;
-
- procedure csikok;{képernyôvédelemnél rajzolja a poligonokat}
- begin
- for i:=1 to 5 do begin
- vv[i]:=vv[i]+vm[i];
- if vv[i]<1 then vm[i]:=1;
- if vv[i]>640 then vm[i]:=-1;
- ff[i]:=ff[i]+fm[i];
- if ff[i]<1 then fm[i]:=1;
- if ff[i]>70 then fm[i]:=-1;
- end;
- if random(50)=1 then idegszin:=random(7)+9;{véletlen szinváltás}
- if random(99)=1 then vm[random(5)+1]:=-1;{véletlen helyváltás}
- if random(99)=1 then fm[random(5)+1]:=1; { -''- }
- for i:=1 to 5 do begin {5 szögô a poligon}
- j:=i+1;
- if j=6 then j:=1;
- setcolor(0);{elôzô poligon törlése}
- line(rv[i],rf[i],rv[j],rf[j]);
- line(640-rv[i],rf[i],640-rv[j],rf[j]);{tükörképe}
- setcolor(idegszin);{ùj poligon rajzolása}
- line(vv[i],ff[i],vv[j],ff[j]);
- line(640-vv[i],ff[i],640-vv[j],ff[j]);
- end;
- for i:=1 to 5 do begin
- rv[i]:=vv[i];rf[i]:=ff[i];
- end;
- end;
-
- procedure kepernyovedelem;
- begin
- if b1=2 then egerkikapcs;
- for i:=1 to 22 do ideghely[i]:=hely[i];{aktuális játékképet elmenti}
- setcolor(0);bar(0,0,639,74); {a késôbbi visszaállitáshoz}
- settextstyle(1,0,7);setcolor(15);settextjustify(centertext,centertext);
- outtextxy(320,28,'Képernyôvédelem');delay(a1*3000); {felirat}
- setcolor(0);bar(0,0,639,74); {majd törlése}
- for i:=1 to 5 do {poligon kezdôhelyzete}
- begin
- vv[i]:=random(320);ff[i]:=random(70);
- if random(2)=0 then vm[i]:=-1
- else vm[i]:=1;
- if random(2)=1 then fm[i]:=-1
- else fm[i]:=1;
- end;
- if b1=1 then begin
- repeat
- for k:=1 to 7-a1*2 do csikok;
- egyki; {várakozás gombnyomásra}
- until keypressed;cg:=readkey;
- end;
- if b1=2 then begin
- repeat
- for k:=1 to 7-a1*2 do csikok;
- egyki;
- egerlekerdez;
- until regs.bx<>0;{várakozás klikkre}
- end;
- for i:=1 to 22 do hely[i]:=ideghely[i];{dominók vissza}
- settextjustify(lefttext,toptext);{szövegpozicionálás}
- cleardevice;dominoszin:=darkgray;kepernyovissza;
- egerbekapcs;
- end;
-
- procedure forgodominovissza;
- begin
- hely[14]:=idegszam;
- end;
-
- procedure rekordlistakiiratas;
- begin
- if b1=2 then egerkikapcs;
- cleardevice;setcolor(green);settextstyle(4,1,8);
- outtextxy(0,15,'Rekordlista');
- for i:=1 to 15 do
- begin
- str(i,idegstring);
- if helyezes=i then setcolor(white)
- else setcolor(lightred);
- settextstyle(1,0,3);
- outtextxy(100,i*23,idegstring+'.');
- outtextxy(170,i*23,neve[i]);
- str(posz[i],idegstring);
- outtextxy(450,i*23,idegstring);
- end;
- if b1=2 then egerbekapcs;
- end;
-
- procedure help;{kiirja a help képernyôt}
- begin
- if b1=2 then egerkikapcs;
- cleardevice;
- settextstyle(1,0,4);setcolor(white);{szin és betûméret állitás}
- outtextxy(200,20,'F1 - Help');
- outtextxy(200,65,'F2 - Uj játék');
- outtextxy(200,110,'F3 - Rekordlista');
- outtextxy(140,155,'F5,F6,F7,F8 - Fônök jön!');
- outtextxy(200,200,'F10 - Idôhang be - ki');
- outtextxy(200,245,'ESC - Játék vége');
- outtextxy(180,300,'A játékszabályok az');
- outtextxy(110,345,'Olvass.el! file-ban találhatók.');
- settextstyle(1,0,6);
- outtextxy(190,415,'Jó játékot!');
- klikk;
- if b1=2 then egerbekapcs;
- if b1=2 then egervar1;
- if b1=1 then begin
- repeat
- until keypressed;cg:=readkey;
- kepernyovissza;
- end;
- if b1=2 then begin
- repeat
- egerlekerdez;
- until regs.bx=1;
- kepernyovissza;egerbekapcs;
- end;
- end;
-
- procedure fonok;{oszlopdiagrammot rajzol a képernyôre}
- begin
- if b1=2 then egerkikapcs;
- cleardevice;
- setcolor(white);setlinestyle(0,3,2);{koordinátarendszer}
- line(20,0,20,479);line(0,460,640,460);
- line(20,0,17,10);line(20,0,23,10);
- line(640,460,630,457);line(640,460,630,463);
- for i:=1 to 10 do {oszlopok}
- begin
- idegszam:=random(300)+30;
- idegszin:=random(13)+1;
- setcolor(lightgray);
- setfillstyle(1,idegszin);
- bar3d(i*55,458,i*55+40,idegszam,7,true);
- str((600-idegszam)*2,idegstring);
- settextstyle(1,0,2);setcolor(idegszin);
- outtextxy(i*55+5,idegszam-40,idegstring);
- end;
- if b1=2 then egerbekapcs;
- if b1=2 then egervar1;
- if b1=1 then begin
- repeat
- until keypressed;cg:=readkey;
- kepernyovissza;
- end;
- if b1=2 then begin
- repeat
- egerlekerdez;
- until regs.bx=1;
- kepernyovissza;egerbekapcs;
- end;
- end;
-
- procedure listagombra;
- begin
- rekordlistakiiratas;
- klikk;
- if b1=1 then begin
- repeat
- until keypressed;cg:=readkey;
- end;
- if b1=2 then egervar1;
- if b1=2 then begin
- egerbekapcs;
- repeat
- egerlekerdez;
- until regs.bx=1;
- end;
- if b1=2 then egerkikapcs;
- kepernyovissza;
- if b1=2 then egerbekapcs;
- end;
-
- procedure villogtato;{a növekvô sorrendû dominókat villogtatja}
- begin
- for rb:=1 to 5 do
- begin
- for ra:=19 to 22 do
- begin
- dominoszin:=cyan;kirdom:=ra*100+hely[ra];dominokirak;
- end;
- for ra:=19 to 22 do
- begin
- dominoszin:=darkgray;kirdom:=ra*100+hely[ra];dominokirak;
- end;
- end;
- end;
-
- procedure hibahang;{-}
- begin
- for i:=0 to 150 do
- begin
- sound(i*4);delay(a1);
- end;
- for i:=150 downto 0 do
- begin
- sound(i*4);delay(a1);
- end;
- nosound;
- end;
-
- procedure kezdodominok; {-}{kiteszi a 10 kezdô dominót}
- label 1,2;
- begin
- for c:=1 to 10 do
- begin
- 1:
- a:=random(10);b:=random(10);
- if domfogl[a,b]=true then goto 1;
- if domfogl[b,a]=true then goto 1;
- domfogl[a,b]:=true;domfogl[b,a]:=true;
- kirdom:=(c*100)+(a*10)+b;
- dominoszin:=darkgray;dominokirak;
- end;
- for c:=19 to 22 do {kiteszi a 4 alsó kezdô dominót}
- begin
- 2:
- a:=random(10);b:=random(10);
- if domfogl[a,b]=true then goto 2;
- if domfogl[b,a]=true then goto 2;
- domfogl[a,b]:=true;domfogl[b,a]:=true;
- kirdom:=(c*100)+(a*10)+b;
- dominokirak;
- end;
- end;
-
- procedure bonkir;{kiirja a bónuszt}
- begin
- setfillstyle(1,0);
- bar(348,400,640,460);
- str(jutalom,bonusz);
- settextstyle(1,0,8);setcolor(red);
- outtextxy(350,380,bonusz);
- end;
-
- procedure ponkir;{kiirja a pontot}
- begin
- setfillstyle(1,0);
- bar(348,300,640,360);
- str(pontszam,pont);
- settextstyle(1,0,8);setcolor(15);
- outtextxy(350,280,pont);
- end;
-
- procedure kiskeptorl;{törli a felsô képernyôrészt}
- begin
- setcolor(0);setfillstyle(1,0);
- bar(165,0,475,80);
- end;
-
- procedure rizikokep;
- begin
- for i:=0 to 65 do
- begin
- kiskeptorl;
- setcolor(random(14)+1);settextstyle(1,0,6);
- outtextxy(180,i-60,'R i z i k ó');delay(a1*10);
- end;
- nosound;
- delay(a1*1000);
- end;
-
- procedure riziko; {-}{a rizikót bonyolitja le}
- label 1,2,3,4,5,6,7,8,9,10,11,12;
- begin
- if b1=2 then egerkikapcs;
- pannongsm;
- idegszam:=hely[14];regiperc:=66;
- if jutalom=0 then jutalom:=10;
- rizikokep;
- cleardevice;
- settextstyle(1,0,4);setcolor(cyan);
- outtextxy(50,50,'Kicsi lesz');
- outtextxy(50,100,'Nagy lesz');
- outtextxy(50,150,'Beiratom');
- outtextxy(50,200,'Rizikó vége');
- setlinestyle(0,3,1);setcolor(yellow);
- for i:=0 to 3 do rectangle(48,i*50+56,70,i*50+85);
- 6:
- setcolor(red);settextstyle(1,0,8);
- outtextxy(70,380,'Bónusz:');bonkir;
- dominoszin:=darkgray;
- 5:
- if b1=1 then
- begin
- repeat
- pontosido;
- ra:=random(10);rb:=random(10);kirdom:=1400+ra*10+rb;
- dominokirak;sound(100);delay(a1*20);nosound;
- until keypressed;
- cg:=readkey;
- end;
- if b1=2 then
- begin
- egerbekapcs;
- repeat
- egerlekerdez;
- pontosido;
- ra:=random(10);rb:=random(10);kirdom:=1400+ra*10+rb;
- dominokirak;sound(100);delay(a1*20);nosound;
- until regs.bx<>0;
- if (regs.cx>48) and (regs.dx>56) and (regs.cx<195) and (regs.dx<85) then cg:='k';
- if (regs.cx>48) and (regs.dx>106) and (regs.cx<195) and (regs.dx<135) then cg:='n';
- if (regs.cx>48) and (regs.dx>156) and (regs.cx<195) and (regs.dx<185) then cg:='b';
- if (regs.cx>48) and (regs.dx>206) and (regs.cx<235) and (regs.dx<235) then cg:='r';
- if b1=2 then egerbekapcs;
- end;
- case cg of
- 'k' : goto 1;
- 'n' : goto 2;
- 'b' : goto 3;
- 'r' : goto 4;
- end;
- goto 5;
- 1:
- if ra+rb<=9 then
- begin
- jutalom:=jutalom*2;bonkir;
- for i:=100 to 1000 do
- begin
- sound(i);delay(a1*1);
- end;
- nosound;
- goto 6;
- end;
- if ra+rb>9 then
- begin
- jutalom:=0;
- bonkir;
- for i:=1000 downto 100 do
- begin
- sound(i);delay(a1*1);
- end;
- nosound;delay(a1*1000);goto 7;
- end;
- 2:
- if ra+rb>=9 then
- begin
- jutalom:=jutalom*2;bonkir;
- for i:=100 to 1000 do
- begin
- sound(i);delay(a1*1);
- end;
- nosound;
- goto 6;
- end;
- if ra+rb<9 then
- begin
- jutalom:=0;
- bonkir;
- for i:=1000 downto 100 do
- begin
- sound(i);delay(a1*1);
- end;
- nosound;delay(a1*1000);goto 7;
- end;
- 3: {lepergetés}
- settextstyle(1,0,8);setcolor(15);outtextxy(145,280,'Pont:');
- for i:=6 downto 2 do
- begin
- z:=1;for j:=1 to i do z:=z*10;
- 10:
- if jutalom<z then goto 11;
- jutalom:=jutalom-z;pontszam:=pontszam+z;
- bonkir;ponkir;sound(1000);delay(a1*40);nosound;
- goto 10;
- 11:
- end;
- 12:
- if jutalom=0 then goto 4;
- jutalom:=jutalom-1;pontszam:=pontszam+1;
- bonkir;ponkir;sound(1000);delay(a1*20);nosound;delay(a1*10);
- goto 12;
-
- 4:delay(a1*2000);goto 7;
- 7:
- forgodominovissza;kepernyovissza;
- if b1=2 then egerbekapcs;
- end;
-
- procedure filezaro;
- label 1,2;
- type rek=record
- nev : string[15];
- po : longint;
- end;
- var
- drek:rek;
- rekord:file of rek; {rekord...lista}
- begin
- hanyadik;if b1=2 then egerkikapcs;
- if helyezes<=15 then
- begin
- rekordlistakiiratas;
- settextstyle(1,0,2);setcolor(yellow);
- outtextxy(130,440,'Név:');
- idegstring:='';
- 1:
- hossz:=length(idegstring);
- setfillstyle(1,0);
- bar(178,430,640,470);
- outtextxy(180,440,idegstring);
- repeat
- idegstring:=idegstring+#240;
- outtextxy(180,440,idegstring);delay(a1*200);
- idegstring:=copy(idegstring,1,hossz);
- bar(178,430,640,470);
- outtextxy(180,440,idegstring);delay(a1*200);
- until keypressed;
- cg:=readkey;
- if cg=#8 then
- begin
- if hossz=0 then goto 1;
- idegstring:=copy(idegstring,1,hossz-1);
- goto 1;
- end;
- if cg=#13 then goto 2;
- idegstring:=idegstring+cg;goto 1;
- 2:
- if length(idegstring)>15 then idegstring:=copy(idegstring,1,15);
- hanyadik;
- for i:=14 downto helyezes do
- begin
- neve[i+1]:=neve[i];
- posz[i+1]:=posz[i];
- end;
- neve[helyezes]:=idegstring;posz[helyezes]:=pontszam;
- rekordlistakiiratas;
- getdir(0,utvonal);if copy(utvonal,length(utvonal),1)<>'\' then utvonal:=utvonal+'\';
- assign(rekord,utvonal+'rekord.dat');
- rewrite(rekord);
- for i:=0 to 15 do
- begin
- with drek do
- begin
- nev:=neve[i];
- po:=posz[i];
- write(rekord,drek);
- end;
-
- end;
- close(rekord);
- delay(a1*3000);
- end;
- if b1=2 then egerbekapcs;
- end;
-
- procedure filevizsgalat;{a file 1995 március 5-én iródott?}
- begin
- findfirst(utvonal+idegstring,archive,dirinfo);
- unpacktime(dirinfo.time,datumido);
- if (datumido.year<>1995) or (datumido.month<>3) or (datumido.day<>5) then belekotor;
- end;
-
- procedure grafikainicializalas;
- begin
- gd:=detect;gm:=detect;{aktuális képernyômód szerint inicializál}
- getdir(0,utvonal);if copy(utvonal,length(utvonal),1)<>'\' then utvonal:=utvonal+'\';
- initgraph(gd,gm,utvonal);
- end;
-
- procedure szinallit;{az rbg paletta szineit állitja}
- begin
- setrgbpalette(green,rgb[1],rgb[2],rgb[3]);
- end;
-
- procedure setupdathiany;
- begin
- settextstyle(1,0,8);settextjustify(centertext,centertext);
- rgb[1]:=0;rgb[2]:=0;rgb[3]:=0;szinallit;
- setcolor(green);
- outtextxy(320,50,'Nem találom a');
- outtextxy(320,130,'Setup.dat file-t!');
- outtextxy(320,230,'Futtasd le a');
- outtextxy(320,310,'Setup.exe-t!');
- repeat
- a:=random(3)+1;b:=random(42)+22;
- c:=rgb[a];
- if c<b then
- begin
- for i:=c to b do
- begin
- rgb[a]:=i;szinallit;
- end;
- end
- else
- begin
- for i:=c downto b do
- begin
- rgb[a]:=i;szinallit;
- end;
- end;
- until keypressed;
- a1:=1;terminator;
- cleardevice;closegraph;halt;
- end;
-
- procedure sorsolas;
- label 1,2;
- begin
- kisors:=0;
- if pontszam=0 then goto 1;
- if sorsszam<>0 then goto 1;
- setcolor(0);setfillstyle(1,0);bar(165,80,481,479);
- settextjustify(centertext,centertext);
- cc:=random(10);str(cc,q);
- for a:=1 to 10 do
- begin
- settextstyle(1,0,a);
- setcolor(lightcyan);outtextxy(250,240,q);
- delay(a1*20);
- setcolor(0);outtextxy(250,240,q);
- end;
- setcolor(lightcyan);outtextxy(250,240,q);delay(a1*1000);
- idegszam:=hely[18];
- for a:=1 to 20 do
- begin
- repeat
- e:=random(10);dominoszin:=random(15);
- until dominoszin<>lightgray;
- for c:=500 downto 400 do sound(c);
- nosound;
- kirdom:=1800+e*10+e;dominokirak;delay(a*a1*20);
- end;
- if e<>cc then begin
- a:=random(4);
- if a=0 then ii:='Nem nyert!';
- if a=1 then ii:='Sajnos...';
- if a=2 then ii:='Hát...';
- if a=3 then ii:='Ez pech...';
- for a:=1 to 6 do begin
- settextstyle(1,0,a);
- setcolor(lightgray);outtextxy(320,105,ii);
- delay(a1*5);
- setcolor(0);outtextxy(320,105,ii);
- end;
- setcolor(lightgray);outtextxy(320,105,ii);
- delay(a1*3000);
- end;
- if e<>cc then goto 1;
- kisors:=1;
- for a:=7 to 9 do begin {nyert}
- for b:=1 to 3 do
- begin
- sound(a*100);delay(a1*60);nosound;delay(a1*60);
- end;
- end;
- sound(1000);delay(a1*600);nosound;
- a:=random(3);
- if a=0 then ii:='Nyert!';
- if a=1 then ii:='Ez igen!';
- if a=2 then ii:='Mázli...';
- for a:=1 to 8 do begin
- settextstyle(1,0,a);
- setcolor(lightgreen);outtextxy(320,105,ii);
- delay(a1*5);
- setcolor(0);outtextxy(320,105,ii);
- end;
- setcolor(lightgreen);outtextxy(320,105,ii);
- for a:=1 to 7 do begin
- b:=random(10)+1;
- c:=hely[b] mod 10;d:=hely[b] div 10;
- domfogl[c,d]:=false;domfogl[d,c]:=false;
- domdel:=b;dominotorles;delay(a1*200);
- end;
- 2:
- delay(a1*3000);
- setcolor(0);setfillstyle(1,0);bar(165,80,481,479);
- hely[18]:=idegszam;dominoszin:=darkgray;
- for a:=11 to 22 do begin
- if hely[a]<>100 then
- begin
- kirdom:=a*100+hely[a];dominokirak;
- end;
- end;
- if b1=2 then egerbekapcs;
- sorsszam:=1;
- 1:
- settextjustify(lefttext,toptext);
- end;
- procedure nemirhato;
- begin
- cleardevice;settextjustify(centertext,centertext);
- setcolor(lightred);settextstyle(1,0,10);outtextxy(320,50,'Baj van!');
- settextstyle(1,0,5);outtextxy(320,170,'A programot tartalmazó');
- outtextxy(320,220,'adathordozó nem irható!');
- outtextxy(320,320,'Irásvédett lemez vagy CD.');
- repeat until keypressed;
- cleardevice;closegraph;halt;
- end;
-
- {eddig vannak procedurok}
-
- {----------------------------------------------------------}
- {fôprogram}
-
- label 1,2,3,4,5,6,7,8,9,10;
- begin
- grafikainicializalas;
- randomize;{inicializálja a véletlenszámgenerátort}
- getdir(0,utvonal);if copy(utvonal,length(utvonal),1)<>'\' then utvonal:=utvonal+'\';
- {próbaképpen csinál egy könyvtárat,ha nem lehet,irsvédett a lemez}
- {$I-} mkdir(utvonal+'probadir');if ioresult<>0 then nemirhato;
- rmdir(utvonal+'probadir');{törli a próbakönyvtárat}
- assign(satup,utvonal+'setup.dat');
- {$I-} reset(satup); if ioresult<>0 then setupdathiany;
- with hset do {beolvassa a setup.dat file-t}
- begin
- read(satup,hset);a1:=param;
- read(satup,hset);b1:=param;
- read(satup,hset);c1:=param;
- read(satup,hset);d1:=param;
- end;
- close(satup);
- domdemo; {unit-hivás}
- grafikainicializalas;
- idegstring:='olvass.el!'; filevizsgalat;
- idegstring:='doomino.exe';filevizsgalat;
- if b1=2 then begin
- regs.ax:=0;intr($33,regs);if regs.ax=0 then
- begin
- egergond;
- end;
- egerbekapcs;
- end;
- jutalom:=0;mu:=0;{képernyôvédelmet vezérlô mutatót nullázza}
- 10:
- sorsszam:=0;
- filemegnyitas;
- 9:
- setbkcolor(0);cleardevice;
- alapadatok;regiperc:=66;
- kezdodominok;
- pontszam:=0;kepernyoszovegek;if b1=2 then egerbekapcs;
- 1:
- cg:='0';
- if b1=1 then begin
- repeat
- pontosido;
- if mu>3 then kepernyovedelem;
- until keypressed;
- end;
- if b1=2 then begin
- repeat
- pontosido;
- if mu>3 then kepernyovedelem;
- egerlekerdez;
- until regs.bx>0;
- end;
- mu:=0;
- if b1=1 then cg:=readkey;
- if b1=2 then begin
- egerlekerdez;
- end;
- if b1=1 then begin
- if cg=#27 then
- begin
- if b1=2 then egerkikapcs;
- settextstyle(1,0,2);setcolor(lightcyan);
- outtextxy(500,40,'ESC');
- setfillstyle(1,red);setcolor(blue);
- bar3d(170,195,465,235,5,true);
- settextstyle(1,0,3);setcolor(lightgray);
- outtextxy(180,200,'Nem viccelsz? (Nem/De)');
- if b1=2 then egerbekapcs;
- cg:=readkey;
- if cg='n' then
- begin
- filezaro;
- terminator;cleardevice;closegraph;
- textcolor(white);
- writeln('');
- writeln('Viszlát! Remélem tetszettem!');
- writeln('');
- writeln(' A szerzôk');
- halt;
- end;
- kepernyovissza;regiperc:=66;goto 1;
- end;
- end;
- if b1=2 then begin
- egerlekerdez;
- if (regs.cx>500) and (regs.cx<535) and (regs.dx>40) and (regs.dx<60) then
- begin
- if b1=2 then egerkikapcs;
- settextstyle(1,0,2);setcolor(lightcyan);
- outtextxy(500,40,'ESC');
- setfillstyle(1,red);setcolor(blue);
- bar3d(170,195,465,235,5,true);
- settextstyle(1,0,3);setcolor(lightgray);
- outtextxy(180,200,'Nem viccelsz? (Nem/De)');
- if b1=2 then egerbekapcs;
- repeat
- egerlekerdez;
- until regs.bx<>1;
- repeat
- egerlekerdez;
- until regs.bx=1;
- idegszam:=0;
- if (regs.cx>358) and (regs.cx<410) and (regs.dx>205) and (regs.dx<225) then idegszam:=1;
- if (regs.cx>500) and (regs.cx<535) and (regs.dx>40) and (regs.dx<60) then idegszam:=1;
- if idegszam=1 then
- begin
- filezaro;
- egerkikapcs;
- terminator;cleardevice;closegraph;
- textcolor(white);
- writeln('');
- writeln('Viszlát! Remélem tetszettem!');
- writeln('');
- writeln(' A szerzôk');
- halt;
- end;
- kepernyovissza;regiperc:=66;goto 1;
- end;
- end;
- if b1=2 then begin
- egerlekerdez;
- if (regs.bx=1) and (regs.cx>500) and (regs.cx<625) and (regs.dx>13) and (regs.dx<35) then
- begin
- d1:=1-d1;regiperc:=66;regisec:=66;pontosido;
- egervar1;
- goto 1;
- end;
- end;
- if b1=1 then begin
- if cg=#0 then
- begin
- cg:=readkey;
- if cg=#60 then begin
- if sorsszam<>0 then begin
- filezaro;
- goto 10;
- end;
- sorsolas;
- if kisors=0 then begin
- filezaro;
- goto 10;
- end;
- goto 1;
- end;
- if cg=#61 then begin listagombra;regiperc:=66;goto 1;end;
- if cg=#59 then begin help;regiperc:=66;goto 1;end;
- if cg=#68 then begin d1:=1-d1;regiperc:=66;regisec:=66;pontosido;goto 1;end;
- if (cg>#62) and (cg<#67) then begin fonok;regiperc:=66;goto 1;end;
- end;
- end;
- if b1=2 then begin
- egerlekerdez;
- if (regs.bx=1) and (regs.cx>540) and (regs.cx<570) and (regs.dx>40) and (regs.dx<65) then
- begin egervar1;help;regiperc:=66;goto 1;end;
- if (regs.bx=1) and (regs.cx>577) and (regs.cx<607) and (regs.dx>40) and (regs.dx<65) then
- begin
- egervar1;egerkikapcs;
- kisors:=0;
- if sorsszam=0 then sorsolas;
- if kisors=0 then begin
- filezaro;goto 10;
- end;
- egerbekapcs;goto 1;
- end;
- if (regs.bx=1) and (regs.cx>612) and (regs.cx<639) and (regs.dx>40) and (regs.dx<65) then
- begin egervar1;egerkikapcs;listagombra;regiperc:=66;goto 1;end;
- if (regs.bx=1) and (regs.cx<150) and (regs.dx>80) then cg:=chr((((regs.dx)-80) div 80)+97);
- if (regs.bx=1) and (regs.cx>490) and (regs.dx>80) then cg:=chr((((regs.dx)-80) div 80)+102);
- if regs.bx=3 then begin fonok;regiperc:=66;goto 1;end;
- end;
- if cg<'a' then {betûre vár}
- begin
- hibahang;goto 1;
- end;
- if cg>'j' then
- begin
- hibahang;goto 1;
- end;
- konv;szam:=betu-64;
- if hely[szam]=100 then {ures helyre rak}
- begin
- 2:
- a:=random(10);b:=random(10);
- if domfogl[a,b]=true then goto 2;
- if domfogl[b,a]=true then goto 2;
- if a=b then jutalom:=jutalom+7;
- domfogl[a,b]:=true;domfogl[b,a]:=true;
- kirdom:=szam*100+a*10+b;dominokirak;
- pontszam:=pontszam-10;kepernyoszovegek;
- if a+b=18 then
- begin
- dominoszin:=yellow;dominokirak;
- riziko;
- end;
- if a+b=0 then
- begin
- dominoszin:=yellow;dominokirak;
- riziko;
- end;
- egervar1;goto 1;
- end;
- if hely[szam]<100 then {felemeli a kijelölt dominót}
- begin
- kirdom:=szam*100+hely[szam];dominoszin:=blue;
- dominokirak;
- dominoszin:=darkgray;
- end;egervar1;
- if b1=1 then begin
- repeat
- pontosido;
- cg:='0';
- until keypressed;
- cg:=readkey;
- end;
- if b1=2 then begin
- repeat
- egerlekerdez;pontosido;
- until regs.bx<>0;
- if (regs.bx=1) and (regs.dx>80) and (regs.cx>160) and (regs.cx<480) then
- cg:=chr((((regs.cx)-160) div 80)+49);
- end;
- if cg<'1' then {számra vár}
- begin
- hibahang;dominoszin:=darkgray;kirdom:=szam*100+hely[szam];dominokirak;goto 1;
- end;
- if cg>'4' then
- begin
- hibahang;dominoszin:=darkgray;kirdom:=szam*100+hely[szam];dominokirak;goto 1;
- end;
- konv;
- if hely[szamszam+10]<>100 then
- begin
- hibahang;dominoszin:=darkgray;kirdom:=szam*100+hely[szam];dominokirak;goto 1;
- end;
- if hely[szamszam+14]=100 then mutato:=14
- else mutato:=10;
-
-
- if (hely[szamszam+mutato+4] div 10)=(hely[szam] mod 10) then goto 3;
- if (hely[szamszam+mutato+4] div 10)=(hely[szam] div 10) then
- begin
- idegszam:=(hely[szam] div 10)+(hely[szam] mod 10)*10;
- hely[szam]:=idegszam;
- goto 3;
- end;
- hibahang;dominoszin:=darkgray;kirdom:=szam*100+hely[szam];dominokirak;goto 1;
- 3:
- kirdom:=(szamszam+mutato)*100+hely[szam];dominokirak;
- domdel:=szam;dominotorles;
- pontszam:=pontszam+20;kepernyoszovegek;
- {furelise vizsgalat}
- idegszam:=0;
- for i:=1 to 10 do idegszam:=idegszam+hely[i];
- if idegszam=1000 then {ha mind elfogyott kintrôl}
- begin
- taps;
- pontszam:=pontszam+1000;jutalom:=jutalom+99;kepernyoszovegek;
- end;
- {letolas vizsgalat}
- for i:=15 to 18 do if hely[i]=100 then goto 1;
- tolas; {egyenloseg}
- if hely[19] div 10<>hely[20] then goto 4;
- if hely[19] div 10<>hely[21] then goto 4;
- if hely[19] div 10<>hely[22] then goto 4;
- villogtato;pontszam:=pontszam+500;jutalom:=jutalom+49;kepernyoszovegek;
- 4:
- for i:=19 to 21 do {novekves}
- begin
- if hely[i] div 10>=hely[i+1] div 10 then goto 5;
- end;
- villogtato;pontszam:=pontszam+500;jutalom:=jutalom+45;kepernyoszovegek;
- 5:
- for i:=19 to 21 do {csokkenes}
- begin
- if hely[i] div 10<=hely[i+1] div 10 then goto 6;
- end;
- villogtato;pontszam:=pontszam+500;jutalom:=jutalom+45;kepernyoszovegek;
- 6:
- for i:=19 to 21 do {eggyel no}
- begin
- if hely[i] div 10<>(hely[i+1] div 10)+1 then goto 7;
- end;
- villogtato;pontszam:=pontszam+500;jutalom:=jutalom+99;kepernyoszovegek;
- 7:
- for i:=19 to 21 do {eggyel csokken}
- begin
- if hely[i] div 10<>(hely[i+1] div 10)-1 then goto 8;
- end;
- villogtato;pontszam:=pontszam+500;jutalom:=jutalom+99;kepernyoszovegek;
- 8:
-
- goto 1;
- end.
-