43226

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

Курсовая

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

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

Русский

2013-11-04

228 KB

114 чел.

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;

}


 

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

40980. ТРУДОВИЙ ДОГОВІР 233.5 KB
  Відсторонення працівника від роботи. Така угода характеризується наступними ознаками: працівник особисто виконує свої трудові функції; працівник повинен в ході виконання своєї трудової функції підпорядковуватись правилам внутрішнього трудового розпорядку; власник або уповноважений ним орган повинен організувати працю працівникастворити необхідні та належні умови праці виплачувати йому заробітну плату і т. До них слід віднести взаємне волевиявлення сторін про прийняття влаштування працівника на роботу визначення трудової функції...
40981. Медична арахноеитомологія. Членистоногі та комахи-збудники і переносники збудників захворювань людини 46.5 KB
  Клас павукоподiбнi rchnoide Медичне значення мають представники скорпіонів павуків та кліщів. Медичне значення кліщів як збудників хвороб та переносниківзбудників захворювань людини :Розміри кліщівcrinдрібні .У багатьох кліщів голово груди і черевце зливаються в єдине ціле втрачаючи сегментацію .Ротовий отвір кліщівколючосисний або гризучесисний .
40982. Взаємовідношення мови й гендера 89.5 KB
  Мовна картина світу як результат пізнання та концептуалізації обєктивної дійсності Мові належить активна роль у культурі й пізнанні. Вона є унікальною здатністю людини що відрізняє її від будьяких інших живих істот і решти світу. Кожен народ посвоєму розчленовує фрагменти світу і посвоєму називає їх. Формується світ тих хто говорить цією мовою тобто формується концептуальна картина світу як сукупність знань про світ що є зафіксованими у лексиці граматиці фразеології.
40983. Охорона праці. Нагляд і контроль за дотриманням законодавства про працю і правил з охорони праці 218.5 KB
  Охорона праці. Нагляд і контроль за дотриманням законодавства про працю і правил з охорони праці. Поняття охорони праці за трудовим правом Загальновідомо що економічне зростання автоматично ще не веде до збалансованого економічного і соціального розвитку. Зміни що відбуваються у структурі зайнятості й попиту на робочу силу як і до становища працівника на робочому місці умов його праці ставлять підвищені вимоги до безпеки праці.
40984. Конфлікти в колективі 40.5 KB
  Тому проблема здебільшого полягає не в наявності самого факту конфлікту а в тому який характер він носить деструктивний чи конструктивний і яким чином розвязується. Конструктивна та деструктивна суть конфліктів Деструктивний конфлікт переводить причини що призвели до конфлікту на âособистостіâ. Дана установка не веде до вирішення конфлікту а навпаки його загострює зростає упередженість проти партнера напруга у взаємостосунках посилюються неприємні почуття та переживання виникають стреси та ін. Прикладом деструктивного...
40985. Трудові спори і порядок розв’язання 183.5 KB
  Поняття трудових спорів та їх класифікація При здійсненні відносин людей під час трудової діяльності між працівниками і власниками підприємств або уповноваженими ними органами можуть виникати й часто виникають різного роду непорозуміння. Перебудова виробничих і трудових відносин нові форми застосування і використання праці істотно вплинули не тільки на індивідуальні трудові відносини а й на структуру і зміст організаційноуправлінських відносин що виникають між власником підприємства або уповноваженою ним особою з одного боку і трудовим...
40986. 4-х комнатный жилой дом мансардного типа 103.5 KB
  Расширился ассортимент, и повысилось качество применяемых в отечественном строительстве отделочных материалов — всех видов керамической плитки, покрытий для пола и стен, а также керамических санитарных и санитарно-технических изделий.
40987. Мова і культура 148.5 KB
  Однак з іншого боку у самій матерії мови у ряду істотних характеристик мовної структури позначилася біологічна природа людини. Психофізіологічні можливості знакової діяльності людини зумовили багаторівневу організацію мови визначили кількісні параметри окремих рівнів наприклад обсяг фонологічної системи що коливається в різних мовах в інтервалі від 10 до 100 одиниць; обсяг словника в інтервалі від 10 тисяч до півмільйона слів; вияв надмірності в мові. Культура визначає план змісту мови. У молекулярній біології і семіотиці був виявлений...
40988. Стратегии позиционирования в маркетинге, стратегия эффективного позиционирования, проблемы разработки стратегии позиционирования 233 KB
  Целью данной работы является детальное изучение понятия позиционирования в маркетинге и рассмотрение стратегий позиционирования. Для достижения поставленной цели мною решались следующие задачи: раскрытие понятия позиционирования, выявления ключевых концепций и идей позиционирования