Разработка программного обеспечения для компьютерной игры "Морской Бой"

Автор: Пользователь скрыл имя, 12 Января 2012 в 22:27, курсовая работа

Краткое описание

Данная программа представляет собой полностью оеализованную компьютерную игру «Морской бой» в режиме компьютер-игрок. Правила игры простые, интерфейс интуитивно понятен. Игра прекрасно подходит для хорошего время провождения, развивает различный умственные качества. Достоинтсва программы заключаются в том что имеется два режима расстоновки кораблей для пользователя – «ручной» и автоматический. Так же компьютер обладает собственным интеллектом, так что игра покажется пользователю интересной и увлекательной.

Оглавление

Введение 4
1 Постановка задачи 5
2 Решение задачи 6
3 Описание программного обеспечения 7
3.1 Программная реализация 7
3.2 Общие сведения 7
3.2.1 Список файлов 7
3.2.2 Технические требования 7
3.3Алгоритм 7
3.4 Состав программы 8
Заключение 10
Список используемых источников 11

Файлы: 1 файл

Отчёт (2).doc

— 238.50 Кб (Скачать)

                               }

                          

                               break;

                   }

                 }}

         else {switch(code) {

                         case 13:{

                                int pr=f=0;

                                  

                                for (e=x-2;e<=x+2;e=e+2)

                                     for (int a=y-2;a<=y+2;a=a+2)

                                {i=(e-40)/2;

                                j=a/2;

                                if (i<10&&j<10)if (mypole[i][j]==1)

                                pr=1; }

                                if (pr==0)

                               for (e=x;e<x+2;e=e+2)

                                     

                                {i=(e-40)/2;

                                j=y/2;

                                    mypole[i][j]=1;f=1;}

                                 break;

                                     }

                                      case 27: {f=1;ui=1;break;} 

            break;} 

         } 

            }while(f!=1);

        

      } 

                   

break;

  } 

break; }

   }

  

   return ui;

} 

int menu()

{  int f=1,k;

    SetColor(0,0);

    system("cls");

      GotoXY(30,10); SetColor(15,0);printf (Rus("Aeaaiia iai?"));

      GotoXY(30,12);SetColor(15,0);printf ("[");SetColor(0,2); printf (Rus("iiaay ea?a"));SetColor(15,0);printf ("]");

      GotoXY(32,13);SetColor(15,0);printf ("["); printf (Rus("auoia"));SetColor(15,0);printf ("]");

      do {k=0;

      int code =getch();

    if (code == 224)

      {

        code = getch();

            switch(code)

            {

            case 80: {f=f*(-1);

                           if (f==1){GotoXY(30,12);SetColor(15,0);printf ("[");SetColor(0,2); printf (Rus("iiaay ea?a"));SetColor(15,0);printf ("]");

                                         GotoXY(32,13);SetColor(15,0); printf (Rus("[auoia]"));}

                               else{ GotoXY(30,12);SetColor(15,0);printf ("["); printf (Rus("iiaay ea?a"));printf ("]");

                                     GotoXY(32,13);SetColor(15,0);printf ("[");SetColor(0,2);printf (Rus("auoia"));SetColor(15,0);printf ("]");}

                               break;}

                         

            case 72: {f=f*(-1);

                           if (f==1){GotoXY(30,12);SetColor(15,0);printf ("[");SetColor(0,2); printf (Rus("iiaay ea?a"));SetColor(15,0);printf ("]");

                                 GotoXY(32,13);SetColor(15,0); printf (Rus("[auoia]"));}

                               else{ GotoXY(30,12);SetColor(15,0);printf ("["); printf (Rus("iiaay ea?a"));printf ("]");

                                     GotoXY(32,13);SetColor(15,0);printf ("[");SetColor(0,2);printf (Rus("auoia"));SetColor(15,0);printf ("]");}

                               break;}

                         

            }

      } 

      else {switch(code)

      {

            case 13: k=1; break;

      } 

       

    } while (k==0);

   return f;

} 

int comp(int mypole[10][10], int udar , int ud[2], int hod[1])

{

 

      int i,j,f,per,n,m,x,y,k,str,sto,h,g;

      int pri,prj; 
 

      srand(time(NULL));GotoXY(24,14); SetColor(15,0);printf (Rus("  Oiaeo eiii "));

      do {f=1;per=0; k=0;GotoXY(28,16);SetColor(15,0);printf (Rus("      "));Sleep(1000); 
 

    

   

            h=0; if (hod[0]==5){

                         for (n=ud[0]-1;n<=ud[0]+1&&n<10;n++)

                           for (m=ud[1]-1;m<=ud[1]+1&&m<10;m++)

                                 if(mypole[n][m]==1)

                                 {h=1;}

                                 if (h==0)

                                 {mypole[ud[0]][ud[1]]=5;

                                       for (n=ud[0]-1;n<=ud[0]+1&&n<10;n++)

                           for (m=ud[1]-1;m<=ud[1]+1&&m<10;m++)

                                 if(mypole[n][m]==0)

                                 {mypole[n][m]=3;}

                                 }

                                 if(h==1) {per=1;srand(time(NULL));

                                 do{pri=1+rand() %4; prj=0;

                                 switch(pri){

                                       case 1:

                                 {if(mypole[ud[0]-1][ud[1]]==0&&ud[0]!=0){mypole[ud[0]-1][ud[1]]=3;GotoXY(28,16);SetColor(15,0);Sleep(1000);printf (Rus("Ieii!"));prj=1;per=1;f=1;}

                                 if(mypole[ud[0]-1][ud[1]]==1&&ud[0]!=0) {mypole[ud[0]-1][ud[1]]=4;GotoXY(28,16);SetColor(15,0);printf (Rus("?aiai!"));udar++;Sleep(1000); printf ("\x07");f=0;prj=1;per=1;hod[0]=1;}

                                  break;}

                                       case 2:

                                              {if(mypole[ud[0]+1][ud[1]]==0&&ud[0]!=9){mypole[ud[0]+1][ud[1]]=3;GotoXY(28,16);SetColor(15,0);Sleep(1000);printf (Rus("Ieii!"));prj=1;per=1;f=1;}

                                    if(mypole[ud[0]+1][ud[1]]==1&&ud[0]!=9) {mypole[ud[0]+1][ud[1]]=4;GotoXY(28,16);SetColor(15,0);printf (Rus("?aiai!"));udar++;Sleep(1000); printf ("\x07");f=0;prj=1;per=1;hod[0]=1;}

                                  break;}

                                       case 3: {if(mypole[ud[0]][ud[1]-1]==0&&ud[1]!=0){mypole[ud[0]][ud[1]-1]=3;GotoXY(28,16);SetColor(15,0);Sleep(1000);printf (Rus("Ieii!"));prj=1;per=1;f=1;}

                                    if(mypole[ud[0]][ud[1]-1]==1&&ud[1]!=0) {mypole[ud[0]][ud[1]-1]=4;GotoXY(28,16);SetColor(15,0);printf (Rus("?aiai!"));udar++;Sleep(1000); printf ("\x07");f=0;prj=1;per=1;hod[0]=1;}

                                  break;}

                                       case 4:  {if(mypole[ud[0]][ud[1]+1]==0&&ud[1]!=9){mypole[ud[0]][ud[1]+1]=3;GotoXY(28,16);SetColor(15,0);Sleep(1000);printf (Rus("Ieii!"));prj=1;per=1;f=1;}

                                    if(mypole[ud[0]][ud[1]+1]==1&&ud[1]!=9) {mypole[ud[0]][ud[1]+1]=4;GotoXY(28,16);SetColor(15,0);printf (Rus("?aiai!"));udar++;Sleep(1000); printf ("\x07");f=0;prj=1;per=1;hod[0]=1;}

                                  break;}

                                          }

                                 }while (prj==0);

                                 }} 

            if (hod[0]==1)

                  {

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

                              for (j=0;j<10;j++)

                              {

                                    h=0;

                                    if(mypole[i][j]==4||mypole[i][j]==5)

                                    {

                                          mypole[i][j]=5;

                                          if(i>0){if(mypole[i-1][j]==1){h=1;mypole[i-1][j]=5;GotoXY(28,16);SetColor(15,0);printf (Rus("?aiai!"));Sleep(1000); printf ("\x07");

                                                     for (i=0,x=41;i<10,x<61;i++,x=x+2)

            for (j=0,y=1;j<10,y<21;j++,y=y+2) 

              {

                    GotoXY(x,y);switch(mypole[i][j]){

                          case 0:if((j+i)%2!=0) {SetColor(0,1);printf ("  ");} else{SetColor(0,9);printf ("  ");}break;

                          case 1:SetColor(0,12);printf ("  ");break;

                          case 2:SetColor(0,7);printf ("  ");break;

                  case 3: SetColor(0,11);printf ("  ");break;

                          case 4:SetColor(0,7);printf ("  ");break;

                          case 5:SetColor(0,7);printf ("  ");break;}

                    GotoXY(x,y+1);switch(mypole[i][j]){

                          case 0:if((j+i)%2!=0) {SetColor(0,1);printf ("  ");} else{SetColor(0,9);printf ("  ");}break;

                          case 1:SetColor(0,12);printf ("  ");break;

                          case 2:SetColor(0,7);printf ("  ");break;

                  case 3:SetColor(0,11);printf ("  ");break;

                          case 4:SetColor(0,7);printf ("  ");break;

                          case 5:SetColor(0,7);printf ("  ");break;}

              }}}

                                          if(i<9){if(mypole[i+1][j]==1){h=1;mypole[i+1][j]=5;GotoXY(28,16);SetColor(15,0);printf (Rus("?aiai!"));Sleep(1000); printf ("\x07");

                                          for (i=0,x=41;i<10,x<61;i++,x=x+2)

            for (j=0,y=1;j<10,y<21;j++,y=y+2) 

              {

                    GotoXY(x,y);switch(mypole[i][j]){

                          case 0:if((j+i)%2!=0) {SetColor(0,1);printf ("  ");} else{SetColor(0,9);printf ("  ");}break;

                          case 1:SetColor(0,12);printf ("  ");break;

                          case 2:SetColor(0,7);printf ("  ");break;

                  case 3: SetColor(0,11);printf ("  ");break;

                          case 4:SetColor(0,7);printf ("  ");break;

                          case 5:SetColor(0,7);printf ("  ");break;}

                    GotoXY(x,y+1);switch(mypole[i][j]){

                          case 0:if((j+i)%2!=0) {SetColor(0,1);printf ("  ");} else{SetColor(0,9);printf ("  ");}break;

                          case 1:SetColor(0,12);printf ("  ");break;

                          case 2:SetColor(0,7);printf ("  ");break;

                  case 3:SetColor(0,11);printf ("  ");break;

                          case 4:SetColor(0,7);printf ("  ");break;

                          case 5:SetColor(0,7);printf ("  ");break;}

              }}}

                                          if(j>0){if(mypole[i][j-1]==1){h=1;mypole[i][j-1]=5;GotoXY(28,16);SetColor(15,0);printf (Rus("?aiai!"));Sleep(1000); printf ("\x07");

                                          for (i=0,x=41;i<10,x<61;i++,x=x+2)

            for (j=0,y=1;j<10,y<21;j++,y=y+2) 

              {

                    GotoXY(x,y);switch(mypole[i][j]){

                          case 0:if((j+i)%2!=0) {SetColor(0,1);printf ("  ");} else{SetColor(0,9);printf ("  ");}break;

                          case 1:SetColor(0,12);printf ("  ");break;

                          case 2:SetColor(0,7);printf ("  ");break;

                  case 3: SetColor(0,11);printf ("  ");break;

                          case 4:SetColor(0,7);printf ("  ");break;

                          case 5:SetColor(0,7);printf ("  ");break;}

                    GotoXY(x,y+1);switch(mypole[i][j]){

Информация о работе Разработка программного обеспечения для компьютерной игры "Морской Бой"