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

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

                          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<9){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]){

                          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;}

              }}}

                                    }

                              } 

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

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

                              {

                                    h=0;

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

                                    {

                                          if(i>0){if(mypole[i-1][j]==0){h=1;mypole[i-1][j]=3;}}

                                          if(i<9){if(mypole[i+1][j]==0){h=1;mypole[i+1][j]=3;}}

                                          if(j>0){if(mypole[i][j-1]==0){h=1;mypole[i][j-1]=3;}}

                                          if(j<9){if(mypole[i][j+1]==0){h=1;mypole[i][j+1]=3;}}

                                          if(i>0&&j>0){if(mypole[i-1][j-1]==0){h=1;mypole[i-1][j-1]=3;}}

                                          if(i>0&&j<9){if(mypole[i-1][j+1]==0){h=1;mypole[i-1][j+1]=3;}}

                                          if(i<9&&j<9){if(mypole[i+1][j+1]==0){h=1;mypole[i+1][j+1]=3;}}

                                          if(i<9&&j>0){if(mypole[i+1][j-1]==0){h=1;mypole[i+1][j-1]=3;}}

                                    }

                              } 

                  }

                  udar=0;

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

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

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

                          udar++;

       

      if(udar==20)

        {f=1;per=1;}

        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 (per==0)

        {

              do{ 

            i = 0 + rand() %10;

            j = 0 + rand() %10;

              }while(mypole[i][j]>1);

              if (mypole[i][j]==1){mypole[i][j]=4;ud[0]=i;ud[1]=j;GotoXY(28,16);SetColor(15,0);printf (Rus("?aiai!"));hod[0]=5;Sleep(1000); printf ("\x07");f=0;}

             

              if(mypole[i][j]==0) {mypole[i][j]=3;f=1;GotoXY(28,16);SetColor(15,0);printf (Rus("Ieii!"));Sleep(1000);} 

        } 

      Sleep(1000);

      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;}

              }

      }while (f==0); 

      return udar;

}

int player(int pole[10][10],int udar)

{  GotoXY(27,16);SetColor(0,0);printf (Rus("        "));

int i,j,x,y,f,e,k=0,pop,iper,jper;int vih, end;

for (i=0,x=1;i<10,x<21;i++,x=x+2)

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

              {

                    GotoXY(x,y);if(pole[i][j]==3){SetColor(0,11);printf ("  ");}else {if(pole[i][j]==2){SetColor(0,12);printf ("  ");}else {if((j+i)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf ("  ");}}}

                    GotoXY(x,y+1);if(pole[i][j]==3){SetColor(0,11);printf ("  ");}else {if(pole[i][j]==2){SetColor(0,12);printf ("  ");}else {if((j+i)%2!=0) {SetColor(0,1);printf ("  ");} else{SetColor(0,9);printf ("  ");}}}

              }

                  x=1;y=1;

                 i=j=0;

                 e=x;

                   {

               

                       GotoXY(e,y); SetColor(0,14);printf ("  ");

                       GotoXY(e,y+1); SetColor(0,14);printf ("  ");

                   }

                   do { f=0; pop=0; GotoXY(24,14); SetColor(15,0);printf (Rus("  Oiaeo ea?ie "));

                   int code =getch();

       if (code == 224)

        {GotoXY(27,16);SetColor(0,0);printf (Rus("        "));

        code = getch();

        switch(code)

            {

                   case 72:

                         {

                   if (y!=1)

                           {

                    

                                   e=x;

                                    {

                                            i=e/2;

                                      j=y/2;

                                            GotoXY(e,y);if(pole[i][j]==3){SetColor(0,11);printf ("  ");}else {if (pole[i][j]==2){SetColor(0,12);printf ("  ");}else {if((i+j)%2!=0) {SetColor(0,1);printf ("  ");} else{SetColor(0,9);printf ("  ");}}}

                                            GotoXY(e,y+1);if(pole[i][j]==3){SetColor(0,11);printf ("  ");}else {if (pole[i][j]==2){SetColor(0,12);printf ("  ");}else {if((i+j)%2!=0) {SetColor(0,1);printf ("  ");} else{SetColor(0,9);printf ("  ");}}}

                                    }

                                   y=y-2;

                                   e=x;

                              {

                                  GotoXY(e,y); SetColor(0,14);printf ("  ");

                                  GotoXY(e,y+1); SetColor(0,14);printf ("  ");

                                  }

                           } 

                                 
 

                           break;

                          

                   }

                   case 77:

                         {

                               

                               if (x!=19)

                             {

                               e=x;{

                              i=e/2;

                                j=y/2;

                                    GotoXY(e,y);if(pole[i][j]==3){SetColor(0,11);printf ("  ");}else {if (pole[i][j]==2){SetColor(0,12);printf ("  ");}else {if((i+j)%2!=0) {SetColor(0,1);printf ("  ");} else{SetColor(0,9);printf ("  ");}}}

                                    GotoXY(e,y+1);if(pole[i][j]==3){SetColor(0,11);printf ("  ");}else {if (pole[i][j]==2){SetColor(0,12);printf ("  ");}else {if((i+j)%2!=0) {SetColor(0,1);printf ("  ");} else{SetColor(0,9);printf ("  ");}}}

                               }

                               x=x+2;

                              e=x;

                           {

                               GotoXY(e,y); SetColor(0,14);printf ("  ");

                               GotoXY(e,y+1); SetColor(0,14);printf ("  "); 

                               }

                               }

                          

                               break;

                          }

                   case 80:

                         { 

                               

                   if (y!=19)

                           {

                               e=x;{

                              i=e/2;

                                j=y/2;

                                    GotoXY(e,y);if(pole[i][j]==3){SetColor(0,11);printf ("  ");}else {if (pole[i][j]==2){SetColor(0,12);printf ("  ");}else {if((i+j)%2!=0) {SetColor(0,1);printf ("  ");} else{SetColor(0,9);printf ("  ");}}}

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