Автор работы: Пользователь скрыл имя, 09 Февраля 2011 в 09:12, курсовая работа
В данной работе изложен материал по разработке программного продукта «Игровая программа “Pacman”», созданного для использования в операционных системах MS DOS, семейства MS Windows 9x, MS Windows XP. Данное приложение является игровым и предназначено для развлечения.
Введение………………………………………………………3 стр.
1.Анализ предметной области………………………………4-5 стр.
2.Проектирование……………………………………………6-8 стр.
3.Реализация………………………………………………….9-12 стр.
Заключение……………………………………………………13 стр.
Список используемой литературы…………………….......14 стр.
Глоссарий……………………………………………………..15 стр.
Приложение……………………………………………….......16-24 стр.
end else begin
ec3^.nxt:=ec2;
ec3:=ec2;
end;
end;
end;
for i:=3 downto 2 do begin
cleardevice;
pieslice(20,20,5*i,360-5*i,10)
rectangle(19,14,20,15);
size:=imagesize(7,7,33,33);
if j=1 then begin
new(p2);
getmem(p2^.im,size);
getimage(7,7,33,33,p2^.im);
p3^.nxt:=p2;
p3:=p2;
end else begin
new(ec2);
getmem(ec2^.im,size);
getimage(7,7,33,33,ec2^.im);
ec3^.nxt:=ec2;
ec3:=ec2;
end;
end;
p2^.nxt:=p;
ec2^.nxt:=ec;
end;
cleardevice;
setcolor(4);
rectangle(20,20,100,21);
size:=imagesize(20,20,100,21);
new(barre);
getmem(barre,size);
getimage(20,20,100,21,barre^);
cleardevice;
setcolor(4);
line(20,10,30,30);
line(20,10,10,30);
line(10,30,30,30);
line(16,20,20,20);
line(20,20,18,25);
line(18,25,16,20);
line(20,20,24,20);
line(24,20,22,25);
line(22,25,20,20);
setfillstyle(1,4);
floodfill(20,15,4);
floodfill(20,27,4);
setcolor(0);
line(17,27,23,27);
size:=imagesize(7,7,33,33);
new(fantome);
getmem(fantome,size);
getimage(7,7,33,33,fantome^);
setfillstyle(1,10);
floodfill(20,28,0);
size:=imagesize(7,7,33,33);
new(vdt);
getmem(vdt,size);
getimage(7,7,33,33,vdt^);
setfillstyle(1,5);
floodfill(20,28,0);
size:=imagesize(7,7,33,33);
new(repos);
getmem(repos,size);
getimage(7,7,33,33,repos^);
cleardevice;
setcolor(14);
rectangle(9,9,10,10);
size:=imagesize(9,9,10,10);
new(fromage);
getmem(fromage,size);
getimage(9,9,10,10,fromage^);
niveau:=0;
points:=0;
vies:=3;
son:=true;
b:=400;
repeat
cleardevice;
for i:=1 to 19 do
for j:=1 to 13 do
putimage(i*28+36,j*28+45,
setcolor(1);
{bordure}
rectangle(50,60,582,424);
rectangle(49,59,583,425);
{motifs}
rectangle(78,88,161,144);
rectangle(471,88,554,144);
rectangle(78,340,161,396);
rectangle(471,340,554,396);
rectangle(189,60,218,144);
rectangle(414,60,443,144);
rectangle(189,340,218,424);
rectangle(414,340,443,424);
rectangle(246,88,386,144);
rectangle(246,340,386,396);
rectangle(50,172,161,228);
rectangle(471,172,582,228);
rectangle(50,256,161,312);
rectangle(471,256,582,312);
rectangle(189,172,443,312);
rectangle(190,173,442,311);
{Anti-fromages}
setfillstyle(1,0);
floodfill(300,200,1);
{passage secret}
setcolor(0);
rectangle(582,229,583,255);
rectangle(49,229,50,255);
rectangle(304,172,330,173);
{Remplissage}
setfillstyle(1,1);
floodfill(80,90,1);
floodfill(80,350,1);
floodfill(500,350,1);
floodfill(500,90,1);
floodfill(200,90,1);
floodfill(420,90,1);
floodfill(200,400,1);
floodfill(420,400,1);
floodfill(250,100,1);
floodfill(250,350,1);
floodfill(100,200,1);
floodfill(500,200,1);
floodfill(100,300,1);
floodfill(500,300,1);
{camemberts}
setfillstyle(1,2);
setcolor(2);
circle(65,75,5);
floodfill(65,75,2);
circle(65,409,5);
floodfill(67,409,2);
circle(566,75,5);
floodfill(566,75,2);
circle(566,409,5);
floodfill(566,409,2);
setcolor(3);
outtextxy(50,40,'lifes:');
outtextxy(156,40,'points:
outtextxy(290,435,'Infos:I');
setcolor(0);
str(niveau,s);
outtextxy(540,40,s);
niveau:=niveau+1;
setcolor(3);
str(niveau,s);
outtextxy(540,40,s);
str(vies,s);
outtextxy(105,40,s);
f1:=true;
f2:=true;
f3:=true;
f4:=true;
repas:=0;
for j:=1 to 16 do
stock[j]:=0;
1:
p2:=p;
ec2:=ec;
temps:=0;
perdu:=false;
new(pf);
pf^.fa:=304;
pf^.fo:=174;
pf^.rf:=4;
pf^.delais:=0;
new(pf2);
pf2^.fa:=304;
pf2^.fo:=210;
pf2^.rf:=8;
pf2^.delais:=0;
pf^.nxt:=pf2;
new(pf3);
pf3^.fa:=304;
pf3^.fo:=240;
pf3^.rf:=8;
pf3^.delais:=0;
pf2^.nxt:=pf3;
pf2:=pf3;
new(pf3);
pf3^.fa:=304;
pf3^.fo:=275;
pf3^.rf:=8;
pf3^.delais:=0;
pf3^.nxt:=nil;
pf2^.nxt:=pf3;
x:=303;
y:=313;
r:='5';
i:=1;
b:=b-20;
c:=b+30;
bonus:=false;
repeat
i:=i+1;
if keypressed then
r:=upcase(readkey);
if r='S' then son:=(son=false);
if r='P' then repeat until keypressed;
if r='I' then infos;
if i mod 4000=0 then if temps=0 then p2:=p2^.nxt else ec2:=ec2^.nxt;
if i mod b=0 then begin
if r='6' then if (getpixel(x+27,y)<>1)and(
if r='4' then if (getpixel(x-1,y)<>1)and(
if r='2' then if (getpixel(x,y+27)<>1)and(
if r='8' then if (getpixel(x,y-1)<>1)and(
if r='5' then d:=0;
if d=6 then if (getpixel(x+27,y)<>1)and(
if d=4 then if (getpixel(x-1,y)<>1)and(
if d=2 then if (getpixel(x,y+27)<>1)and(
if d=8 then if (getpixel(x,y-1)<>1)and(
if ((d=6)and((getpixel(x+27,y+12)
or((d=4)and((getpixel(x-1,y+
or((d=2)and((getpixel(x+12,y+
or((d=8)and(getpixel(x+12,y-1)
setcolor(0);
str(points,s);
outtextxy(220,40,s);
points:=points+10;
if points mod 4000=0 then bonus:=true;
repas:=repas+1;
setcolor(3);
str(points,s);
outtextxy(220,40,s);
end;
if temps>0 then begin
putimage(x,y,ec2^.im,
temps:=temps-1;
putimage(360+trunc(80*temps/(
end else
putimage(x,y,p2^.im,normalput)
if (x=51)and(y=61)and(f1=true) then begin
f1:=false;
temps:=60*(10-niveau div 2);
putimage(360,43,barre^,
end;
if (x=555)and(y=61)and(f2=true) then begin
f2:=false;
temps:=60*(10-niveau div 2);
putimage(360,43,barre^,
end;
if (x=51)and(y=397)and(f3=true) then begin
f3:=false;
temps:=60*(10-niveau div 2);
putimage(360,43,barre^,
end;
if (x=555)and(y=397)and(f4=true) then begin
f4:=false;