43226

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

Курсовая

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

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

Русский

2013-11-04

228 KB

94 чел.

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;

}


 

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

196. Контроль качества и определение свойств материалов 777 KB
  Кратковременное механическое растяжение, типичные графические зависимости напряжения от деформации. Методы определения теплопроводности, температуропроводности и теплоемкости. Методы определения электрических свойств.
197. Определение договорной цены и расчет эффективности строительства 620.5 KB
  Расчет сметной стоимости строящегося здания по заданному аналогу. Сводная ведомость стоимости работ выполненных по объекту. Определение сметной стоимости на благоустройство территории (дороги и тротуары).
198. Створення сайту 422.52 KB
  Парні теги, позначають початок і кінець дії команди. Тег, що закриває область дії, має косу риску. Головні параметри тега body, основний текст, до якого застосовуються теги форматування. Написання заголовку сторінки.
199. Разработка конструкции транзисторного радиопередатчика, размещенного в кабине планера 9.15 MB
  Передающий тракт систем радиосвязи, расчет режимов транзистора мощного усилителя. Расчет режима мощного усилителя СВЧ и некоторое значение тока возбуждения. Расчет режима транзистора по схеме ОЭ без учета индуктивности выводов.
200. Разработка базы данных с помощью Microsoft Excel и Microsoft Access 466 KB
  Разработка логической модели базы данных средствами Microsoft Excel. Создание базы данных Microsoft Access, а также SQL-запросов и макросов. Создание таблиц и построение схемы данных, создание форм ввода-вывода информации.
201. Расчет плиты с круглыми пустотами 305.5 KB
  Нормативные и расчетные характеристики тяжелого бетона класса В25. Предварительное напряжение при благоприятном влиянии с учетом натяжения арматуры. Расчет прочности плиты по сечению, нормальному к продольной оси.
202. Исследование многопозиционной фазовой модуляции 306.5 KB
  Освоение основных принципов моделирования в среде MATLAB, знакомство с многопозиционными методами модуляции. Приобретение навыков по исследованию характеристик модулированного сигнала M-PSK.
203. Разработка практичного программного обеспечения для хранения данных компании в С# 522.5 KB
  Среда разработки поддерживает различные языки программировании в том числе С# и позволяет легко реализовать дизайн создаваемого приложения. Обзор основных функций программы Enterprise Management. Возможности настраиваемого интерфейса программного обеспечения.
204. Комплекс водоочистных сооружений для промышленного предприятия с технологической потребностью в воде 466 KB
  Общие сведения о системе водоснабжения и водоотведения промышленного предприятия. Балансовая схема водоснабжения и водоотведения промышленного предприятия. Разработка технологической схемы и расчет сооружений станции водоподготовки технической воды.