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

                                               getch();

                                               getch();

                                               getch();

                                               getch();

                                               return;


2.Åñëè ïðîèãðàë

case KONEC:

GotoXY(23,1); printf("Wu proigrali(xa-xa-xa!!!)\n\n\t\t\t");

                                      getch();

                                      return;

                                      break;

5.Èñõîäíûé òåêñò ïðîãðàììû Ñ++

Ðàçðàáîòêà ïðèëîæåíèÿ, ïðåäñòàâëÿþùåãî ñîáîé êîìïüþòåðíóþ èãðó «Çìåéêà».

#include <iostream> //ñòàíäàðòíàÿ áèáëèîòåêà

#include <time.h> //ñëó÷àéíûå ÷èñëà

#include <stdio.h> //äëÿ printf

#include <windows.h> // äëÿ HANDLE, êóðñîðà, öâåòà

#include <conio.h> //äëÿ kbhit

#include <math.h>

#include <io.h>

#include <iostream>

#include <fcntl.h>

#include <string.h>

#include "stdafx.h"

#include <math.h>  // Îïèñàíèÿ ìàòåìàòè÷åñêèõ ôóíêöèé

#include <stdlib.h> // Îïèñàíèÿ ôóíêöèé malloc è free

using namespace std;

HANDLE hConsole;

//HANDLE hStdout, hStdin;

HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);


void GotoXY(int X, int Y)

{

     COORD coord = { X, Y };

     SetConsoleCursorPosition(hStdOut, coord);

}

//Öâåò

enum ConsoleColor

{

      Pink  = 0,

     Blue  = 1,

     Green  = 2,

     Cyan  = 3,

     Red   = 4,

         Magenta  = 5,

         Brown  = 6,

         LightGray = 7,

         DarkGray  = 8,

         LightBlue = 9,

         LightGreen = 10,

         LightCyan = 11,

         LightRed  = 12,

         LightMagenta = 13,

         Yellow = 14,

         White  = 15

};


void SetColor(ConsoleColor text, ConsoleColor background)

text));

struct Zmeja // ñòðóêòóðà çìåéêà

{

COORD *t; //òî÷êè

int PCount; //êîëè÷åñòâî ÿáëîê

};

enum uprawlenie{LEFT,UP,RIGHT,DOWN}; //íàïðàâëåíèå çìåéêè


struct Game //äàíûå-òî÷íîñòè: çìåéêè, ÿáëîê, ïåðåäâèæåíèå ïî X è Y, çàäåðæêà, íàïðàâëåíèå

{

Zmeja gaduka; //çìåéêà

COORD jabloko; //ÿáëîêî

int dx,dy, //ïåðåäâèæåíèå

pause; //çàäåðæêà

int nap; //íàïðàâëåíèå

};


//Ôóíêöèÿ ðàçáðîñêè ÿáëîê

void PlusJabloko(Game &g)

{

     int i,x,y;

     int n = g.gaduka.PCount;

     do

     {

         x = rand() % 56+3; //

         y = rand() % 19+3; //êîðäèíàòû ÿáëîêà

         for(i = 0; i < n; i++)

         {

              if(x == g.gaduka.t[i].X && y == g.gaduka.t[i].Y) // ïðîâåðêà ÷òîá ÿáëîêî íå áðîñèòü íà çìåþ

                   break;

         }

     }

     while(i < n);

     g.jabloko.X = x; //

     g.jabloko.Y = y; //çàïîìèíàåì ïîçèöèþ ÿáëîêà

     SetConsoleCursorPosition(hConsole, g.jabloko); //ïåðåíîñèì êóðñîð â ýòó ïîçèöèþ

     SetConsoleTextAttribute(hConsole,0x0c); //öâåò ÿáëîêà

     printf("%c", 6); //ðèñóåì ÿáëîêî êàêèì õîòèì ñèìâîëîì

    

}

// Ôóíêöûÿ ñòàðòà çìåéêè åå êîîðäèíàò è ñêîðîñòè

void skorostGame(Game &g)

{

     system("cls");

     g.gaduka.PCount = 3; //ñêîëüêî òî÷åê â çìåéêè

     g.gaduka.t = new COORD [3];//ñîçäàëè òî÷êè

     for(int i = 0; i < 3; i++)

     {

         g.gaduka.t[i].X = 20 + i;

         g.gaduka.t[i].Y = 20;

        

     }

     g.dx = 1;

     g.dy = 0;

     g.pause = 100;//ñêîðîñòü ïåðåäâèæåíèå çìåè

     PlusJabloko(g);//ðèñóåì ÿáëîêà

}


void Level()

{

     GotoXY(10,10);cout <<"Wu nikogda ne wuigraete "<<endl;

     GotoXY(10,11);cout <<"eslu ne bydete bdutelnu!!!"<<endl;

}

void ZmejaStart()

{

     GotoXY(10,15);cout <<"Soberite 75 Jablok "<<endl;

}

void STENA_2()

{

     SetColor(LightBlue , Pink);GotoXY(20,0);cout << "Igra \"Zmejka\" Maiko Ekaterini" <<endl;

     GotoXY(64,2);cout << "Danue:" << endl ;

     GotoXY(64,3);cout << "Jablok:0" << endl ;

     GotoXY(64,4); cout << "Dlina:3"<< endl;

     GotoXY(64,5); cout << "Speed:0" << endl;

     GotoXY(64,7); cout << "Uprawlenie:" << endl;

     GotoXY(64,8); cout << "Esc:Wuxod" << endl;

     GotoXY(64,9); cout << "P:Pause" << endl;

     GotoXY(64,10); cout <<"S:Start" << endl;

     GotoXY(64,11); cout <<"L:Level" << endl;

     GotoXY(64,13);printf("%c",24);cout <<":Wwerx"<<endl;

     GotoXY(64,14);printf("%c",25);cout<<":Wniz"<<endl;

     GotoXY(64,15);printf("%c",27);cout<<":Wlewo"<<endl;

     GotoXY(64,16);printf("%c",26);cout<<":Wprawo"<<endl;

                   {

                   SetColor(LightMagenta , Pink);

                   GotoXY(2,2);

                   int m = 0;

                   for(m = 0; m < 60; m++)

                   {

                        printf("*");

                   }

                   }

                  

                   {

                        GotoXY(2,24);

                        int m = 0;

                        for(m = 0; m < 60;m++)

                        {

                            printf("*");

                        }

                   }

                   {   

                        GotoXY(2,3); cout << "*"<<endl;

                        GotoXY(2,4); cout << "*"<<endl;

                        GotoXY(2,5); cout << "*"<<endl;

                        GotoXY(2,6); cout << "*"<<endl;

                        GotoXY(2,7); cout << "*"<<endl;

                        GotoXY(2,8); cout << "*"<<endl;

                        GotoXY(2,9); cout << "*"<<endl;

                        GotoXY(2,10); cout << "*"<<endl;

                        GotoXY(2,11); cout << "*"<<endl;

                        GotoXY(2,12); cout << "*"<<endl;

                        GotoXY(2,13); cout << "*"<<endl;

                        GotoXY(2,14); cout << "*"<<endl;

                        GotoXY(2,15); cout << "*"<<endl;

                        GotoXY(2,16); cout << "*"<<endl;

                        GotoXY(2,17); cout << "*"<<endl;

                        GotoXY(2,18); cout << "*"<<endl;

                        GotoXY(2,19); cout << "*"<<endl;

                        GotoXY(2,20); cout << "*"<<endl;

                        GotoXY(2,21); cout << "*"<<endl;

                        GotoXY(2,22); cout << "*"<<endl;

                        GotoXY(2,23); cout << "*"<<endl;

                   }

                   {

                        GotoXY(61,3); cout << "*"<<endl;

                        GotoXY(61,4); cout << "*"<<endl;

                        GotoXY(61,5); cout << "*"<<endl;

                        GotoXY(61,6); cout << "*"<<endl;

                        GotoXY(61,7); cout << "*"<<endl;

                        GotoXY(61,8); cout << "*"<<endl;

                        GotoXY(61,9); cout << "*"<<endl;

                        GotoXY(61,10); cout << "*"<<endl;

                        GotoXY(61,11); cout << "*"<<endl;

                        GotoXY(61,12); cout << "*"<<endl;

                        GotoXY(61,13); cout << "*"<<endl;

                        GotoXY(61,14); cout << "*"<<endl;

                        GotoXY(61,15); cout << "*"<<endl;

                        GotoXY(61,16); cout << "*"<<endl;

                        GotoXY(61,17); cout << "*"<<endl;

                        GotoXY(61,18); cout << "*"<<endl;

                        GotoXY(61,19); cout << "*"<<endl;

                        GotoXY(61,20); cout << "*"<<endl;

                        GotoXY(61,21); cout << "*"<<endl;

                        GotoXY(61,22); cout << "*"<<endl;

                        GotoXY(61,23); cout << "*"<<endl;

                   }

}



//Ôóíêöèÿ êîòîðàÿ äâèãàåò è ðèñóåò

enum {KONEC, STENA, PLUS, MOVE};



int Move(Game &g)

{

     int & n = g.gaduka.PCount;

     COORD head = g.gaduka.t[n - 1]; //ãîëîâà

     COORD tail = g.gaduka.t[0]; //õâîñò

     COORD next;

     next.X = head.X + g.dx;

     next.Y = head.Y + g.dy; //ïðîâåðêà ñëåäóþùåé òî÷êè ïî íàïðàâëåíèþ

     if(next.X < 3 || next.Y < 3 || next.X > 60 || next.Y > 23)//íå óïåðëàñü ëè â ñòåíó?

        

        

         return STENA;

     if(n > 4)

     {

         for(int i = 0; i < n; i++)

              if(next.X == g.gaduka.t[i].X && next.Y == g.gaduka.t[i].Y) //íå íàåõàëè ëè íà ñåáÿ?

                   return KONEC;

     }

    

     if(next.X == g.jabloko.X && next.Y == g.jabloko.Y)

     {

         COORD*temp = new COORD[ ++n ]; //íîâûé ìàñèâ áîëüøèé íà 1

         for(int i = 0; i < n; i++)

              temp[i] = g.gaduka.t[i]; //ïåðåêîïèðóåì

         temp[n - 1] = next; //äîáàâëÿåì îäíó

         delete [] g.gaduka.t;

         g.gaduka.t = temp;

        

         SetConsoleCursorPosition(hConsole,head);

         SetConsoleTextAttribute(hConsole, 0x0a); //çàêðàøûâàåì ÿáëîêî êîòîðîå ñåëè

         printf("*");

         SetConsoleCursorPosition(hConsole,next);

         SetConsoleTextAttribute(hConsole,0x0a);

         printf("%c",1);

         PlusJabloko(g);

         return PLUS;

     }

    

     for(int i = 0; i < n - 1; i++)

         g.gaduka.t[i] = g.gaduka.t[i + 1];

     g.gaduka.t[n - 1] = next;

     SetConsoleCursorPosition(hConsole,tail);//çàêðàøèâàåì õâîñòèê

     printf(" ");

    

     SetConsoleCursorPosition(hConsole,head);

     SetConsoleTextAttribute(hConsole, 0x0a);//êðàñèì õâîñò çìåè â çåëåíèé öâåò

     printf("*");

     SetConsoleCursorPosition(hConsole,next);

     SetConsoleTextAttribute(hConsole,0x0f); //êðàñèì êóðñîð â áåëûé öâåò (ãîëîâó çìåè)

     printf("%c",1);

    

     return MOVE;

}




void main()

{


     hConsole = GetStdHandle(STD_OUTPUT_HANDLE); //ïîëó÷àåì äåñêðèïòîð êîíñîëè

     int key = 0, count = 0;

     bool Pause=false;

     Game g;

     skorostGame(g);

     STENA_2();

     srand(time(0));

     bool pause = false;

     while(key != 27)

     {

         while(!kbhit()) //æäåò ïîêà íàæìåì

         {

              if(Pause==true)

              {

                   Sleep(1);

                   continue;

              }

             

              switch (Move(g))//äâèæåíèå

              {

                  

              case PLUS:

                   ++count;

                   g.pause-=1;

                   GotoXY(64,2);cout << "Danue:" << endl ;

                   GotoXY(64,3); cout << "Jablok:" <<count << endl;

                   GotoXY(64,4); cout << "Dlina:" <<g.gaduka.PCount << endl;

                   GotoXY(64,5); cout << "Speed:" <<g.pause<< endl;

                   GotoXY(64,7); cout << "Uprawlenie:" << endl;

                   GotoXY(64,8); cout << "Esc:Wuxod" << endl;

                   GotoXY(64,9); cout << "P:Pause" << endl;

                   GotoXY(64,10); cout <<"S:Start" << endl;

                   GotoXY(64,11); cout <<"L:Level" << endl;

                   GotoXY(64,13);printf("%c",24);cout <<":Wwerx"<<endl;

                   GotoXY(64,14);printf("%c",25);cout<<":Wniz"<<endl;

                   GotoXY(64,15);printf("%c",27);cout<<":Wlewo"<<endl;

                   GotoXY(64,16);printf("%c",26);cout<<":Wprawo"<<endl;

                   if (count == 75)

                   {

                        GotoXY(15,1); cout << "Wu wuigrali(maladec!!!)" << endl;

                        GotoXY(15,6);printf( "\n\t\t\t" );

                        GotoXY(15,7);printf( "\n\t\t\t" );

                        getch();

                        getch();

                        getch();

                        getch();

                        getch();

                        return;

                   }

                   break;

                  

              case STENA:

                  

              case KONEC:

                   GotoXY(23,1); printf("Wu proigrali(xa-xa-xa!!!)\n\n\t\t\t");

                   getch();

                   return;

                   break;

              }

             

              Sleep(g.pause); //Çàäåðæêà

         }

         key = getch();

        

         if(key=='P'||key=='p')

              Pause=!Pause;

         else if(key=='S'||key=='s')

              ZmejaStart();

         else if(key=='L'||key=='l')

              Level();

         else if(key==0||key==224)

         {

              key=getch();

             

              if(key == 72 && g.nap != DOWN)

              {

                   g.nap = UP;

                   g.dx = 0;

                   g.dy = -1;

              }

              else if(key == 80 && g.nap != UP)

              {

                   g.nap = DOWN;

                   g.dx = 0;

                   g.dy = 1;

              }

              else if(key == 75 && g.nap != RIGHT)

              {

                   g.nap = LEFT;

                   g.dx = -1;

                   g.dy = 0;

              }

              else if(key == 77 && g.nap != LEFT)

              {

                   g.nap = RIGHT;

                   g.dx = 1;

                   g.dy = 0;

              }

         }

     }




}

5.Òåñòèðîâàíèå ïðîãðàììû.

Ïåðâîíà÷àëüíûé âèä èãðû ïðè çàïóñêå


Çìåéêà óäàðèëàñü îá îáúåêò ñòåíêó


Îáúåêò óäàðèëñÿ îá îáúåêò

Îêîí÷àíèå èãðû çìåéêà

7.Çàêëþ÷åíèå.


 êîäå çàäà÷è óêàçàíî ìàêñèìàëüíî äîïóñòèìîå êîëè÷åñòâî ÿáëîê, ïîýòîìó â èãðå ïðåäóñìîòðåíî äàííîå îãðàíè÷åíèå. Îãðàíè÷åíî êîëè÷åñòâî èãðîêîâ, îãðàíè÷åíî êîëè÷åñòâî ÿáëîê.

Ìîæíî äîáàâèòü îçâó÷èâàíèå ñîáûòèé èãðû, óðîâåíü ñëîæíîñòè èãðû è ðàçíûå íàñòðîéêè ïàðàìåòðîâ èãðû â êîäå ïðîãðàììû.Ýòî âûçâàëî áû áîëüøèé èíòåðåñ ê èãðå.

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

óêàçûâàåòñÿ â ìåíþ ñïðàâà.

 öåëîì ïðèëîæåíèå ïðåäñòàâëÿåò ñîáîé ïî÷òè ñàìûé ïðîñòîé âàðèàíò èãðû «Çìåéêà » ñ íàáîðîì ñàìûõ íåîáõîäèìûõ ôóíêöèé.

8.Ñïèñîê ëèòåðàòóðû.

1. Íà÷àëüíûé êóðñ Ñ è Ñ++.: Ó÷åáíèê. /Á. È. Áåðåçèí. Ìîñêâà:"ÄÈÀËÎÃ-ÌÈÔÈ",1999ã.
2. ßçûê ïðîãðàììèðîâàíèÿ Ñ++. : Ó÷åáíèê. /. Ñòðàóñòðóï. Êèåâ:"ÄèàÑîôò", 1993 ã.

3. Ââåäåíèå â ÿçûê Ñ++: Ó÷åáíèê. / Áüÿðí Ñòðàóñòðàï.

– ÑÏá.: 1995.

4. Ñòðóêòóðû è àëãîðèòìû îáðàáîòêè äàííûõ: Ó÷åáíèê. / Ìàòüÿø Â.À., Ïóòèëîâ Â.À., Ôèëü÷àêîâ Â.Â. , Ù¸êèí Ñ.Â. - Àïàòèòû, ÊÔ Ïåòð ÃÓ, 2000

5. Ñ++ /Äýâèñ Ñòåôàí Ð.,4-å èçäàíèå : Ïåð. ñ àíãë.:- Ì.: Èçäàòåëüñêèé äîì «Âèëüÿìñ»,2003

6. Îñíîâû ïðîãðàììèðîâàíèÿ: Ó÷åá. Äëÿ ñðåä. ïðîô. îáðàçîâàíèÿ /È.Ã.Ñåìàêèí, À.Ï.Øåñòàêîâ. – Ì., 2006.

7. Ñ++ ýêñïðåññ êóðñ: Ó÷åáíèê. /Ëàïòåâ Â.Â. – ÑÏá.: ÁÕÂ- Ïåòåðáóðã 2004.

8. Ñ++ ó÷åáíûé êóðñ: Ó÷åáíèê. /Ôðàíêà Ï. – ÑÏá.: Ïèòåð 2005.

9. ÌÎÄÅËÈ È CÒÐÓÊÒÓÐÛ ÄÀÍÍÛÕ:/ Ó÷åáíîå ïîñîáèå/
Ä.Äàëåêà, À.Ñ. Äåðåâÿíêî, Î.Ã.Êðàâåö, Ë.Å. Òèìàíîâñêàÿ -Õàðüêîâ: ÕÃÏÓ, 2000

10.Âûñøàÿ ìàòåìàòèêà äëÿ ýêîíîìèñòîâ: ó÷åáíèê äëÿ ñòóäåíòîâ âóçîâ/Í.Ø.Êðåìåð,3-å èçäàíèå.-Ì.:ÞÍÈÒÈ-ÄÀÍÀ,2006


9.Ïðèëîæåíèÿ.

Ïðèëîæåíèå 1

Èçìåíåíèå îáúåêòà ÿáëîêî

 


Èçìåíåíèå îáúåêòà çìåéêà

Ìåíþ íà ðóññêîì ÿçûêå

Ïðèëîæåíèå 2

Ê êóðñîâîé ðàáîòå ïðèëàãàåòñÿ äèñê 1.44 Ìá.



Ñòðàíèöû: 1, 2, 3



2012 © Âñå ïðàâà çàùèùåíû
Ïðè èñïîëüçîâàíèè ìàòåðèàëîâ àêòèâíàÿ ññûëêà íà èñòî÷íèê îáÿçàòåëüíà.