Розробка ігрової програми "хрестики-нулики" в текстовому режимі за допомогою середовища Visual Studio

Написання головної програми для цифрового відображення класичної гри "хрестики-нулики" у середовищі Visual Studio. Розробка алгоритму функціонування та описання призначення процедур. Технологія роботи програми: ввід даних, режими, вивід результатів.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 21.07.2017
Размер файла 223,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.Allbest.ru/

Размещено на http://www.Allbest.ru/

ЗМІСТ

Вступ

1. Аналіз завдання

2. Розробка алгоритму функціонування

3. Опис технології роботи програми - ввід даних, основні режими роботи, вивід результатів

4. Висновки

5. Перелік використаної літератури

Додаток (текст програми)

ВСТУП

Тема даного курсового проекту - „Розробка ігрової програми хрестики нулики в текстовому режимі за допомогою середовища Visual Studio”.

Метою написання курсового проекту є реалізація програми в процедурному стилі з використанням, процедур та функцій мовою C++. При виконанні завдання потрібно набути практичних навиків при програмуванні мовою C++ та зрозуміти її концепції.

Для забезпечення виконання поставленого завдання, потрібно розробити деякі процедури та функції, які б забезпечували реалізацію даного завдання.

Microsoft Visual Studio -- серія продуктів фірми Майкрософт, які включають інтегроване середовище розробки програмного забезпечення та ряд інших інструментальних засобів. Ці продукти дозволяють розробляти як консольні програми, так і програми з графічним інтерфейсом, в тому числі з підтримкою технології Windows Forms.

Вперше Visual Studio була написана в 1997 на мовах С++ та С#.

На данний момент це середовище, у різних варіаціях, підтримує всі мови програмування окрім машинної.

1. Аналіз завдання

Розробка ігрової пограми хрестики нулики в текстовому режимі за допомогою середовища Visual Studio

Для забезпечення виконання поставленого завдання, потрібно розробити процедури, а в них описати їх призначення.

Завданням даного курсового проекту є написання головної програми, що служить для цифрового відображення класичної гри «хрестики-нулики».

Яка складається з таких пунктів:

1. Панель вибору кількості гравців (1 чи 2 гравці);

2. Панель вибору рівня складності(для одиночної гри);

3. Ігрове поле;

4. Поля для вводу імен;

5. Поля для виводу перемог для кожного гравця;

6. Кнопка початку гри.

Для створення вище перечислених елементів було використано стандартний для середовища Visual Studio графічний конструктор Windows Forms.

2. Розробка алгоритму функціонування

Алгоритм - система точно сформованих правил, що визначає (задає) послідовність команд (дій, вказівок), які потрібно виконати над вихідними даними для отримання результату за скінченне число кроків.

Функція -- це іменована логічно завершена сукупність ого-лошень і операторів, призначених для виконання певної задачі

Дана програма складається з таких функцій для зовнішнього оформлення:

this->button1->Enabled = false;

this->button1->FlatAppearance->BorderSize = 2;

this->button1->Font = (gcnew System::Drawing::Font(L"Microsoft Sans

Serif", 20, System::Drawing::FontStyle::Regular,

System::Drawing::GraphicsUnit::Point,

static_cast<System::Byte>(204)));

this->button1->Location = System::Drawing::Point(31, 73);

this->button1->Margin = System::Windows::Forms::Padding(4, 4, 4, 4);

this->button1->Name = L"button1";

this->button1->Size = System::Drawing::Size(53, 49);

this->button1->TabIndex = 10;

this->button1->UseVisualStyleBackColor = true;

this>button1>Click+=gcnewSystem::EventHandler(this,&MyForm::button1

_Click);

ця функція створює 1 з 9 полів для вибору ходу

this->textBox1->BackColor = System::Drawing::SystemColors::Window;

this->textBox1->Enabled = false;

this->textBox1->Location = System::Drawing::Point(231, 107);

this->textBox1->Margin = System::Windows::Forms::Padding(4, 4, 4, 4);

this->textBox1->Multiline = true;

this->textBox1->Name = L"textBox1";

this->textBox1->Size = System::Drawing::Size(151, 24);

this->textBox1->TabIndex = 11;

ця функція створює1 з 2 полів для вводу імені гравця

this->label1->AutoSize = true;

this->label1->BackColor = System::Drawing::Color::DarkGreen;

this->label1->Font = (gcnew System::Drawing::Font(L"Microsoft Sans

Serif", 15, System::Drawing::FontStyle::Regular,

System::Drawing::GraphicsUnit::Point,

static_cast<System::Byte>(204)));

this->label1->ForeColor = System::Drawing::Color::Red;

this->label1->Location = System::Drawing::Point(224, 73);

this->label1->Margin = System::Windows::Forms::Padding(4, 0, 4, 0);

this->label1->Name = L"label1";

this->label1->Size = System::Drawing::Size(164, 29);

this->label1->TabIndex = 13;

this->label1->Text = L"nicknames 1";

ця функція створює створює над полем вводу імені надпис nickname.

this->label3->AutoSize = true;

this->label3->Font = (gcnew System::Drawing::Font(L"Microsoft Sans

Serif", 15, System::Drawing::FontStyle::Regular,

System::Drawing::GraphicsUnit::Point,

static_cast<System::Byte>(204)));

this->label3->ForeColor = System::Drawing::Color::Red;

this->label3->Location = System::Drawing::Point(16, 37);

this->label3->Margin = System::Windows::Forms::Padding(4, 0, 4, 0);

this->label3->Name = L"label3";

this->label3->Size = System::Drawing::Size(206, 29);

this->label3->TabIndex = 17;

this->label3->Text = L"кількість гравців";

ця функція створює надпис ''кількість гравців,,

this->button10->Location = System::Drawing::Point(227, 42);

this->button10->Margin = System::Windows::Forms::Padding(4, 4, 4, 4);

this->button10->Name = L"button10";

this->button10->Size = System::Drawing::Size(33, 28);

this->button10->TabIndex = 18;

this->button10->Text = L"1";

this->button10->UseVisualStyleBackColor = true;

this->button10->Click += gcnew System::EventHandler(this,

&MyForm::button10_Click);

ця функція створює 1 з 2 кнопок для вибору кількості гравців.

this->button12->BackColor = System::Drawing::Color::Red;

this->button12->Font = (gcnew System::Drawing::Font(L"Microsoft Sans

Serif", 10,

static_cast<System::Drawing::FontStyle>((System::Drawing::FontStyle::Bol

d | System::Drawing::FontStyle::Underline)),

System::Drawing::GraphicsUnit::Point, static_cast<System::Byte>(204),

true));

this->button12->Location = System::Drawing::Point(231, 209);

this->button12->Margin = System::Windows::Forms::Padding(4, 4, 4, 4);

this->button12->Name = L"button12";

this->button12->Size = System::Drawing::Size(152, 62);

this->button12->TabIndex = 20;

this->button12->Text = L"Почати гру";

this->button12->UseVisualStyleBackColor = false;

this->button12->Click += gcnew System::EventHandler(this,

&MyForm::button12_Click);

ця функція створює кнопку почати гру

this->label4->AutoSize = true;

this->label4->ForeColor = System::Drawing::Color::Red;

this->label4->Location = System::Drawing::Point(395, 87);

this->label4->Margin = System::Windows::Forms::Padding(4, 0, 4, 0);

this->label4->Name = L"label4";

this->label4->Size = System::Drawing::Size(62, 17);

this->label4->TabIndex = 22;

this->label4->Text = L"перемог";

ця функція створює надпис ''перемог,,

this->vi1->Location = System::Drawing::Point(399, 106);

this->vi1->Margin = System::Windows::Forms::Padding(4, 4, 4, 4);

this->vi1->Name = L"vi1";

this->vi1->ReadOnly = true;

this->vi1->Size = System::Drawing::Size(61, 22);

this->vi1->TabIndex = 23;

this->vi1->Text = L"0";

ця функція створую для гравця 1 поле, яке рахує кількість його перемог. Поле для другого гравця створюється по аналогії

this->textBox2->Font = (gcnew System::Drawing::Font(L"Microsoft Sans

Serif", 15, System::Drawing::FontStyle::Regular,

System::Drawing::GraphicsUnit::Point,

static_cast<System::Byte>(204)));

this->textBox2->ForeColor = System::Drawing::Color::Red;

this->textBox2->Location = System::Drawing::Point(0, 294);

this->textBox2->Margin = System::Windows::Forms::Padding(4, 0, 4, 0);

this->textBox2->Name = L"textBox2";

this->textBox2->Size = System::Drawing::Size(517, 43);

this->textBox2->TabIndex = 26;

this>textBox2>TextAlign=System::Drawing::ContentAlignment::Middle

Center;

ця функція створює поле для виводу допоміжної інформації

this->label5->AutoSize = true;

this->label5->Font = (gcnew System::Drawing::Font(L"Microsoft Sans

Serif", 12, System::Drawing::FontStyle::Regular,

System::Drawing::GraphicsUnit::Point,

static_cast<System::Byte>(204)));

this->label5->ForeColor = System::Drawing::Color::Red;

this->label5->Location = System::Drawing::Point(309, 30);

this->label5->Margin = System::Windows::Forms::Padding(4, 0, 4, 0);

this->label5->Name = L"label5";

this->label5->Size = System::Drawing::Size(176, 25);

this->label5->TabIndex = 27;

this->label5->Text = L"рівень складності";

ця функція виводить над кнопками вибору складності надпис «рівень складності»

this->radioButton1->AutoSize = true;

this->radioButton1->ForeColor =

System::Drawing::Color::FromArgb(static_cast<System::Int32>(static_cast

<System::Byte>(0)),

static_cast<System::Int32>(static_cast<System::Byte>(0)),

static_cast<System::Int32>(static_cast<System::Byte>(0)),

static_cast<System::Int32>(static_cast<System::Byte>(1)));

this->radioButton1->Location = System::Drawing::Point(345, 58);

this->radioButton1->Margin = System::Windows::Forms::Padding(4, 4, 4,

4);

this->radioButton1->Name = L"radioButton1";

this->radioButton1->Size = System::Drawing::Size(37, 21);

this->radioButton1->TabIndex = 28;

this->radioButton1->Text = L"1";

this->radioButton1->UseVisualStyleBackColor = true;

this->radioButton1->CheckedChanged +=

gcnewSystem::EventHandler(this,

&MyForm::radioButton1_CheckedChanged);

цифровий програма хрестик нулик

ця функція створює кнопку для вибору рівня складності. Друга кнопка створюється по аналогії

this->AutoScaleDimensions = System::Drawing::SizeF(8, 16);

this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;

this->BackColor = System::Drawing::Color::DarkGreen;

this->ClientSize = System::Drawing::Size(507, 337);

this->Controls->Add(this->radioButton3);

this->Controls->Add(this->radioButton1);

this->Controls->Add(this->label5);

this->Controls->Add(this->textBox2);

this->Controls->Add(this->vi2);

this->Controls->Add(this->vi1);

this->Controls->Add(this->label4);

this->Controls->Add(this->button12);

this->Controls->Add(this->button11);

this->Controls->Add(this->button10);

this->Controls->Add(this->label3);

this->Controls->Add(this->label2);

this->Controls->Add(this->textBox3);

this->Controls->Add(this->label1);

this->Controls->Add(this->textBox1);

this->Controls->Add(this->button1);

this->Controls->Add(this->button9);

this->Controls->Add(this->button8);

this->Controls->Add(this->button7);

this->Controls->Add(this->button6);

this->Controls->Add(this->button5);

this->Controls->Add(this->button4);

this->Controls->Add(this->button3);

this->Controls->Add(this->button2);

this->Controls->Add(this->menuStrip1);

this->MainMenuStrip = this->menuStrip1;

this->Margin = System::Windows::Forms::Padding(4, 4, 4, 4);

this->MaximizeBox = false;

this->Name = L"MyForm";

this->ShowInTaskbar = false;

this->menuStrip1->ResumeLayout(false);

this->menuStrip1->PerformLayout();

this->ResumeLayout(false);

this->PerformLayout();

ця функція створює зовнішнє оформлення гри, підключаючи до себе всі попередні

void pobeda1(){

k1 = (button1->Text == "X" || button1->Text == "0");

k2 = (button5->Text == "X" || button5->Text == "0");

k3 = (button9->Text == "X" || button9->Text == "0");

if (((button1->Text == button2->Text && button2->Text == button3->Text

&& k1) || (button4->Text == button5->Text && button5->Text == button6-

>Text && k2) || (button7->Text == button8->Text && button8->Text ==

button9->Text && k3)) || ///провірка чм рядок не є переможним

((button3->Text == button5->Text && button5->Text == button7->Text

&& k2) || (button1->Text == button5->Text && button5->Text == button9-

>Text && k1)) || ///перевірка чи діагональ є переможною

((button1->Text == button4->Text && button4->Text == button7->Text

&& k1) || (button2->Text == button5->Text && button5->Text == button8-

>Text && k2) || (button3->Text == button6->Text && button6->Text ==

button9->Text && k3)))

{

if (n == -1){

vi10++;

textBox2->Text = "Переміг " + textBox1->Text;

vi1->Text = Convert::ToString(vi10);

daktivator_pola();

perem = 1;

}

else{

vi20++;

textBox2->Text = "Переміг " + textBox3->Text;

vi2->Text = Convert::ToString(vi20);

daktivator_pola();

perem = 1;

if (knopka == 1){ n *= (-1); }

}

}

l++;

if (l == 8){

textBox2->Text = "Нічия";

daktivator_pola();

perem = 1;

}

}

перевірка на перемогу

void pobeda(){

pobeda1();

n *= (-1);

if (perem == 0){

n == (-1) ? textBox2->Text = "Ходить " + textBox1->Text : textBox2-

>Text = "Ходить " + textBox3->Text;

if (knopka == 1 && n == 1){

Artificial_Intelligence();

pobeda1();

n *= (-1);

ця функція виводить ім'я гравця, який повинен ходити

private: System::Void button1_Click(System::Object^ sender,

System::EventArgs^ e) {

if (button1->Text != "X")

if (button1->Text != "0"){

if (n == 1){

button1->Text = "0";

}

else {

button1->Text = "X";

}

button1->Enabled = false;

pobeda();

}

}

ця функція вибирає який знак ставати

3. Опис технології роботи програми - ввід даних, основні режими роботи, вивід результатів

Ввід даних. Ввід даних проводиться безпосередньо у полях для вводу імен гравців після вибору режиму гри (якщо вибрано одиночний режим гри , то друге поле заповнюється автоматично).

Основні режими роботи. Є два режими роботи програми: одиночний та кооперативний (для двох гравців). Якщо користувач вибирає одиночний режим, то після цього можна вибрати рівень складності(перший або другий) і почати гру проти «штучного інтелекту».

Вивід результатів. Вивід поточного результату здійснюється в спеціальні поля для кожного з гравців. Після закриття програми, або розпочинання нової гри вони анулюються.

ВИСНОВОК

На даній курсовій я поглибив свої знання у використанні мови програмування С++. Також я дізнався про багато функцій які я до цього не зустрічав.

Сьогодні в ХХІ ст. в епоху комп'ютеризації, програмування відіграє важливу роль. Оскільки комп'ютеризованим є практично все зараз все частіше можна зустріти розумні будинки. І багато програм використовують люди які не мають відношення до програмування. Тому дану програму можуть використовувати люди будь-якого віку, незалежно від знання програмування.

Дана програма була створена для того щоб гра шашки була доступнішою для простих користувачів, і ви мали можливість зіграти шашки в будь якому місці де буде ваш пристрій (ноутбук, планшет, комп'ютер).

ПЕРЕЛІК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ

1. Доусон Майкл «Вивчаємо C ++ через програмування ігор» 2016рік, 352ст.

Размещено на Allbest.ru

...

Подобные документы

  • Призначення гри в хрестики-нулики та програмне забезпечення, необхідне для її функціонування. Написання програми в середовищі Borland C++ Builder. Способи виклику програми. Характер вхідних та вихідних даних. Алгоритм та тестування роботи програми.

    курсовая работа [321,6 K], добавлен 01.04.2016

  • Практична реалізація гри в "хрестики-нулики" в середовищі програмування Turbo C++ версії 3.0. Моделювання ігрового поля квадратною матрицею третього порядку. Процедури програми гри. Створення програми Tic_Tac, що дозволяє людині грати у гру з комп’ютером.

    курсовая работа [145,8 K], добавлен 23.04.2010

  • Розробка таблиці для збереження даних у текстовому файлі про фільми в середовищі програмування Visual Studio C++ та їх сортування за країною виробництва. Реалізація таблиці за допомогою компонента dataGridView. Опис і контрольний приклад роботи програми.

    курсовая работа [1,4 M], добавлен 02.11.2016

  • Розробка та схема алгоритму проектованої гри. Особливості мови програмування та середовища "Microsoft Visual Studio C++ 2008 Express Edition". Лістинг програми та загальний опис її роботи, аналіз отриманих результатів та оцінка практичної ефективності.

    курсовая работа [762,8 K], добавлен 03.05.2015

  • Розробка ігрового додатку за технологією IDE Visual Studio та WPF. Опис вхідної та вихідної інформації. Назва та призначення модулів програми. Основні поля класу, необхідні для ігрової логіки. Блок-схема алгоритму гри. Інструкція з експлуатації системи.

    курсовая работа [1,3 M], добавлен 02.06.2015

  • Методи та елементи, що використовуються для реалізації алгоритму програми. Структура додатку з описом функцій складових частин і зв'язків між ними. Типи комп'ютерів та пристроїв, що використовуються при роботі програми. Організація вхідних даних.

    курсовая работа [363,2 K], добавлен 01.04.2016

  • Розробка програми для вирішення графічної задачі. При вирішенні задачі необхідно cтворювати програму у середовищі програмування Turbo Pascal. Розробка алгоритму функціонування програми і надання блок-схеми алгоритму. Демонстрація роботи програми.

    курсовая работа [1,3 M], добавлен 23.06.2010

  • Базові конструкції мови програмування С++ з позиції об’єктного програмування. Розробка програми для автоматизації обліку товарів на складі магазину парфумів. Реалізація програми в середовищі Visual Studio C++. Розробка інтерфейсу і тестування програми.

    дипломная работа [907,9 K], добавлен 01.04.2016

  • Користування стандартним та форматованим вводом-виводом. Використання вводу та виводу аргументу. Розробка лінійних програм. Програми з розгалуженням, циклічні програми з регулярною змінною аргументу. Використання вказівників для роботи з масивами даних.

    курсовая работа [4,6 M], добавлен 27.02.2014

  • Призначення ігрової програми "Змійка" для розвитку уваги та логічного мислення гравців. Розробка програми в середовищі C++ Builder 6, її функціонування в ОС Windows. Опис алгоритму та основних функцій програми. Основні переваги та недоліки мови С++.

    реферат [1,7 M], добавлен 17.12.2014

  • Класифікація існуючих інформаційних систем. Особливості створення інформаційної системи роботи меблевого магазину. Розробка програми, що забезпечує роботу торгівельної организації, в середовищі Microsoft Visual Studio 2008 на мові програмування Vb.NEt.

    курсовая работа [829,5 K], добавлен 12.12.2013

  • Призначення драйверів та порядок роботи з драйверами в MS-DOS. Розробка драйверів консолі. Структура драйвера та призначення компонентів. Розробка структури алгоритму, програми налагодження драйвера. Опис змінних програми та роботи модулів програми.

    курсовая работа [1,0 M], добавлен 22.06.2012

  • Розробка програми, яка розраховує параметри магнітних ланцюгів генератора постійного струму і асинхронного двигуна, з можливістю імпорту результатів розрахунків в документ Word, а також передбачена можливість збереження результатів в текстовому файлі.

    курсовая работа [1,2 M], добавлен 17.04.2009

  • Відомості про мови програмування та методи програмування. Системні вимоги програми. Керівництво програміста та керівництво користувача. Використання консольного додатку візуального середовища Visual Studio 2010. Запуск програми "Толковый словарь".

    курсовая работа [791,1 K], добавлен 18.01.2015

  • Історія створення мови С#. Аналіз алгоритмів кодування даних. Розробка системи в середовищі Visual Studio 2008 Express. Схема шифрування алгоритму DES. Дослідження алгоритму RC2. Приклади хешів RIPEMD-160. Програмна реалізація основних процедур системи.

    дипломная работа [1,7 M], добавлен 25.10.2012

  • Оптимізація перевезення продуктів із пунктів відправлення до пунктів споживання. Зниження транспортних витрат, розробка і використання оптимальних схем вантажних потоків. Архітектура програмного забезпечення в середовищі Microsoft Visual Studio 2010.

    курсовая работа [675,3 K], добавлен 10.03.2013

  • Послідовність створення бази даних автопарку. Визначення об'єктів та класів і зв’язків між ними. Конструктори та деструктори, успадкування класів. Реалізація програми в середовищі Visual Studio C++, її тестування. Побудова об’єктної моделі додатку.

    курсовая работа [529,0 K], добавлен 25.01.2016

  • Концепції об'єктно-орієнтованого програмування. Конструктори та деструктори. Успадкування класів. Побудова об’єктної моделі. Визначення об'єктів та класів і зв’язків між ними. Реалізація програми в середовищі Visual Studio C++. Інтерфейс програми.

    курсовая работа [743,7 K], добавлен 25.01.2016

  • Створення програми для роботи з веб-камерою з автоматичним визначенням встановленої камери на комп'ютері. Характеристика апаратної конфігурації програми. Опис мови і середовища програмування. Розробка алгоритму, інструкції для програміста та користувача.

    курсовая работа [1,2 M], добавлен 26.07.2013

  • Принципи роботи команд мікросхеми 24LC08: читання, запису даних. Опис і блок-схеми програми і підпрограм, що обслуговує пристрій. Вибір середовища програмування і розробка програми, яка забезпечує можливість демонстрації команд. Проведення тестування.

    курсовая работа [114,2 K], добавлен 08.12.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.