43226

Разработка программы реализующей игру «морской бой»

Курсовая

Информатика, кибернетика и программирование

Алгоритмы реализации игры Реализацию программы я начал с того что описал базовый класс который будет содержать поля и методы общие для игрока и компьютерного оппонента назвав его Mtr. В обоих классах есть унаследованное от базового класса Mtr поле life по умолчанию равное 20 количество палуб как только у кого то из соперников оно становится равным 0 на экран выводится соответствующее сообщение о победе одного из игроков. Приложение 1 Некоторые детали программного кода Базовый класс Cmtr хранится в файле Cmtr.h ifndef MTR define...

Русский

2013-11-04

228 KB

111 чел.

PAGE  2

Міністерство освіти і науки України

Харківський національний університет радіоелектроніки

Факультет             Прикладна математика та менеджмент

(повна назва)

Кафедра                  Прикладна математика

(повна назва)

Напрямок   Інформатика

                                  (повна назва)

ПОЯСНЮВАЛЬНА ЗАПИСКА

до курсової роботи з дисципліни Програмування

за темою

“Морський бій”

Виконав:       Перевірив:

студент гр.  ПМ-08-1_______    Любченко В.А.          .

           (шифр групи)                          (посада, ініціали, прізвище)                      

Демерчян К.А.______________    ________________________________

(ініціали, прізвище)       (підпис)   

2009 р.


Х
НУРЭ

(наименование высшего учебного заведения)

Кафедра Информатика

 

Дисциплина Программирование

Специальность Информатика

Курс       1-й____Группа    ПМ-08-1 _____Семестр  ___II_________________ 

З А Д А Н И Е

на курсовой проект (работу) студента

_________________________________________________________

(фамилия, имя, отчество)

1. Тема проекта (работы)    Разработка программы реализующей игру «морской бой»

__________________________________________________________________________________________________________________________________________________________

2. Срок сдачи студентом законченного проекта (работы)      

3. Исходные данные к проекту  (работе)  Работа в Visual studio 2005, методы разработки приложения  

4. Содержание расчётно-пояснительной записки (перечень подлежащих разработке вопросов)

Введение, Среда разработки, Алгоритмы реализации игры, Инструкция пользователя,  

_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________

5. Перечень графического материала (с точным указанием обязательных чертежей)    

       

       

6. Дата выдачи задания 


КАЛЕНДАРНЫЙ     ПЛАН

Пор. N

Название этапов курсового проекта (работы)

Срок выполнения этапов проекта (работы)

Примечания

1

Поиск необходимой литературы

01.02 – 28.02

Выполнено

2

Поиск необходимого программного обеспечения

1.03 – 10.03

Выполнено

3

Ознакомление с возможностями

11.03 – 24.03

Выполнено

4

Адаптация программного обеспечения к поставленной задаче

24.03 – 3 1.03

Выполнено

5

Написание программ-примеров

1.04 – 31.05

Выполнено

6

Оформление пояснительной записки

1.06 – 6.06

Выполнено

7

Курсовой проект выполнен

6.06

Выполнено

Студент____________________________            Демерчян К.А.        

                                 (подпись)                                     (фамилия, инициалы)

Руководитель_______________________            Любченко В. А.

                                 (подпись)                                     (фамилия, инициалы)

“_______”_________________2009г.   


РЕФЕРАТ

Курсова робота: 35 с., 5 рис., 1 приложение, 18 джерел.

Работа представляет программную реализацию игры морской бой, на языке программирования C++, с использованием среды разработки Visual Studio 2005, Win Forms.

МОРСКОЙ БОЙ, WIN FORMS, VISUAL STUDIO 2005, СТРУКТУРА, КЛАСС, АЛГОРИТМЫ


СОДЕРЖАНИЕ:

Содержание…………………………………………….…………………......5

Введение………………………………………………….…………………...6

1. Среда разработки………….………………………….……………………8

2. Алгоритмы реализации игры..…………………….………………………8

3. Инструкция пользователя…………………………………..…………….11

Выводы……………………...…………………………………..…………….13

Перечень ссылок……………………………………………………………...14

Приложение 1………………………………………………………………...15

 


ВВЕДЕНИЕ

«Морской бой» — игра для двух участников, в которой игроки по очереди называют координаты на неизвестной им карте соперника. Если у соперника по этим координатам имеется корабль (координаты заняты), то корабль или его часть «топится», а попавший получает право сделать ещё один ход. Цель игрока — первым поразить все корабли противника.

Правила размещения кораблей(флота)

Игровое поле — квадрат 10х10 у каждого игрока, на котором игрок размещает свои корабли. Размещаются:

1 корабль — ряд из 4 клеток (четырёх палубный)

2 корабля — ряд из 3 клеток (трёх палубный)

3 корабля — ряд из 2 клеток (двух палубный)

4 корабля — ряд из 1 клетки (одно палубный)

При размещении корабли не могут касаться друг друга даже углами (в классическом варианте игры).

Рядом со «своим» квадратом чертится «чужой» такого же размера, только пустой. Это участок моря, где плавают чужие корабли противника.

Поиск и потопление кораблей противника

Перед началом боевых действий игроки бросают жребий или договариваются, кто будет ходить первым.

Игрок, выполняющий ход, совершает выстрел — называет вслух координаты клетки, в которой, по его мнению, находится корабль противника.

Если выстрел пришёлся в клетку, не занятую ни одним кораблём противника, то следует ответ «Мимо!» и стрелявший игрок ставит на чужом квадрате в этом месте точку. Право хода переходит к сопернику.

Победителем считается тот, кто первым потопит все 10 кораблей противника.

Компьютерная реализация данной игры представленная данной курсовой работой позволяет играть в морской бой с компьютерным оппонентом. Программа написана на языке программирования C++ в среде разработки Microsoft Visual Studio 2005.

  1.  
    Среда разработки

Для работы при написании программной реализации игры «Морской бой» была выбрана среда разработки Microsoft Visual Studio 2005. Она позволяет удобно и быстро разрабатывать программные приложения. Microsoft Visual Studio 2005 очень удобна в использовании, имеет функциональный и интуитивно понятный интерфейс. В данный момент она является одной из самых популярных сред разработки. В данной среде очень удобно реализованная система помощи и подсказок, что очень благоприятно сказывается на скорости разработки программ.

Win Forms позволяет быстро создавать визуальные компоненты программы. Windows Forms - это, как пишут в MSDN, новая платформа для создания Windows-приложений на платформе .NET, содержащая набор объектно-ориентированных классов. Также Windows Forms может представлять собой графический интерфейс пользователя (GUI) в многоуровневых приложениях. Но это сухие слова из MSDN. Понятие Windows Forms включает в себя все то, что вы каждый раз видите перед собой на Toolbox в Visual Studio .NET. Это все классы и контролы, которые используются для создания приложений при работе с формой (в дизайнере или в коде). По своей "глубинной" сути форма является контролом, поскольку наследует от System.Windows.Forms.ContainerControl, но это уже внутреннее устройство Windows Forms с которым вы можете легко ознакомиться используя Object Browser (по-умолчанию F2 в Visual Studio 2005, Ctrl+Alt+J в Visual Studio 2003).

 

  1.  
    Алгоритмы реализации игры

Реализацию программы я начал с того, что описал базовый класс, который будет содержать поля и методы общие для игрока и компьютерного оппонента назвав его Matr.

Его наследуют два других класса  User и Comp,  которые являются реализацией интерфейса и данных пользователь и его компьютерного оппонента.

У пользователя и компьютера есть две матрицы, первая хранит поле игрока (компьютера) вторая используется для стрельбы по полю врага.

Пользователь вручную расставляет свои корабли, для этого реализованы методы Set4, Set3, Set2, Set1 -  расстановки четырех-, трех-, двух-, и однопалубного кораблей. Сначала предлагается установить четырехпалубный корабль, затем два трехпалубных, три двухпалубных и в конце один однопалубный. После чего запускается метод из класса Comp случайной расстановки кораблей. Псевдослучайным образом генерируются два числа, и производится проверка, можно ли установить туда корабль, если можно то он устанавливается, в противном случае, числа генерируются заново, и выполняется таже проверка. Для этого каждый поставленный корабль в матрицу окружается значениями -1, показывающими, что ставить новый корабли нужно не ближе чем через 1 клетку от уже расположенного.

Затем запускается основной цикл игры, когда игрок и компьютер поочередно обмениваются выстрелами. В случае попадания, дается бонусный ход. Компьютер при стрельбе пользуется функцией генерации случайных чисел.

Данные классы подключены к форме, где на двух PictureBox отображается поле с кораблями игрока и поле стрельбы по компьютеру. При помощи рисования поверх PictureBox происходит динамическое отображение изменений в игровом процессе.

По событию нажатия мышкой на первый PictureBox происходит установка кораблей пользователя, после того как они все установлены, позволяется нажимать на второй PictureBox, в результате чего происходит стрельба по полю соперника.

Расстановка и стрельба выполнены путем получения координат нажатия на PictureBox и передача их в функции стрельбы либо установки кораблей.

В обоих классах есть унаследованное от базового класса Matr поле life, по умолчанию равное 20 (количество палуб), как только у кого то из соперников оно становится равным 0, на экран выводится соответствующее сообщение о победе одного из игроков.


3. Инструкция пользователя

После запуска игры откроется окно.

Слева находится поле для кораблей игрока, справа поле ведения боевых действий.

Для начала игры нужно нажать на «Игра», и выбрать из выпадающего списка «Новая».

После нажатия будет предложено расставить корабли. По центру формы будет сообщатся какой корабль устанавливается сейчас.

После установки всех кораблей пользователя компьютер случайным образом расставит свои корабли, что может занять несколько секунд, во время которых программа может не отвечать на действия пользователя.

После чего начинается непосредственно игра.

Игру в любой момент можно прервать нажав «Игра» и выбрать из выпадающего меню «Выйти из игры».


В
ЫВОД

В процессе выполнения данного курсового проекта были приобретены основные навыки работы со средой программирования Microsoft Visual Studio C++ 2005,CRL.А также были изучены и проанализированы различные методы создания и прохождения лабиринта.


ЛИТЕРАТУРА И ИСТОЧНИКИ

  1.  Мозгов М.В. «Занимательное программирование. Самоучитель». –СПб: Питер, 2005. -208с.
  2.  Мозгов М. В. «С++ мастер-класс. 85 нетривиальных проэктов, решений задач». –СПб: Наука и Техника, 2007. -208с.
  3.  Бондаренко М. Ф., Бритик В. И., Свинар М. К. Конспект лекций. Часть I «Алгоритмические языки и программирование».-Харьков: Компания СМИТ, 2004.-221 с.
  4.    Кормен, Томас, Лейзерсон, Ривест, Штайн «Алгоритмы: построение и анализ 2-е издание».: Пер с англ.- М. Издательский дом «Вильямс»,2007.-1296с.
  5.  Дворак Дж. 350 игр для IBM PC. –С-Пб.:Пергамент, 1994, -318с.
  6.  Павловская Т. А. С/С++ программирование на языке высокого уровня.-С.Пт.: Питер, 2002.-460 с.
  7.  Ричард С. Линкер, Том Арчер. Программирование для Windows 98. Библия  разработчика.-М.: Диалектика ,1999.-864 с.
  8.  Хемминг Р.В.  Цифровые фильтры. – М.: Недра, 1987. – 221 с.


Приложение 1

Некоторые детали программного кода

Базовый класс Cmatr, хранится в файле Cmatr.h

#ifndef MATR

#define MATR

#include <iostream>

class Matr{

public:

 unsigned int n;

 unsigned int m;

 int **matr;

 int **matr2;

 int four;

 int three;

 int two;

 int one;

 bool ifready;

 int life;

Matr(){

 n=10;

 m=10;

 four=1;

 three=2;

 two=3;

 one=4;

 life=20;

 ifready = false;

 matr=new int *[n];

 matr2=new int *[n];

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

 {

  matr[i]=new int [m];

  matr2[i]=new int [m];

 }

 

}

 virtual ~Matr()

{

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

  delete []matr[i];

 delete []matr;

 matr=NULL;

}

 void setnull()

{

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

  for(int j=0;j<m;++j)

  {

   matr[i][j]=0;

   matr2[i][j]=0;

   four=1;

   three=2;

   two=3;

   one=4;

   life=20;

   ifready = false;

  }

}

 void prepare()

{

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

 {

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

  {

   if(matr[i][j]==-1)

   {

    matr[i][j]=0;

   }

  }

 }

}

};

#endif

Класс пользователя User хранится в файле User.h

#include "cMatr.h"

#include <time.h>

#ifndef USER

#define USER

namespace MS

{

class User:public Matr{

public:

User():Matr(){;};

 virtual int set4(int x,int y)

{

 

 if(x+3<n && y<m)

 {

  matr[x][y]=1;

  matr[x+1][y]=1;

  matr[x+2][y]=1;

  matr[x+3][y]=1;

  if(x!=0)

  {

   matr[x-1][y]=-1;

   if(y!=0)

    matr[x-1][y-1]=-1;

   if(y!=m-1)

    matr[x-1][y+1]=-1;

  }

  if(y!=0)

  {

   matr[x][y-1]=-1;

   matr[x+1][y-1]=-1;

   matr[x+2][y-1]=-1;

   matr[x+3][y-1]=-1;

  }

  if(y!=m-1)

  {

   matr[x][y+1]=-1;

   matr[x+1][y+1]=-1;

   matr[x+2][y+1]=-1;

   matr[x+3][y+1]=-1;

  }

  if(x!=n-4)

  {

   matr[x+4][y]=-1;

   if(y!=0)

    matr[x+4][y-1]=-1;

   if(y!=m-1)

   {

    matr[x+4][y+1]=-1;

   }

  }

  return 1;

 }

}

 virtual int set3(int x,int y)

{

 if(x+2<n && y<m)

 {

  if(matr[x][y]!=0 || matr[x+1][y]!=0 || matr[x+2][y]!=0)

  {

   return 0;

  }

  matr[x][y]=1;

  matr[x+1][y]=1;

  matr[x+2][y]=1;

   

  if(x!=0)

  {

   matr[x-1][y]=-1;

   if(y!=0)

    matr[x-1][y-1]=-1;

   if(y!=m-1)

    matr[x-1][y+1]=-1;

   }

   if(y!=0)

   {

    matr[x][y-1]=-1;

    matr[x+1][y-1]=-1;

    matr[x+2][y-1]=-1;

   }

   if(y!=m-1)

   {

    matr[x][y+1]=-1;

    matr[x+1][y+1]=-1;

    matr[x+2][y+1]=-1;

   }

   if(x!=n-3)

   {

    matr[x+3][y]=-1;

    if(y!=0)

     matr[x+3][y-1]=-1;

    if(y!=m-1)

    {

     matr[x+3][y+1]=-1;

    }

   }

   return 1;

 }

}

 virtual int set2(int x,int y)

{

    

  if(x+1<n && y<m)

  {

   if(matr[x][y]!=0 || matr[x+1][y]!=0)

    {

     return 0;

    }

    matr[x][y]=1;

    matr[x+1][y]=1;

    

    if(x!=0)

    {

     matr[x-1][y]=-1;

     if(y!=0)

      matr[x-1][y-1]=-1;

     if(y!=m-1)

      matr[x-1][y+1]=-1;

    }

    if(y!=0)

    {

     matr[x][y-1]=-1;

     matr[x+1][y-1]=-1;

    }

    if(y!=m-1)

    {

     matr[x][y+1]=-1;

     matr[x+1][y+1]=-1;

    }

    if(x!=n-2)

    {

     matr[x+2][y]=-1;

     if(y!=0)

      matr[x+2][y-1]=-1;

     if(y!=m-1)

     {

      matr[x+2][y+1]=-1;

     }

    }

    return 1;

  }

 }

 virtual int set1(int x,int y)

{

  if(x<n && y<m)

  {

   if(matr[x][y]!=0)

   {

    return 0;

   }

   matr[x][y]=1;

   

   if(x!=0)

   {

    matr[x-1][y]=-1;

    if(y!=0)

     matr[x-1][y-1]=-1;

    if(y!=m-1)

     matr[x-1][y+1]=-1;

   }

   if(y!=0)

   {

    matr[x][y-1]=-1;

    if(x!=n-1)

     matr[x+1][y-1]=-1;

   }

   if(y!=m-1)

   {

    matr[x][y+1]=-1;

    if(x!=n-1 && y!=0)

     matr[x+1][y+1]=-1;

   }

   if(x!=n-1)

   {

    matr[x+1][y]=-1;

    if(y!=0)

     matr[x+1][y-1]=-1;

    if(y!=m-1)

    {

     matr[x+1][y+1]=-1;

    }

   }

   return 1;

  }

}

 void prepare()

{

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

 {

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

  {

   if(matr[i][j]==-1)

    matr[i][j]=0;

  }

 }

}

 int getfire(int x,int y)

{

 if(matr[x][y]==0)

 {

  matr[x][y]=3;

  return 3;   

 }

 else if(matr[x][y]==1 || matr[x][y]==2)

 {

  if(matr[x][y]==1)

   --life;

  matr[x][y]=2;

  return 2;

 }

 else if(matr[x][y]==3)

 {

  return 4;

 }

}

 void set(int x,int y,int value)

{

 matr2[x][y]=value;

}

};

};

#endif

Класс пользователя Comp хранится в файле Comp.h

#include "cMatr.h"

#ifndef COMP

#define COMP

namespace Comp

{

 class Comp:public Matr{

 public:

 Comp():Matr(){;};

 virtual void set4()

{

 while(1)

 {

  unsigned int x;unsigned int y;

  srand(time(NULL));

  x=rand()%10;

  y=rand()%10;

  if(x+3<n && y<m)

  {

   matr[x][y]=1;

   matr[x+1][y]=1;

   matr[x+2][y]=1;

   matr[x+3][y]=1;

   if(x!=0)

   {

    matr[x-1][y]=-1;

    if(y!=0)

     matr[x-1][y-1]=-1;

    if(y!=m-1)

     matr[x-1][y+1]=-1;

   }

   if(y!=0)

   {

    matr[x][y-1]=-1;

    matr[x+1][y-1]=-1;

    matr[x+2][y-1]=-1;

    matr[x+3][y-1]=-1;

   }

   if(y!=m-1)

   {

    matr[x][y+1]=-1;

    matr[x+1][y+1]=-1;

    matr[x+2][y+1]=-1;

    matr[x+3][y+1]=-1;

   }

   if(x!=n-4)

   {

    matr[x+4][y]=-1;

    if(y!=0)

     matr[x+4][y-1]=-1;

    if(y!=m-1)

    {

     matr[x+4][y+1]=-1;

    }

   }

   break;

  }

 }

}

 virtual void set3()

{

 while(1)

 {

  unsigned int x;unsigned int y;

  srand(time(NULL));

  x=rand()%10;

  y=rand()%10;

  if(x+2<n && y<m)

  {

   if(matr[x][y]!=0 || matr[x+1][y]!=0 || matr[x+2][y]!=0)

   {

    continue;

   }

   matr[x][y]=1;

   matr[x+1][y]=1;

   matr[x+2][y]=1;

   

   if(x!=0)

   {

    matr[x-1][y]=-1;

    if(y!=0)

     matr[x-1][y-1]=-1;

    if(y!=m-1)

     matr[x-1][y+1]=-1;

   }

   if(y!=0)

   {

    matr[x][y-1]=-1;

    matr[x+1][y-1]=-1;

    matr[x+2][y-1]=-1;

   }

   if(y!=m-1)

   {

    matr[x][y+1]=-1;

    matr[x+1][y+1]=-1;

    matr[x+2][y+1]=-1;

   }

   if(x!=n-3)

   {

    matr[x+3][y]=-1;

    if(y!=0)

     matr[x+3][y-1]=-1;

    if(y!=m-1)

    {

     matr[x+3][y+1]=-1;

    }

   }

   break;

  }

 }

}

 virtual void set2()

{

 while(1)

 {

  unsigned int x;unsigned int y;

  srand(time(NULL));

  x=rand()%10;

  y=rand()%10;

  if(x+1<n && y<m)

  {

   if(matr[x][y]!=0 || matr[x+1][y]!=0)

    {

     continue;

    }

    matr[x][y]=1;

    matr[x+1][y]=1;

    

    if(x!=0)

    {

     matr[x-1][y]=-1;

     if(y!=0)

      matr[x-1][y-1]=-1;

     if(y!=m-1)

      matr[x-1][y+1]=-1;

    }

    if(y!=0)

    {

     matr[x][y-1]=-1;

     matr[x+1][y-1]=-1;

    }

    if(y!=m-1)

    {

     matr[x][y+1]=-1;

     matr[x+1][y+1]=-1;

    }

    if(x!=n-2)

    {

     matr[x+2][y]=-1;

     if(y!=0)

      matr[x+2][y-1]=-1;

     if(y!=m-1)

     {

      matr[x+2][y+1]=-1;

     }

    }

    break;

  }

 }

}

 virtual void set1()

{

 while(1)

 {

  unsigned int x;unsigned int y;

  srand(time(NULL));

  x=rand()%10;

  y=rand()%10;

  if(x<n && y<m)

  {

   if(matr[x][y]!=0)

   {

    continue;

   }

   matr[x][y]=1;

   

   if(x!=0)

   {

    matr[x-1][y]=-1;

    if(y!=0)

     matr[x-1][y-1]=-1;

    if(y!=m-1)

     matr[x-1][y+1]=-1;

   }

   if(y!=0)

   {

    matr[x][y-1]=-1;

    if(x!=n-1)

     matr[x+1][y-1]=-1;

   }

   if(y!=m-1)

   {

    matr[x][y+1]=-1;

    if(x!=n-1 && y!=0)

     matr[x+1][y+1]=-1;

   }

   if(x!=n-1)

   {

    matr[x+1][y]=-1;

    if(y!=0)

     matr[x+1][y-1]=-1;

    if(y!=m-1)

    {

     matr[x+1][y+1]=-1;

    }

   }

   break;

  }

 }

}

 void autoplacing()

 {

  setnull();

  set4();

  set3();

  set3();

  set2();

  set2();

  set2();

  set1();

  set1();

  set1();

  set1();

  ifready = true;

 };

 void prepare()

{

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

 {

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

  {

   if(matr[i][j]==-1)

    matr[i][j]=0;

  }

 }

}

 int getfire(int x,int y)

{

 if(matr[x][y]==0)

 {

  matr[x][y]=3;

  return 3;   

 }

 else if(matr[x][y]==1 || matr[x][y]==2)

 {

  if(matr[x][y]==1)

   --life;

  matr[x][y]=2;

  return 2;

 }

 if(matr[x][y]==3)

  return 3;

}

 void set(int x,int y,int value)

{

 matr2[x][y]=value;

}

 void fire(int &x,int &y)

{

 srand(time(NULL));

 x=rand()%10;

 y=rand()%10;

}

};

}

#endif

Функция рисования по Picturebox:

void ris()

{

Color ^col = gcnew Color();

Pen ^mybrysh = gcnew Pen(col->Yellow);

Graphics ^im = pictureBox1->CreateGraphics();

im->DrawLine(mybrysh,1,1,260,1);

im->DrawLine(mybrysh,1,26,260,26);

im->DrawLine(mybrysh,1,52,260,52);

 im->DrawLine(mybrysh,1,78,260,78);

im->DrawLine(mybrysh,1,104,260,104);

im->DrawLine(mybrysh,1,130,260,130);

im->DrawLine(mybrysh,1,156,260,156);

im->DrawLine(mybrysh,1,182,260,182);

im->DrawLine(mybrysh,1,208,260,208);

im->DrawLine(mybrysh,1,234,260,234);

im->DrawLine(mybrysh,1,260,260,260);

im->DrawLine(mybrysh,1,1,1,260);

im->DrawLine(mybrysh,26,1,26,260);

im->DrawLine(mybrysh,52,1,52,260);

im->DrawLine(mybrysh,78,1,78,260);

im->DrawLine(mybrysh,104,1,104,260);

im->DrawLine(mybrysh,130,1,130,260);

im->DrawLine(mybrysh,156,1,156,260);

im->DrawLine(mybrysh,182,1,182,260);

im->DrawLine(mybrysh,208,1,208,260);

im->DrawLine(mybrysh,234,1,234,260);

im->DrawLine(mybrysh,260,1,260,260);

 delete mybrysh;

 delete im;

  

Color ^col2 = gcnew Color();

Pen ^mybrysh2 = gcnew Pen(col->Yellow);

Graphics ^im2 = pictureBox2->CreateGraphics();

im2->DrawLine(mybrysh2,1,1,260,1);

im2->DrawLine(mybrysh2,1,26,260,26);

im2->DrawLine(mybrysh2,1,52,260,52);

im2->DrawLine(mybrysh2,1,78,260,78);

im2->DrawLine(mybrysh2,1,104,260,104);

im2->DrawLine(mybrysh2,1,130,260,130);

im2->DrawLine(mybrysh2,1,156,260,156);

im2->DrawLine(mybrysh2,1,182,260,182);

im2->DrawLine(mybrysh2,1,208,260,208);

im2->DrawLine(mybrysh2,1,234,260,234);

im2->DrawLine(mybrysh2,1,260,260,260);

 

im2->DrawLine(mybrysh2,1,1,1,260);

im2->DrawLine(mybrysh2,26,1,26,260);

im2->DrawLine(mybrysh2,52,1,52,260);

im2->DrawLine(mybrysh2,78,1,78,260);

im2->DrawLine(mybrysh2,104,1,104,260);

im2->DrawLine(mybrysh2,130,1,130,260);

im2->DrawLine(mybrysh2,156,1,156,260);

im2->DrawLine(mybrysh2,182,1,182,260);

im2->DrawLine(mybrysh2,208,1,208,260);

im2->DrawLine(mybrysh2,234,1,234,260);

im2->DrawLine(mybrysh2,260,1,260,260);

for(int x(0);x<10;++x)

 {

  for(int y(0);y<10;++y)

  {

   if(unit1.matr[x][y]==1)

   {

    Color ^col = gcnew Color();

    SolidBrush ^sq = gcnew SolidBrush(col->Black);

    Graphics ^im = pictureBox1->CreateGraphics();

    im->FillRectangle(sq,Rectangle(y*26+1,x*26+1,25,25));

    delete sq;

    delete im;

  }

  else if(unit1.matr[x][y]==2 && unit1.ifready==true)

  {

   Color ^col = gcnew Color();

   SolidBrush ^sq = gcnew SolidBrush(col->MistyRose);

   Graphics ^im = pictureBox1->CreateGraphics();

   im->FillRectangle(sq,Rectangle(y*26+1,x*26+1,25,25));

   delete sq;

   delete im;

  }

  else if(unit1.matr[x][y]==3 && unit1.ifready==true)

  {

    Color ^col = gcnew Color();

    SolidBrush ^sq = gcnew SolidBrush(col->LawnGreen);

    Graphics ^im = pictureBox1->CreateGraphics();

    im->FillRectangle(sq,Rectangle(y*26+10,x*26+10,10,10));

    delete sq;

    delete im;

   }

   else if(unit1.matr[x][y]==0)

   {

    Color ^col = gcnew Color();

    SolidBrush ^sq = gcnew SolidBrush(col->DarkBlue);

    Graphics ^im = pictureBox1->CreateGraphics();

    im->FillRectangle(sq,Rectangle(y*26+1,x*26+1,25,25));

    delete sq;

    delete im;

  }

  }

 }

  

for(int x(0);x<10;++x)

{

  for(int y(0);y<10;++y)

  {

  if(unit1.matr2[x][y]==1)

  {

   Color ^col = gcnew Color();

   SolidBrush ^sq = gcnew SolidBrush(col->Black);

   Graphics ^im = pictureBox2->CreateGraphics();

   im->FillRectangle(sq,Rectangle(y*26+1,x*26+1,25,25));

   delete sq;

   delete im;

       }

  else if(unit1.matr2[x][y]==0)

  {

    Color ^col = gcnew Color();

    SolidBrush ^sq = gcnew SolidBrush(col->DarkBlue);       Graphics ^im = pictureBox2->CreateGraphics();

    im->FillRectangle(sq,Rectangle(y*26+1,x*26+1,25,25));

    delete sq;

    delete im;

  }

  else if(unit1.matr2[x][y]==2 && unit1.ifready==true)

  {

   Color ^col = gcnew Color();

   SolidBrush ^sq = gcnew SolidBrush(col->MistyRose);       Graphics ^im = pictureBox2->CreateGraphics();

   im->FillRectangle(sq,Rectangle(y*26+1,x*26+1,25,25));

   delete sq;

   delete im;

  }

  else if(unit1.matr2[x][y]==3 && unit1.ifready==true)

  {

    Color ^col = gcnew Color();

    SolidBrush ^sq = gcnew SolidBrush(col->LawnGreen);

    Graphics ^im = pictureBox2->CreateGraphics();

    im->FillRectangle(sq,Rectangle(y*26+10,x*26+10,10,10));

    delete sq;

    delete im;

   }

  }

 }

 delete mybrysh2;

 delete im2;

}


 

А также другие работы, которые могут Вас заинтересовать

86008. Банковская система Российской Федерации 620 KB
  Разнообразные банковские услуги — расчетно-кассовые и депозитно-кредитные — стали доступны миллионам наших сограждан, которые привыкли к ним, как к обыденному явлению, хотя еще 20 лет тому назад мало кто из них представлял себе
86009. Кредитование в коммерческом банке на примере ОАО «СКБ-банк» 246 KB
  Проблемы предоставления кредита рассматриваются в работах Р. Вопросы возвратности кредита представлены работами Д. Срочность возвратность и как правило платность принципиальные характеристики кредита. При помощи кредита свободные денежные капиталы и доходы предприятий граждан и государства аккумулируются превращаясь в ссудный капитал который за плату передается во временное пользование.
86010. Расчёт сметной стоимости геофизических работ на поиски хрусталеносных зон в Оренбургской области 64.2 KB
  Проведение геолго-геофизических работ в пределах Бирюсинского рудного поля с целью изучения его структуры, выделения участков, перспективных на мусковитные пегматиты, и определение прогнозных ресурсов по категории P2 и P3
86011. Расчет себестоимости продукции, установление оптовой цены и анализ их влияния на финансовые результаты деятельности предприятия 118.77 KB
  Благодаря этой курсовой работе я научилась делать расчеты стоимости сырья и материалов, баланса рабочего времени, тарифного фонда оплаты труда, годового фонда оплаты труда, цены, рентабельности, делать выводы по работе предприятия. Основными показателями работы предприятия являются
86012. ГОСУДАРСТВЕННАЯ ПОЛИТИКА СОЦИАЛЬНОЙ ЗАЩИТЫ НАСЕЛЕНИЯ 62.12 KB
  Государственная политика социальной защиты семьи Цель и главные принципы государственной семейной политики Государственная семейная политика комплексная система деятельности государства направленная на семью как социальный институт с целью укрепления развития суверенитета защиты прав и интересов семьи на основе правового регулирования отношений с государством. Государственная семейная политика является самостоятельным направлением социальной политики решает только специфические проблемы семьи; выводит семью и государство на новый...
86013. Организация системы бухгалтерского учета и пути ее совершенствования в страховых организациях (на примере ОАО «РОСГОССТРАХ») 114.68 KB
  В бухгалтерии страховой организации аккумулируется вся информация о фактах хозяйственной деятельности, происходит их документальное подтверждение и фиксирование, начиная с создания страховой услуги, привлечения в этих целях необходимых средств, калькулирования фактических издержек до формирования годовой бухгалтерской отчетности.
86014. Организация и технология документационного обеспечения управления 43.35 KB
  Перспективы развития правил оформления управленческих документов предложена дополнительная информация об основных положениях и составлении инструкции по делопроизводству и должностных инструкций сотрудников. Деятельность учреждения фиксируется в разных видах документов. Все эти виды составляют группу организационных документов. Инструкция по делопроизводству является нормативным документом регламентирующим организацию правила приемы и процессы создания документов порядок работы с ними осуществление контроля за их исполнением.
86015. Организация и управление связей с общественностью в клубной сфере 683.5 KB
  Особо следует отметить, что рынок развлечении до сих пор характеризуется устойчивой тенденцией к росту и является наиболее динамичным среди регионов Восточной Европы. «Сегодня в Москве работает около 450-500 заведений клубного сегмента, а объем столичного рынка ночных клубов растет...
86016. Бизнес-план фирмы ООО «Инфо-Нью(Info-New)» 161.13 KB
  Важнейшей задачей разработки бизнес-планов является проблема привлечения и обоснования инвестиций и кредитов в том числе зарубежных необходимых для осуществления проектов технического перевооружения и реконструкции предприятий.