Розробка ігрової програми "хрестики-нулики" в текстовому режимі за допомогою середовища 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