Создание игровой программы "Pacman"

Автор работы: Пользователь скрыл имя, 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 стр.

Файлы: 1 файл

создание игровой программы pacman.doc

— 64.79 Кб (Скачать файл)

                temps:=60*(10-niveau div 2);

                putimage(360,43,barre^,normalput);

                end;

            end; 
     

        tar:=false;

        k:=1;

            if i mod c=0 then begin

            pf2:=pf;

                repeat

                randomize;

                    repeat

                        if (tar=true)or((pf2^.fa=162)and(pf2^.fo=145))or((pf2^.fa=219)and(pf2^.fo=145))

                        or((pf2^.fa=387)and(pf2^.fo=145))or((pf2^.fa=444)and(pf2^.fo=145))or((pf2^.fa=444)and(pf2^.fo=229))

                        or((pf2^.fa=444)and(pf2^.fo=313))or((pf2^.fa=387)and(pf2^.fo=313))or((pf2^.fa=162)and(pf2^.fo=313))

                        or((pf2^.fa=219)and(pf2^.fo=313))or((pf2^.fa=162)and(pf2^.fo=229)) then begin

                            if (k<3)and(temps=0)and(random(10)>2+(niveau div 2)) then begin

                            route(t,x,y,pf2^.fa,pf2^.fo);

                            pf2^.rf:=t[k];

                            k:=k+1;

                            end else pf2^.rf:=random(4)*2+2;

                        end; 

                        if (pf2^.fa=304)and(pf2^.fo=174)and(pf2^.delais=0) then pf2^.rf:=8;

                        if (pf2^.fa=304)and(pf2^.fo=145)and(pf2^.rf=2) then pf2^.rf:=random(2)*2+4;; 

                        if pf2^.rf=6 then if (getpixel(pf2^.fa+27,pf2^.fo)<>1)and(getpixel(pf2^.fa+27,pf2^.fo+26)<>1) then begin

                        pf2^.fa:=pf2^.fa+1; tar:=false; end else tar:=true;

                        if pf2^.rf=4 then if (getpixel(pf2^.fa-1,pf2^.fo)<>1)and(getpixel(pf2^.fa-1,pf2^.fo+26)<>1) then begin

                        pf2^.fa:=pf2^.fa-1; tar:=false; end else tar:=true;

                        if pf2^.rf=2 then if (getpixel(pf2^.fa,pf2^.fo+27)<>1)and(getpixel(pf2^.fa+26,pf2^.fo+27)<>1) then begin

                        pf2^.fo:=pf2^.fo+1; tar:=false; end else tar:=true;

                        if pf2^.rf=8 then if (getpixel(pf2^.fa,pf2^.fo-1)<>1)and(getpixel(pf2^.fa+26,pf2^.fo-1)<>1) then begin

                        pf2^.fo:=pf2^.fo-1; tar:=false; end else tar:=true;

                    until tar=false; 

                    if (pf2^.fa=51)and(pf2^.fo=61) then

                    f1:=false;

                    if (pf2^.fa=555)and(pf2^.fo=61) then

                    f2:=false;

                    if (pf2^.fa=51)and(pf2^.fo=397) then

                    f3:=false;

                    if (pf2^.fa=555)and(pf2^.fo=397) then

                    f4:=false; 

                        if pf2^.fa>570 then begin pf2^.fa:=35; putimage(570,229,blank^,normalput); end;

                        if pf2^.fa<35 then begin pf2^.fa:=570; putimage(35,229,blank^,normalput); end; 

                    j:=1;

                        while (stock[j]<>0)and(j<24) do

                        j:=j+2; 

                        if (pf2^.rf=6)and((getpixel(pf2^.fa+27,pf2^.fo+12)=14)

                        or(getpixel(pf2^.fa+27,pf2^.fo+14)=14))and(odd(pf2^.fa))

                        then begin

                        stock[j]:=pf2^.fa+27;

                        stock[j+1]:=pf2^.fo+13;

                        end; 

                        if (pf2^.rf=4)and((getpixel(pf2^.fa-1,pf2^.fo+12)=14)or

                        (getpixel(pf2^.fa-1,pf2^.fo+14)=14))and(odd(pf2^.fa))

                        then begin

                        stock[j]:=pf2^.fa-2;

                        stock[j+1]:=pf2^.fo+13;

                        end; 

                        if (pf2^.rf=2)and((getpixel(pf2^.fa+14,pf2^.fo+27)=14)or

                        (getpixel(pf2^.fa+12,pf2^.fo+27)=14))and(odd(pf2^.fo))

                        then begin

                        stock[j]:=pf2^.fa+13;

                        stock[j+1]:=pf2^.fo+27;

                        end; 

                        if (pf2^.rf=8)and((getpixel(pf2^.fa+14,pf2^.fo-1)=14)

                        or(getpixel(pf2^.fa+12,pf2^.fo-1)=14))and(odd(pf2^.fo))

                        then begin

                        stock[j]:=pf2^.fa+13;

                        stock[j+1]:=pf2^.fo-1;

                        end; 

                        pf3:=pf;

                        t1:=pf3^.fa;

                        t2:=pf3^.fo;

                        pf3:=pf3^.nxt;

                        t3:=pf3^.fa;

                        t4:=pf3^.fo;

                        pf3:=pf3^.nxt;

                        t5:=pf3^.fa;

                        t6:=pf3^.fo;

                        pf3:=pf3^.nxt;

                        t7:=pf3^.fa;

                        t8:=pf3^.fo; 

                        for a:=1 to 6 do begin

                        j:=2*a-1;

                            if (stock[j]<>0)

                            and((t1>stock[j]+3)or(t1<stock[j]-32)

                            or(t2>stock[j+1]+3)or(t2<stock[j+1]-32))

                            and((t3>stock[j]+3)or(t3<stock[j]-32)

                            or(t4>stock[j+1]+3)or(t4<stock[j+1]-32))

                            and((t5>stock[j]+3)or(t5<stock[j]-32)

                            or(t6>stock[j+1]+3)or(t6<stock[j+1]-32))

                            and((t7>stock[j]+3)or(t7<stock[j]-32)

                            or(t8>stock[j+1]+3)or(t8<stock[j+1]-32))

                            then begin

                            putimage(stock[j],stock[j+1],fromage^,normalput);

                            stock[j]:=0;

                            end;

                        end; 

                        if (temps=0)and(pf2^.delais=0) then putimage (pf2^.fa,pf2^.fo,fantome^,normalput);

                        if (pf2^.delais=0)and(temps>0) then putimage (pf2^.fa,pf2^.fo,vdt^,normalput);

                        if pf2^.delais>0 then begin

                        putimage(pf2^.fa,pf2^.fo,repos^,normalput);

                        pf2^.delais:=pf2^.delais-1;

                        end; 

                        {Fantome bouff‚?}

                        if (getpixel(pf2^.fa+30,pf2^.fo+10)=6)or(getpixel(pf2^.fa-3,pf2^.fo+10)=6)

                        or(getpixel(pf2^.fa+15,pf2^.fo-3)=6)or(getpixel(pf2^.fa+15,pf2^.fo+30)=6) then begin

                            for j:=1 to 26 do begin

                            putimage(pf2^.fa,pf2^.fo+j,fade^,normalput);

                                if son=true then sound(j*100);

                            delay(d500);

                            end;

                        nosound;

                        setcolor(0);

                        str(points,s);

                        outtextxy(220,40,s);

                        points:=points+500;

                            if (points div 4000)<>((points-500) div 4000) then bonus:=true;

                        setcolor(3);

                        str(points,s);

                        outtextxy(220,40,s);

                        pf2^.fa:=350;

                        pf2^.fo:=250;

                        pf2^.delais:=(10-niveau)*100;

                        end; 

                        {bonus?}

                        if bonus=true then begin

                        bonus:=false;

                            if son=true then begin

                                for a:=1 to 4 do begin

                                sound(440*a);

                                delay(d500*2);

                                end;

                            nosound;

                            end;

                        setcolor(0);

                        str(vies,s);

                        outtextxy(105,40,s);

                        vies:=vies+1;

                        setcolor(3);

                        str(vies,s);

                        outtextxy(105,40,s);

                        end; 

                        {fin?}

                        if (getpixel(pf2^.fa+30,pf2^.fo+10)=9)or(getpixel(pf2^.fa-3,pf2^.fo+10)=9)

                        or(getpixel(pf2^.fa+15,pf2^.fo-3)=9)or(getpixel(pf2^.fa+15,pf2^.fo+30)=9) then begin

                        setcolor(0);

                        str(vies,s);

                        outtextxy(105,40,s);

                        vies:=vies-1;

                        setcolor(3);

                        str(vies,s);

                        outtextxy(105,40,s);

                        pf2:=pf^.nxt;

                            for j:=1 to 26 do begin

                            putimage(x,y+j,fade^,normalput);

                                if son=true then sound(3000-j*100);

                            delay(d500);

                            end;

                         nosound;

                         pf2:=pf;

                             repeat

                             putimage(pf2^.fa,pf2^.fo,blank^,normalput);

                             pf2:=pf2^.nxt;

                             until pf2=nil;

                         delay(d500*3);

                             if vies=0 then

                             perdu:=true;

                             if vies>0 then goto 1;

                        tar:=false;

                        end;

                pf2:=pf2^.nxt;

                until (pf2=nil)or(perdu=true);

            end; 

            {Passage secret}

            if x>570 then begin x:=35; putimage(570,229,blank^,normalput); end;

            if x<35 then begin x:=570; putimage(35,229,blank^,normalput); end;

        until (r='Q')or(perdu=true)or(repas>214); 

        if repas>214 then begin

Информация о работе Создание игровой программы "Pacman"