Áàçà çíàíèé ñòóäåíòà. Ðåôåðàò, êóðñîâàÿ, êîíòðîëüíàÿ, äèïëîì íà çàêàç

êóðñîâûå,êîíòðîëüíûå,äèïëîìû,ðåôåðàòû

Èãðà "Ìîçàéêà" íà Äåëôè (Delphi) — Èíôîðìàòèêà, ïðîãðàììèðîâàíèå

Ìèíèñòåðñòâî îáðàçîâàíèÿ è íàóêè Ðîññèéñêîé Ôåäåðàöèè

Êóðñêèé ãîñóäàðñòâåííûé òåõíè÷åñêèé óíèâåðñèòåò

Êàôåäðà ÏÎ è ÂÒ

ÊÓÐÑÎÂÀß ÐÀÁÎÒÀ

ïî äèñöèïëèíå «Ïðîãðàììèðîâàíèå íà ÿçûêàõ âûñîêîãî óðîâíÿ»

ÈÃÐÀ «ÌÎÇÀÉÊÀ»


Âûïîëíèë:                                                                      ñòóäåíòêà ãðóïïû ÏÎ-51

                                                                                         Åëèçàâåòà Êîðîëåâà

                                                                                       

                                                                                         ñòóäåíòêà ãðóïïû ÏÎ-51       

                                                                       Àíàñòàñèÿ Çèíîâüåâà

Ïðîâåðèë:                                                                       ïðåïîäàâàòåëü Ïåòðèê Å. À.

Êóðñê 2006

ÑÎÄÅÐÆÀÍÈÅ

1.        ÒÅÕÍÈ×ÅÑÊÎÅ ÇÀÄÀÍÈÅ. 4

1.1     Ââåäåíèå. 4

1.2     Îñíîâàíèÿ äëÿ ðàçðàáîòêè. 4

1.3     Íàçíà÷åíèå ðàçðàáîòêè. 4

1.3.1  Ôóíêöèîíàëüíîå è ýêñïëóàòàöèîííîå íàçíà÷åíèå èçäåëèÿ. 4

1.3.1.1    Ïåðå÷åíü òðåáîâàíèé ïîëüçîâàòåëÿ ê ïðîãðàììíîìó îáåñïå÷åíèþ.. 4

1.3.1.2    Ðàññìîòðåííûå àëüòåðíàòèâû.. 4

1.3.2  Òðåáîâàíèÿ ê ïðîãðàììå èëè ïðîãðàììíîìó èçäåëèþ.. 5

1.3.2.1    Ñòàíäàðòû.. 5

1.3.2.2    Ïðîãðàììíàÿ ñîâìåñòèìîñòü. 5

1.3.2.3    Òðåáîâàíèÿ ê ñîñòàâó è ïàðàìåòðàì òåõíè÷åñêèõ ñðåäñòâ. 5

1.3.2.4    Âõîäíûå äàííûå. 5

1.3.2.5    Ïðîöåññ îáðàáîòêè. 6

1.3.2.6    Âûõîäíûå äàííûå. 6

1.3.2.7    Ðåçóëüòèðóþùèå êîìïîíåíòû èçäåëèÿ. 6

1.3.2.8    Íîñèòåëè èíôîðìàöèè. 6

1.3.2.9    Áåçîïàñíîñòü è ñåêðåòíîñòü. 7

1.3.2.10   Òðåáîâàíèÿ ê íàäåæíîñòè. 7

1.3.2.11   Ðåñòàðò. 7

1.3.2.12   Ìîáèëüíîñòü. 7

1.3.2.13   Òðåáîâàíèÿ ê ïðîãðàììíîé äîêóìåíòàöèè. 7

1.4     Ñòàäèè è ýòàïû ðàçðàáîòêè. 7

1.5     Ïîðÿäîê êîíòðîëÿ è ïðèåìêè. 8

2.ÐÀÁÎ×ÈÉ ÏÐÎÅÊÒ. 8

2.1     Ââåäåíèå. 8

2.2     Ôóíêöèîíàëüíûå è ýêñïëóàòàöèîííûå õàðàêòåðèñòèêè èçäåëèÿ. 8

2.2.1  Ïðîãðàììíûå îãðàíè÷åíèÿ. 8

2.2.2  Òðåáîâàíèÿ ê ñîñòàâó è ïàðàìåòðàì òåõíè÷åñêèõ ñðåäñòâ. 9

2.2.3  Ðåçóëüòèðóþùèå êîìïîíåíòû èçäåëèÿ. 9

2.2.4  Òðåáîâàíèÿ ê íàäåæíîñòè. 9

2.2.5  Óäîáñòâî ýêñïëóàòàöèè. 9

2.2.6  Ìîáèëüíîñòü. 10

2.3     Îïèñàíèå ìîäóëåé. 10

2.3.1  Ìîäóëü Unit1. 10

2.3.1.1    Òàáëèöà êîìïîíåíòîâ. 10

2.3.1.2    Âíåøíèé âèä ôîðìû.. 10

2.3.1.2    Âõîäíûå äàííûå. 11

2.3.1.3    Ïðîìåæóòî÷íûå äàííûå. 11

2.3.1.4    Âûõîäíûå äàííûå. 11

2.3.1.5    Áëîê-ñõåìû àëãîðèòìîâ. 11

2.3.1.6    Òåêñò ìîäóëÿ. 11

2.3.2  Ìîäóëü Unit2. 12

2.3.2.1    Âõîäíûå äàííûå. 12

2.3.2.2    Ïðîìåæóòî÷íûå äàííûå. 12

2.3.2.3    Âûõîäíûå äàííûå. 12

2.3.2.4    Áëîê-ñõåìû àëãîðèòìîâ. 12

2.3.2.5    Òåêñò ìîäóëÿ. 12

ÏÐÈËÎÆÅÍÈß.. 13

ÑÏÈÑÎÊ ÈÑÏÎËÜÇÓÅÌÎÉ ËÈÒÅÐÀÒÓÐÛ.. 37


1.  ÒÅÕÍÈ×ÅÑÊÎÅ ÇÀÄÀÍÈÅ

1.1   Ââåäåíèå

Ðàçðàáîòêà ñîáñòâåííûõ ïðèëîæåíèé â íàñòîÿùåå âðåìÿ âûçûâàåò èíòåðåñ ó ìíîãèõ ëþäåé, ÷üè óìåíèÿ â ñôåðå ðàçðàáîòêè ïîçâîëÿþò îñóùåñòâèòü ïîñòàâëåííóþ çàäà÷ó. ß ðåøèë íàïèñàòü èãðîâîå ïðèëîæåíèå, ãëàâíàÿ çàäà÷à êîòîðîãî çàñòàâèòü ïîëüçîâàòåëÿ îòâëå÷üñÿ îò ïðîáëåì ïîâñåäíåâíûõ, ò.å. ðàçâëå÷üñÿ, ÷òî, ñîáñòâåííî, ÿâëÿåòñÿ çàäà÷åé âñåõ èãð.

1.2   Îñíîâàíèÿ äëÿ ðàçðàáîòêè

         Îñíîâàíèåì äëÿ ðàçðàáîòêè ïðîãðàììû ÿâëÿåòñÿ çàäàíèå ê êóðñîâîé ðàáîòå ïî ïðåäìåòó «Ïðîãðàììèðîâàíèå íà ÿçûêàõ âûñîêîãî óðîâíÿ».

1.3   Íàçíà÷åíèå ðàçðàáîòêè

1.3.1   Ôóíêöèîíàëüíîå è ýêñïëóàòàöèîííîå íàçíà÷åíèå èçäåëèÿ

1.3.1.1     Ïåðå÷åíü òðåáîâàíèé ïîëüçîâàòåëÿ ê ïðîãðàììíîìó îáåñïå÷åíèþ

Èãðà «Ìàçàéêà» äîëæíà îáåñïå÷èâàòü ñëåäóþùåå:

-  åñëè êàðòèíêà ñîáðàíà ïîëíîñòüþ, âûâîäèòñÿ ñîîáùåíèå î çàâåðøåíèè èãðû;

- èìååòñÿ âîçìîæíîñòü âûáèðàòü êàðòèíêè;

- ìîæíî íà÷èíàòü èãðó çàíîâî.

1.3.1.2     Ðàññìîòðåííûå àëüòåðíàòèâû

         Ïðè ïîñòàíîâêå çàäà÷è íà ðàçðàáîòêó ïðîãðàììû «Ìàçàéêà» áûëè ðàññìîòðåíû ñëåäóþùèå àëüòåðíàòèâû:

         - Ïðîãðàììíàÿ ïëàòôîðìà.

         Ðàññìàòðèâàëèñü îïåðàöèîííûå ñèñòåìû Windows è Linux. Áûëà âûáðàíà ñèñòåìà Windows â ñâÿçè ñ øèðî÷àéøèì åå ðàñïðîñòðàíåíèåì, äîñòóïíîñòüþ è íàëè÷èåì ãèáêèõ ñðåäñòâ ðàçðàáîòêè ïðîãðàììíîãî îáåñïå÷åíèÿ ïîä ýòó ïëàòôîðìó.

         - Ñðåäñòâà ðàçðàáîòêè. Áûëè ðàññìîòðåíû ñëåäóþùèå ñðåäñòâà ðàçðàáîòêè: Delphi è Ñ++ Builder. Áûë âûáðàí Borland Delphi7. Âûáîð îáîñíîâàí ïîïóëÿðíîñòüþ è äîñòóïíîñòüþ äàííîãî ïðîãðàììíîãî îáåñïå÷åíèÿ.

1.3.2   Òðåáîâàíèÿ ê ïðîãðàììå èëè ïðîãðàììíîìó èçäåëèþ

1.3.2.1     Ñòàíäàðòû

         Ðàçðàáîòêà ïðîãðàììíîé äîêóìåíòàöèè è ïðîãðàììû äîëæíà ïðîèçâîäèòüñÿ ñîãëàñíî ÅÑÏÄ, ÃÎÑÒ 19.701-90, ÃÎÑÒ 2.304-88.

1.3.2.2     Ïðîãðàììíàÿ ñîâìåñòèìîñòü

Äàííàÿ ïðîãðàììà äîëæíà ðàáîòàòü àâòîíîìíî ïîä óïðàâëåíèåì

îïåðàöèîííûõ ñèñòåì  Windows 98, Windows ME,  Windows 2000, Windows XP.

1.3.2.3     Òðåáîâàíèÿ ê ñîñòàâó è ïàðàìåòðàì òåõíè÷åñêèõ ñðåäñòâ

Ïðîãðàììíûé ïðîäóêò äîëæåí ðàáîòàòü íà êîìïüþòåðàõ ñî ñëåäóþùèìè õàðàêòåðèñòèêàìè:

·     îáúåì ÎÇÓ 512 Ìá;

·     îáúåì æåñòêîãî äèñêà  40 Ãá;

·     ìèêðîïðîöåññîð Intel Celeron 400 ÌÃö; 

·     ìîíèòîð 17” ñ ðàçðåøåíèåì 1024*768;

·     çâóêîâàÿ êàðòà.

1.3.2.4     Âõîäíûå äàííûå

Âõîäíûìè äàííûìè ïðîãðàììû ÿâëÿþòñÿ:

·     âûáðàííàÿ êàðòèíêà;

·     ñèãíàëû ìàíèïóëÿòîðà «ìûøü»;

1.3.2.5     Ïðîöåññ îáðàáîòêè

·     Ïðè çàïóñêå ïðîãðàììíîãî èçäåëèÿ äîëæíî ïðîèñõîäèòü îòêðûòèå ïðîãðàììíîé îáîëî÷êè (ôîðìû).

1.3.2.6     Âûõîäíûå äàííûå

Âûõîäíûìè äàííûìè ïðîãðàììû ÿâëÿþòñÿ:

·     ñîîáùåíèå î âûèãðûøå, åñëè êàðòèíêà ñîáðàíà.

1.3.2.7     Ðåçóëüòèðóþùèå êîìïîíåíòû èçäåëèÿ

 êîìïëåêò ïîñòàâêè ïðîãðàììíîãî ïðîäóêòà äîëæíû âõîäèòü ñëåäóþùèå

êîìïîíåíòû:

·     èñïîëíèòåëüíûé ôàéë ïðîãðàììû;

·     ðàáî÷èå ìîäóëè ïðîãðàììû;

·     ïðîãðàììíàÿ äîêóìåíòàöèÿ íà èçäåëèå.

1.3.2.8     Íîñèòåëè èíôîðìàöèè

Ïðîãðàììà ïîñòàâëÿåòñÿ íà äèñêåòå ðàçìåðîì 3,5 äþéìà è îáúåìîì 1,44 Ìá.

1.3.2.9     Áåçîïàñíîñòü è ñåêðåòíîñòü

Èíôîðìàöèÿ, ñîäåðæàùàÿñÿ â èçäåëèè, íå ÿâëÿåòñÿ ñåêðåòíîé, ïîýòîìó ïðîãðàììà íå òðåáóåò çàùèòû.                  

1.3.2.10   Òðåáîâàíèÿ ê íàäåæíîñòè

Ïðîãðàììà äîëæíà ïðîéòè ôóíêöèîíàëüíîå òåñòèðîâàíèå è óñïåøíî îòðàáîòàòü íà âñåõ òåñòàõ. Òåñòû ðàçðàáàòûâàþòñÿ íà ýòàïå âûïîëíåíèÿ ðàáî÷åãî ïðîåêòà.

1.3.2.11   Ðåñòàðò

Âîññòàíîâëåíèÿ äàííûõ ïðè ïðîãðàììíîì èëè àïïàðàòíîì ñáîÿõ íå

ïðåäóñìàòðèâàåòñÿ.

1.3.2.12   Ìîáèëüíîñòü

Ïðîãðàììà äîëæíà ñâîáîäíî ïåðåíîñèòüñÿ ñ îäíîãî êîìïüþòåðà íà äðóãîé ïðè ïîìîùè ñîîòâåòñòâóþùèõ íîñèòåëåé èíôîðìàöèè.

1.3.2.13   Òðåáîâàíèÿ ê ïðîãðàììíîé äîêóìåíòàöèè

Ïðîãðàììíàÿ äîêóìåíòàöèÿ äîëæíà ðàçðàáàòûâàòüñÿ ñîãëàñíî ÅÑÏÄ, ÃÎÑÒ 19.701-90, ÃÎÑÒ 2.304-88.

Ïðîãðàììíàÿ äîêóìåíòàöèÿ äîëæíà âêëþ÷àòü ñëåäóþùèå äîêóìåíòû:

·     Òåõíè÷åñêîå çàäàíèå;

·     Ðàáî÷èé ïðîåêò.

 ïðèëîæåíèè ê äîêóìåíòó «Ðàáî÷èé ïðîåêò» äîëæåí áûòü ïðèâåäåí ëèñòèíã èñõîäíûõ òåêñòîâ ïðîãðàììû è áëîê-ñõåìû àëãîðèòìîâ.

1.4       Ñòàäèè è ýòàïû ðàçðàáîòêè

Âûïîëíåíèå ðàçðàáîòêè äîëæíî âêëþ÷àòü äâå ñòàäèè:

·     Òåõíè÷åñêîå çàäàíèå;

·     Ðàáî÷èé ïðîåêò.

Íà ñòàäèè «Òåõíè÷åñêîå çàäàíèå» ïðîâîäèòñÿ ïîñòàíîâêà çàäà÷è, ðàçðàáîòêà òðåáîâàíèé ê ïðîãðàììíîìó èçäåëèþ, èçó÷åíèå ëèòåðàòóðû ïî çàäà÷å è îôîðìëåíèå äîêóìåíòà «Òåõíè÷åñêîå çàäàíèå».

Íà ñòàäèè «Ðàáî÷èé ïðîåêò» ïðîâîäèòñÿ ðàçðàáîòêà ñõåì àëãîðèòìîâ äëÿ êàæäîãî èç ôóíêöèîíàëüíûõ ìîäóëåé, ôèçè÷åñêîå ïðîåêòèðîâàíèå ïðîãðàììíîãî èçäåëèÿ, ðàçðàáîòêà òåñòîâ, òåñòèðîâàíèå è îòëàäêà ïðîãðàììíûõ ìîäóëåé.  çàêëþ÷åíèå äàííîãî ýòàïà îôîðìëÿåòñÿ äîêóìåíò «Ðàáî÷èé ïðîåêò».

1.5       Ïîðÿäîê êîíòðîëÿ è ïðèåìêè

Òåñòû äîëæíû áûòü ðàçðàáîòàíû íà ýòàïå ðàáî÷åãî ïðîåêòèðîâàíèÿ ïðîãðàììíîãî èçäåëèÿ.

Ïðèåìêà ïðîãðàììíîãî èçäåëèÿ îñóùåñòâëÿåòñÿ ïðè ñäà÷å äîêóìåíòàëüíî îôîðìëåííûõ ýòàïîâ ðàçðàáîòêè, ïåðåäà÷å ïðîãðàììíîãî èçäåëèÿ è ïðîâåäåíèè èñïûòàíèé íà îñíîâå óñòàíîâëåííûõ òåñòîâ.

2.ÐÀÁÎ×ÈÉ ÏÐÎÅÊÒ

2.1       Ââåäåíèå

Ïðèëîæåíèå ïðåäñòàâëÿåò ñîáîé èãðó «Ìàçàéêà», äëÿ êîòîðîé íå òðåáóåòñÿ îñîáîå îôîðìëåíèå â ñâÿçè ñ òåì, ÷òî ðàáî÷åå ïîëå ïîëíîñòüþ çàêðûâàåòñÿ çàãðóæåííîé êàðòèíêîé. Èãðà çàòÿãèâàåò ïîëüçîâàòåëÿ, ïðåæäå âñåãî ïîïóëÿðíîñòüþ áëèçêîé èãðû «Ïÿòíàøêè», êîòîðàÿ íå òàê äàâíî áûëà î÷åíü ïîïóëÿðíà. 

2.2       Ôóíêöèîíàëüíûå è ýêñïëóàòàöèîííûå õàðàêòåðèñòèêè èçäåëèÿ

2.2.1   Ïðîãðàììíûå îãðàíè÷åíèÿ

         Äàííàÿ ïðîãðàììà äîëæíà ðàáîòàòü àâòîíîìíî ïîä óïðàâëåíèåì îïåðàöèîííûõ ñèñòåì Windows 95, Windows 98, Windows ME, NT 4.0, Windows 2000, Windows XP.

2.2.2   Òðåáîâàíèÿ ê ñîñòàâó è ïàðàìåòðàì òåõíè÷åñêèõ ñðåäñòâ

         Äëÿ ðàáîòû ïðîãðàììíîãî èçäåëèÿ òðåáóåòñÿ ïåðñîíàëüíûé êîìïüþòåð, îáëàäàþùèé ñëåäóþùèìè ïàðàìåòðàìè:

·     îáúåì ÎÇÓ íå ìåíåå 32 Ìá;

·     îáúåì æåñòêîãî äèñêà íå ìåíåå 900 Ìá;

·     ìèêðîïðîöåññîð ñ òàêòîâîé ÷àñòîòîé íå ìåíåå 133 ÌÃö;

·     ìîíèòîð ñ ãëóáèíîé öâåòà 16 áèò;

·     äèñêîâîä floppy-äèñêîâ.

Äëÿ áåñïåðåáîéíîé ðàáîòû ïðîãðàììû ðåêîìåíäóåì ñëåäóþùèå ïàðàìåòðû êîìïüþòåðà:

·     îáúåì ÎÇÓ 128 Ìá;

·     îáúåì æåñòêîãî äèñêà 3 Ãá;

·     ìèêðîïðîöåññîð ñ òàêòîâîé ÷àñòîòîé 333 ÌÃö.

2.2.3   Ðåçóëüòèðóþùèå êîìïîíåíòû èçäåëèÿ

·     èñïîëíèòåëüíûé ôàéë ïðîãðàììû Mazaika.exe;

·     ðàáî÷èå ìîäóëè ïðîãðàììû;

·     ïðîãðàììíàÿ äîêóìåíòàöèÿ íà èçäåëèå.

2.2.4   Òðåáîâàíèÿ ê íàäåæíîñòè

Ïðîãðàììà ïðîøëà ôóíêöèîíàëüíîå òåñòèðîâàíèå è óñïåøíî îòðàáîòàëà íà âñåõ òåñòàõ. Òåñòû ðàçðàáàòûâàëèñü íà âñåõ ýòàïàõ âûïîëíåíèÿ ïðîåêòà.

2.2.5   Óäîáñòâî ýêñïëóàòàöèè

Ïðîãðàììà ñîäåðæèò èíòóèòèâíûé èíòåðôåéñ, ïîçâîëÿþùèé áåç äîïîëíèòåëüíûõ ïîäñêàçîê çàïóñòèòü èãðó.

2.2.6   Ìîáèëüíîñòü

Äëÿ êîïèðîâàíèÿ ïðîãðàììû ñ äèñêåòû íà êîìïüþòåð íåîáõîäèìî ñêîïèðîâàòü ñîäåðæèìîå ïàïêè «Êóðñîâèê» íà æåñòêèé äèñê êîìïüþòåðà.

2.3  Îïèñàíèå ìîäóëåé

2.3.1   Ìîäóëü Unit1

2.3.1.1     Òàáëèöà êîìïîíåíòîâ

¹ Íàçâàíèå Ñòðàíèöà ïàëèòðû êîìïîíåíòîâ Èçìåíÿåìûå ñâîéñòâà Çíà÷åíèå
1 Form1 - Caption Ìàçàéêà
AutoSize false
2 MainMenu1 Standard Items

Ôàéë

     Îòêðûòü

     Íîâàÿ èãðà

     Âûõîä

Î ïðîãðàììå

3 OpenPictureDialog1 Dialogs

2.3.1.2     Âíåøíèé âèä ôîðìû

2.3.1.2     Âõîäíûå äàííûå

         ïîëîæåíèå ôèøåê;

2.3.1.3     Ïðîìåæóòî÷íûå äàííûå

         ïðîâåðêà íà íàëè÷èå «ñîáðàííîñòè» ìîçàéêè;

2.3.1.4     Âûõîäíûå äàííûå

ðåçóëüòàò èãðû.

2.3.1.5     Áëîê-ñõåìû àëãîðèòìîâ

         Ïðèëîæåíèå À, ñòð. 13

2.3.1.6     Òåêñò ìîäóëÿ

Ïðèëîæåíèå Á, ñòð. 25

 

ÏÐÈËÎÆÅÍÈß

Ïðèëîæåíèå À






Ïðèëîæåíèå Á

Ëèñòèíã ìîäóëÿ Unit1

unit Unit1;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes,

  Graphics, Controls, Forms, Dialogs, ExtDlgs, Menus;

type

  TForm1 = class(TForm)

    MainMenu1: TMainMenu;

    N2: TMenuItem;

    N3: TMenuItem;

    N4: TMenuItem;

    C1: TMenuItem;

    N5: TMenuItem;

    OpenPictureDialog1: TOpenPictureDialog;

    procedure FormCreate(Sender: TObject);

    procedure FormMouseDown(Sender: TObject; Button: TMouseButton;

      Shift: TShiftState; X, Y: Integer);

    procedure FormPaint(Sender: TObject);

    procedure Load;

    procedure Refresh;

    procedure New;

    procedure N3Click(Sender: TObject);

    procedure N2Click(Sender: TObject);

    procedure C1Click(Sender: TObject);

    procedure N5Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form1: TForm1;

implementation

{$R *.dfm}

const

H=4;

W=4;   // ðàçìåð ïîëÿ 4*4 êëåòêè

var

widt,heig:integer; // øèðèíà è âûñîòà îäíîé êëåòêè

pole:array[1..H,1..W] of byte;   // ñâîéñòâà ïîëÿ

zx,zy:integer; // êîîðäèíàòû ïóñòîé êëåòêè

pos:array[1..H, 1..W] of byte =(( 1, 2, 3, 4),( 5, 6, 7, 8),( 9,10,11,12),(13,14,15, 0));         // âûèãðûøíûé âàðèàíò

pic:TBitmap;   // ñàìà êàðòèíêà

procedure TForm1.New;

var

f: string[20]; // ôàéë çàãðóæàåìîé êàðòèíêè

i,j: integer;

begin

 f:='picture10.bmp';

  try

  pic.LoadFromFile(f);

   except

    on EFopenError do

     begin

      ShowMessage('Îøèáêà çàãðóçêè ôàéëà');

      Form1.Close;

     end;

   end;

    heig:=Pic.Height div H;         // Ðàçìåð êëåòêè

    widt:=Pic.Width div W;

    ClientWidth:=widt*W;     //Ðàçìåð ôîðìû ïî ðàçìåðó êàðòèíêè

    ClientHeight:=heig*H;

     for i:=1 to H do

      for j:=1 to W do

      pole[i,j]:=pos[i,j];

      Form1.Refresh;    // ïåðåìåùåíèå êëåòîê

      Form1.Load; // çàãðóçêà ïîëÿ

end;

// ïðîâåðêà íà ôàêò âûèãðûøà

function GameOver: boolean;

var

rw,cl:integer;

i:integer;

begin

 rw:=1;

 cl:=1;

 GameOver:=True; // êëåòè ðàññòàâëåíû ïðàâèëüíî

  for i:=1 to 15 do

   begin

    if pole[rw,cl]<>i then

     begin

      GameOver:=False;

      break;

     end;

      if cl<4

      then inc(cl)

      else begin

       cl:=1;

       inc(rw);

      end;

   end;

end;

// õîä â ñîñåäíþþ ïóñòóþ êëåòêó

procedure Go(clickx,clicky:integer);

var

r:integer;

begin

 if not ((abs(clickx-zx)=1) and (clicky-zy=0) or  // ïðîâåðêà íà âîçìîæíîñòü õîäà

 (abs(clicky-zy)=1) and (clickx-zx=0))

 then exit;

  pole[zy,zx]:=Pole[clicky,clickx];     // îñóùåñòâèì ïåðåõîä èç [x,y] â [zx,zy]

  pole[clicky,clickx]:=0;

  zx:=clickx;

  zy:=clicky;

  Form1.Load;             // ïåðåðèñîâêà ïîëÿ

   if GameOver then

    begin

     pole[4,4]:=16;

     Form1.Load;

     r:=MessageDlg('Âû âûèãðàëè!'+ #13+'Ñûãðàåì åù¸?',mtInformation,[mbYes,mbNo],0);

      if r=mrNo then Form1.Close;

       Form1.New;

    end;

end;

// êëèê ïî êëåòêå

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;

  Shift: TShiftState; X,Y:Integer);

var

clickx,clicky:integer; // êîîðäèíàòû êëèêàåìîé êëåòêè

begin

 clickx:=Trunc(X/widt)+1;       // ïåðåâåä¸ì ùåë÷îê ìûøè â êîîðäèíàòû êëåòêè

 clicky:=Trunc(Y/heig)+1;

 Go(clickx,clicky);

end;

procedure TForm1.Load;         // îòâå÷àåò çà çàãðóçêó ïîëÿ

var

into,outof:Trect; // ââîä è âûâîä

lx,ly:integer;      // êîîðäèíàòû âåðõíåãî ëåâîãî óãëà ââîäà

i,j:integer;

begin

 for i:=1 to W do            // îòñëåæèâàåò ñîäåðæèìîå êëåòîê

  for j:=1 to H do

   begin

    ly:=((pole[i,j]-1) div W) * heig;          // ïðèñâîèì êîîðäèíàòàì âåðõíåãî ëåâîãî óãëà ââîäà íîìåð êàðòèíêè

    lx:=((pole[i,j]-1) mod W) * widt;

    into:=Bounds(lx,ly,widt,heig);

    outof:=Bounds((j-1)*widt,(i-1)*heig,widt,heig);

     if pole[i,j]<>0

     then Canvas.CopyRect(outof,pic.Canvas,into)

     else Canvas.Rectangle((j-1)*widt,(i-1)*heig,j*widt,i*heig);

   end;

end;

procedure TForm1.refresh;          // "òóñóåò" ôðàãìåíòû êàðòèíêè

var

x1,y1:integer;             // êîîðäèíàòû ïóñòîé êëåòêè

x2,y2:integer;             // âçÿòü êàðòèíêó èç ýòîé êîîðäèíàòû è ïîìåíÿòü å¸ ñ ïóñòîé

n:integer;                 // íàïðàâëåíèå âîçìîæíîãî õîäà

i:integer;

begin

 x1:=4;

 y1:=4;

 randomize;

  for i:=1 to 150 do       // âàðèàíòû ðàññòàíîâêè

   begin

    repeat

     x2:=x1;

     y2:=y1;

     n:=random(4)+1;

      case n of

       1:dec(x2);

       2:inc(x2);

       3:dec(y2);

       4:inc(y2);

   end;

    until (x2>=1) and (x2<=4) and (y2>=1) and (y2<=4);

     pole[y1,x1]:=pole[y2,x2];    // îïðåäåëèì ôðàãìåíò ïåðåìåùåíèÿ

     pole[y2,x2]:=0;

     x1:=x2;

     y1:=y2;

    end;

     zx:=x1;        // êîîðäèíàòû ïóñòîé êëåòêè

     zy:=y1;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

pic:=TBitMap.Create;

New;

end;

procedure TForm1.FormPaint(Sender: TObject);

begin

Form1.Load;

end;

procedure TForm1.N3Click(Sender: TObject);

begin

close;

end;

procedure TForm1.N2Click(Sender: TObject);

var i,j: integer;

begin

    heig:=Pic.Height div H;         // Ðàçìåð êëåòêè

    widt:=Pic.Width div W;

    ClientWidth:=widt*W;     //Ðàçìåð ôîðìû ïî ðàçìåðó êàðòèíêè

    ClientHeight:=heig*H;

     for i:=1 to H do

      for j:=1 to W do

      pole[i,j]:=pos[i,j];

      Form1.Refresh;    // ïåðåìåùåíèå êëåòîê

      Form1.Load; // çàãðóçêà ïîëÿ

end;

procedure TForm1.C1Click(Sender: TObject);

begin

showmessage('Ïðîãðàììà ê êóðñîâîìó ïðîåêòó');

end;

procedure TForm1.N5Click(Sender: TObject);

var

f: string[20]; // ôàéë çàãðóæàåìîé êàðòèíêè

i,j: integer;

begin

 openpicturedialog1.Execute;

  try

  pic.LoadFromFile(openpicturedialog1.FileName);

   except

    on EFopenError do

     begin

      ShowMessage('Îøèáêà çàãðóçêè ôàéëà');

      Form1.Close;

     end;

   end;

    heig:=Pic.Height div H;         // Ðàçìåð êëåòêè

    widt:=Pic.Width div W;

    ClientWidth:=widt*W;     //Ðàçìåð ôîðìû ïî ðàçìåðó êàðòèíêè

    ClientHeight:=heig*H;

     for i:=1 to H do

      for j:=1 to W do

      pole[i,j]:=pos[i,j];

      Form1.Refresh;    // ïåðåìåùåíèå êëåòîê

      Form1.Load; // çàãðóçêà ïîëÿ

end;

end.

Ìèíèñòåðñòâî îáðàçîâàíèÿ è íàóêè Ðîññèéñêîé Ôåäåðàöèè Êóðñêèé ãîñóäàðñòâåííûé òåõíè÷åñêèé óíèâåðñèòåò Êàôåäðà ÏÎ è ÂÒ ÊÓÐÑÎÂÀß ÐÀÁÎÒÀ ïî äèñöèïëèíå «Ïðîãðàììèðîâàíèå íà ÿçûêàõ

 

 

 

Âíèìàíèå! Ïðåäñòàâëåííûé Ðåôåðàò íàõîäèòñÿ â îòêðûòîì äîñòóïå â ñåòè Èíòåðíåò, è óæå íåîäíîêðàòíî ñäàâàëñÿ, âîçìîæíî, äàæå â òâîåì ó÷åáíîì çàâåäåíèè.
Ñîâåòóåì íå ðèñêîâàòü. Óçíàé, ñêîëüêî ñòîèò àáñîëþòíî óíèêàëüíûé Ðåôåðàò ïî òâîåé òåìå:

Íîâîñòè îáðàçîâàíèÿ è íàóêè

Çàêàçàòü óíèêàëüíóþ ðàáîòó

Ïîõîæèå ðàáîòû:

Èãðîâàÿ è âèðòóàëüíàÿ ãðàôèêà
Èãðîâûå òåõíîëîãèè â ñèñòåìå îáðàçîâàíèÿ ñòóäåíòà
Èçêóñòâåí èíòåëåêò è êîìïþòúðíà àðõèòåêòóðà
Èçó÷åíèå èíôîðìàöèè êàê îáúåêòà êîììåð÷åñêîé äåÿòåëüíîñòè
Èçó÷åíèå êðèïòîãðàôè÷åñêèõ ìåòîäîâ ïîäñòàíîâêè (çàìåíû)
Èìèòàöèîííûå ìîäåëè
Èííîâàöèîííûé ïðîåêò òðóäîóñòðîéñòâà
Èíñòðóìåíòàëüíûå ñðåäñòâà êîìïüþòåðíûõ òåõíîëîãèé èíôîðìàöèîííîãî îáñëóæèâàíèÿ óïðàâëåí÷åñêîé äåÿòåëüíîñòè
Èíñòðóìåíòû ñâîáîäíîãî ðèñîâàíèÿ â CorelDraw
Èíòåãðàöèÿ ÑÝÄ íà îñíîâå òèïîâûõ ïîäñèñòåì

Ñâîè ñäàííûå ñòóäåí÷åñêèå ðàáîòû

ïðèñûëàéòå íàì íà e-mail

Client@Stud-Baza.ru