Реализация игры "Жизнь", в которой необходимо захватить как можно большее пространство своим цветом - Программирование, компьютеры и кибернетика дипломная работа

Реализация игры "Жизнь", в которой необходимо захватить как можно большее пространство своим цветом - Программирование, компьютеры и кибернетика дипломная работа




































Главная

Программирование, компьютеры и кибернетика
Реализация игры "Жизнь", в которой необходимо захватить как можно большее пространство своим цветом

Основные идеи объектно-ориентированного подхода, преимущества и недостатки. Выбор языка программирования, проектирование системы классов, их взаимосвязь и формат. Программный код модуля unit1.h, тестирование, листинг. Результаты работы программы.


посмотреть текст работы


скачать работу можно здесь


полная информация о работе


весь список подобных работ


Нужна помощь с учёбой? Наши эксперты готовы помочь!
Нажимая на кнопку, вы соглашаетесь с
политикой обработки персональных данных

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Реализация игры "Жизнь", в которой необходимо захватить как можно большее пространство своим цветом
На игровой доске поле размером 10*10 2-х цветов игроки начинают с противоположных углов имея по 1-й фишке. Фишки могут ходить аналогично ферзю на расстояние не более 2-х клеток. При перемещении на 1-ну клетку происходит копирование, при каждом ходе все соседние фишки становятся такого же цвета что и ходивший. Выигрывает тот игрок, который имеет больше фишек.
Фишки реализуются в объекте, клетки игровой доски тоже реализуются объектом, сама доска является потомком клетки и имеет свойства доски. Операции над фишками (перемещение, копирование, захват) реализовать отдельно от объекта.
объектный ориентированный программирование игра
В данной курсовой работе рассматривается реализация игры, в которой необходимо захватить как можно большее пространство своим цветом. Задача реализуется с помощью объектно-ориентированного подхода. Курсовой проект содержит пояснительную записку из 12 страниц текста, программного кода в виде приложения и трех рисунков результата работы программы.
Игры на С++, игра Жизнь, рисование в С++.
Объектно-ориентированное проектирование это такой подход, когда программная система представляется как совокупность объектов, каждая из которых принадлежит некоторому классу, а классы представляют иерархическую структуру. Т.к. программная система представляется как совокупность взаимодействующих объектов, то, следовательно, используется не алгоритмическая и объектная декомпозиция программной системы. Термин объект появился одновременно в нескольких областях связанных с компьютерами. Так были созданы компьютеры с объектно-ориентированной архитектурой, например IBM system или Intel 432. Соответственно были созданы объектно-ориентированные операционные системы, например IMAX STAROS. Термин объект впервые появился в языке Simula67. Далее объектный подход был развит в версиях языка Smalltalk. Затем механизм объектно-ориентированного подхода был введен в традиционные языки высшего уровня.
Практически все объектно-ориентированные языки программирования являются развивающимися языками, их стандарты регулярно уточняются и расширяются. Следствием этого развития являются неизбежные различия во входных языках компиляторов различных систем программирования. .Наиболее распространенными в настоящее время являются системы программирования Microsoft C++ , Microsoft Visual C++ и системы программирования фирмы Borland International. Дальнейший материал в данном пособии излагается применительно к системе программирования Borland C++. Это связано прежде всего наличием в этой системе программирования развитой интегрированной среды, объединяющей текстовый редактор, компилятор, редактор связей (компоновщик) и отладочные средства.
Сущность объектно-ориентированного подхода к программированию
Основные идеи объектно-ориентированного подхода опираются на следующие положения:
- Программа представляет собой модель некоторого реального процесса, части реального мира.
- Модель реального мира или его части может быть описана как совокупность взаимодействующих между собой объектов.
- Объект описывается набором параметров, значения которых определяют состояние объекта, и набором операций (действий), которые может выполнять объект.
- Взаимодействие между объектами осуществляется посылкой специальных сообщений от одного объекта к другому. Сообщение, полученное объектом, может потребовать выполнения определенных действий, например, изменения состояния объекта.
- Объекты, описанные одним и тем же набором параметров и способные выполнять один и тот же набор действий представляют собой класс однотипных объектов.
Считается, что ООП имеет два главных преимущества. Во-первых, это высокая конкурентоспособность программ, созданных на базе ООП, благодаря сокращенным срокам разработки и гибкостью программного продукта. Во-вторых, отсутствие ограничений по сложности. Можно перечислить и другие преимущества ООП. Это повторное использование программных компонентов, сокращенный срок разработки, использование возможностей объектно-ориентированных языков. Главными недостатками объектно-ориентированного подхода является производительность и начальные затраты.
Основные концепции ООП: Каждый стиль программирования имеет свою концептуальную базу. Для объектно-ориентированного стиля программирования такой базой является объектная модель. Объектная модель имеет четыре главных элемента:
Выше было изложено краткое описание об ОО подходе.
С++ - это универсальный язык программирования, задуманный так, чтобы сделать программирование более приятным для серьезного программиста. За исключением второстепенных дета лей С++ является надмножеством языка программирования C. Помимо возможностей, которые дает C, С++ предоставляет гибкие и эффективные средства определения новых типов. Используя определения новых типов, точно отвечающих концепциям приложения, программист может разделять разрабатываемую программу на легко поддающиеся контролю части. Такой метод построения программ часто называют абстракцией данных. Информация о типах содержится в некоторых объектах типов, определенных пользователем. Такие объекты просты и надежны в использовании в тех ситуациях, когда их тип нельзя установить на стадии компиляции. Программирование с применением таких объектов часто называют объектно-ориентированным. При правильном использовании этот метод дает более короткие, проще понимаемые и легче контролируемые программы.
Ключевым понятием С++ является класс. Класс - это тип, определяемый пользователем. Классы обеспечивают сокрытие данных, гарантированную инициализацию данных, неявное преобразование типов для типов, определенных пользователем, динамическое задание типа, контролируемое пользователем управление памятью и механизмы перегрузки операций. С++ предоставляет гораздо лучшие, чем в C, средства выражения модульности программы и проверки типов. В языке есть также усовершенствования, не связанные непосредственно с классами, включающие в себя символические константы, inline-подстановку функций, параметры функции по умолчанию, перегруженные имена функций, операции управления свободной памятью и ссылочный тип. В С++ сохранены возможности языка C по работе с основными объектами аппаратного обеспечения (биты, байты, слова, адреса и т.п.). Это позволяет весьма эффективно реализовывать типы, определяемые пользователем.
С++ и его стандартные библиотеки спроектированы так, чтобы обеспечивать переносимость. Имеющаяся на текущий момент реализация языка будет идти в большинстве систем, поддерживающих C. Из С++ программ можно использовать C библиотеки, и с С++ можно использовать большую часть инструментальных средств, поддерживающих программирование на C.
В данной курсовой работе были созданы следующие классы:
class TCells - класс " Клетка " . Служит базовым классом для класса «Доска».
void init(_size); - установка размера клеток
class TDoska - класс «Доска» , потомок класса TCells
TDoska(); - устанавливает размер клеток
int mas[10][10]; - массив для хранения положений фишек
TColor color[10][10]; - массив для хранения цвета фишек на доске
int count_1,count_2; - счетчики очков для двух игроков
void draw(); - рисует фишку в установленных координатах
void init(int _x, int _y, TColor _c, int __gamer); - установка фишек в заданные координаты, производит копирование фишек в соседние клетки.
void Game_over(); - проверка на окончание игры
В языке С++ формат описания класса выглядит следующим образом:
<метка видимости> : < элементы класса>
<метка видимости> : < элементы класса>
В данном примере переменная size и функция init () объявлены как public, т.е. как общедоступные.
Синтаксис объявления класса-потомка следующий:
class potomok : <спецификатор доступа> base1, baseN
В данном примере функции TDoska (), draw () объявлены как public, т.е. как общедоступные.
void init(int _x, int _y, TColor _c, int __gamer);
В данном примере все функции и переменные объявлены как public, т.е. как общедоступные.
В данной курсовой работе была разработана реализация игры, в которой необходимо захватить как можно большее пространство своим цветом. Приложение разрабатывалось в среде CBuilder 5, т.к. этот язык программирования оптимально подходил для реализации требуемой задачи. Язык С++ был выбран неслучайно т.к. объектная модель в нем реализуется на доступном пользователю уровне.
Программа разрабатывалась с использованием объектно-ориентированного подхода, поэтому при ее реализации были использованы классы.
class TCells - класс "Клетка" . Служит базовым классом для класса «Доска».
class TDoska - класс «Доска» , потомок класса TCells
В ходе выполнения программы возникали различные трудности, связанные с выводом графического результата.
После окончания написания программы, было проведено необходимое тестирование. Результаты тестирования показывают, что программа полностью работоспособна.
При выполнении курсового проекты я глубже ознакомился с основами объектно-ориентированного программирования, и получил новые навыки программирования с использованием объектно-ориентированного подхода.
2.Бьерн Страуструп. Язык программирования С++
3.Интернет: www.google.com.ru, www.gamedev.ru.
Программный код модуля unit 1. h
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
__published:// IDE-managed Components
TGroupBox *GroupBox1; TGroupBox *GroupBox2;TGroupBox *GroupBox3;
TEdit *Edit1; TEdit *Edit2; TEdit *Edit3; TEdit *Edit4;
TLabel *Label1; TLabel *Label2; TLabel *Label3; TLabel *Label4;
TLabel *Label5; TLabel *Label6; TButton *Button1; TButton *Button2;
TLabel *Label7; TLabel *Label8; TEdit *Edit5; TEdit *Edit6;
TShape *Shape1; TShape *Shape2; TTimer *Timer1;
void __fastcall FormPaint(TObject *Sender);
void __fastcall Button1Click(TObject *Sender);
void __fastcall Button2Click(TObject *Sender);
void __fastcall Timer1Timer(TObject *Sender);
void __fastcall FormCreate(TObject *Sender);
__fastcall TForm1(TComponent* Owner);
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void init(_size){size=_size;} //установка размера клетки
TDoska() //конструктор - устанавливает значение размера клетки
void draw() //рисует доску белого цвета
Form1->Canvas->Brush->Color=clWhite;
Form1->Canvas->Ellipse(i*size,j*size,(i+1)*size,(j+1)*size);
//---------------------------------------------------------------------------
void draw_greed() // рисует доску с фишками
Form1->Canvas->Brush->Color=color[i][j];
Form1->Canvas->Ellipse(i*size,j*size,(i+1)*size,(j+1)*size);
void draw() // рисует одну фишку с установленными координатами
Form1->Canvas->Brush->Color=color[x][y];
Form1->Canvas->Ellipse(x*size,y*size,(x+1)*size,(y+1)*size);
//------------- // прототип функции
void init(int _x, int _y, TColor _c, int __gamer);
//------------- // процедура проверки окончания игры
if (count_1>count_2){_gamer=1;} else {_gamer=2;}
ShowMessage("Game Over!!! Выиграл игрок ["+IntToStr(_gamer)+"]");
//---------------------- установка координат и захват ближайших клеток -----------
void TFishka::init(int _x, int _y, TColor _c, int __gamer)
if (mas[x][y]==0) {color[x][y]=_c; mas[x][y]=1; temp++;}
if (mas[x+1][y]==0) {color[x+1][y]=_c; mas[x+1][y]=1; temp++;}
if (mas[x-1][y]==0) {color[x-1][y]=_c; mas[x-1][y]=1; temp++;}
if (mas[x][y+1]==0) {color[x][y+1]=_c; mas[x][y+1]=1; temp++;}
if (mas[x][y-1]==0) {color[x][y-1]=_c; mas[x][y-1]=1; temp++;}
if (mas[x+1][y-1]==0) {color[x+1][y-1]=_c; mas[x+1][y-1]=1; temp++;}
if (mas[x+1][y+1]==0) {color[x+1][y+1]=_c; mas[x+1][y+1]=1; temp++;}
if (mas[x-1][y-1]==0) {color[x-1][y-1]=_c; mas[x-1][y-1]=1; temp++;}
if (mas[x-1][y+1]==0) {color[x-1][y+1]=_c; mas[x-1][y+1]=1; temp++;}
//------------- конструктор - установка начальных значений переменных -------
Программный код модуля unit 1. cpp
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
//----------- обработчик прорисовки формы -----------------------------------------
void __fastcall TForm1::FormPaint(TObject *Sender)
//---------------------- нажатие кнопки первого игрока ----------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
f.init(StrToInt(Edit1->Text),StrToInt(Edit2->Text),clBlue,1);
Edit1->Enabled=false;Edit1->Text="";
Edit2->Enabled=false;Edit2->Text="";
//-------------------------- нажатие кнопки второго игрока ------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
f.init(StrToInt(Edit3->Text),StrToInt(Edit4->Text),clRed,2);
Edit3->Enabled=false;Edit3->Text="";
Edit4->Enabled=false;Edit4->Text="";
//------------------------------ обработчик таймера для прорисовки доски ------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
//---------------------- обработчик создания формы ------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
//---------------------------------------------------------------------------
Рис. 1. Главное окно после запуска программы.
Рис. 2. промежуточный результат работы программы.
Рис. 3. конечный результат работы программы.
Особенности реализации главных элементов разрабатываемой программы (цифровые элементы) с помощью объектно-ориентированного подхода. Применение принципа инкапсуляции для защиты данных. Конструирование классов, описание и тестирование программного продукта. курсовая работа [2,3 M], добавлен 10.05.2015
Общая характеристика объектно-ориентированного подхода в программировании, его основные свойства и принципы. Разработка программы для автоматизация деятельности кафе на основе объектно-ориентированного подхода, проектирования и реализации схемы данных. курсовая работа [1,2 M], добавлен 22.01.2012
Понятие объектно-ориентированного программирования, характеристика используемых языков. Практическая разработка средств объектно-ориентированного программирования в задачах защиты информации: программная реализация на языке С++, а также Turbo Pascal. курсовая работа [275,9 K], добавлен 22.12.2011
Особенности визуальной среды программирования Microsoft Visual Studio 2015 Enterprise. Средства объектно-ориентированного программирования. Этапы проектирования программного комплекса. Отладка и тестирование программы игры "Виселица". курсовая работа [2,4 M], добавлен 31.01.2016
Особенности разработки приложений для операционной системы с помощью императивного, структурированного, объектно-ориентированного языка программирования Delphi. Формальное начало программы. Выделение конца программного блока. Листинг и описание программы. курсовая работа [1,2 M], добавлен 04.08.2014
Особенности объектно-ориентированного проектирования. Основные понятия объектно-ориентированного подхода. Основы языка UML, варианты его использования. Диаграммы классов и взаимодействия. Разработка диаграммы прецедентов (вариантов использования). курсовая работа [1,1 M], добавлен 13.05.2014
Основные понятия объектно-ориентированного программирования, особенности описания функций и классов. Разработка программы для работы с универсальной очередью установленного типа, добавления и удаления ее элементов и вывода содержимого очереди на экран. курсовая работа [187,2 K], добавлен 27.08.2012
Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д. PPT, PPTX и PDF-файлы представлены только в архивах. Рекомендуем скачать работу .

© 2000 — 2021



Реализация игры "Жизнь", в которой необходимо захватить как можно большее пространство своим цветом дипломная работа. Программирование, компьютеры и кибернетика.
Реферат: Северная война 1700 — 1721 г.
Курсовая Работа На Тему Сущность
Первая Лабораторная Работа По Физике
Курсовая работа: Кредитные операции коммерческого банка и кредитная политика
Диссертация Мельницкая Татьяна Борисовна Бесплатно Pdf
Реферат: Развитие римской полисной морали. Скачать бесплатно и без регистрации
Контрольная Работа По Теме Сложение
Реферат: Оценка экономической и социальной эффективности управления на предприятии
Реферат: Теория Права. Скачать бесплатно и без регистрации
Реферат: Явление суффозии и карста. Скачать бесплатно и без регистрации
Реферат На Тему Ультразвуковое Исследование, Мрт И Методы Исследования Легких
Книга По Эссе Для Егэ
Реферат по теме От пражурналистики до журналистики
Работоспособность Руководителя Реферат
Жанры Полилоги Деловой Речи Реферат
Курсовая работа по теме Гражданское право: виды подсудности
Контрольная Работа Живой Организм 5 Класс
Курсовая Работа На Тему Основные Средства В Таможенном Деле
История Болезни На Тему Хронический Обструктивный Бронхит. Гормонозависимая Бронхиальная Астма. Эмфизема Легих
Курсовая Работа На Тему Советский Солдат Второй Мировой Войны
Славянская письменность - Иностранные языки и языкознание презентация
Террористический акт - Государство и право курсовая работа
Определение технологической эффективности ГРП на объекте Усть-Балыкского месторождения, пласт БС - Геология, гидрология и геодезия дипломная работа


Report Page