Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсова А та П.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
442.02 Кб
Скачать

2 Розробка технічного завдання

У даному програмному проекті реалізується модель багатосторонньої дуелі. Дана програма повина відповідати наступним критеріям:

  1. Кількість дуелянтів повина бути не менше трьох;

  2. В ході програми з допомогою жеребу повинен бути сформований порядок стрільби дуелянтів.

  3. Дуелянти повині розташовуються на однаковій відстані один від одного.

  4. Вони обмінюються пострілами почерзі, визначеній жеребом, поки не залишиться лише один дуелянт.

  5. Черговий стріляючий може стріляти в будь якого із інших.

  6. Потрібно сформувати моделы трьох категорій дуелянтів:

  • С – снайпер і ніколи не промахується з даної дистанції;

  • Б – влучає лише в 80%;

  • Д – приблизно в 50% випадків.

  1. Потрібно розробити найкращу стратегію гри для кожного із учасників.

  2. Програма повинна мати меню, мінімальний склад якого такий:

  • Робота програми;

  • Відомості про програму (інструкція);

  • Відомості про автора;

  • Вихід.

  1. Всі надписи на екрані повинні бути державною мовою.

  2. У роботі передбачено створення власних класів та бібліотек.

3 Розробка стратегії гри для кожної категорії учасників

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

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

private void completion_shooting()

{

bullet[A, 0] = 0;

if (type_shot == "killed")

people[B, 0] = 0;

if (type_shot == "live")

people[B, 0] = 1;

if (type_shot == "killed")

DlReport.GridReport.Rows.Add(nameColor[list_people[0]] + " знищив " + nameColor[strongest_man]);

if (type_shot == "live")

DlReport.GridReport.Rows.Add(nameColor[list_people[0]] + " не попав в " + nameColor[strongest_man]);

timerShot.Enabled = false;

upgrade_current_point();

List<int> All_people = new List<int>();

for (int i = 0; i < people.GetLength(0); i++)

if (people[i, 0] == 1) All_people.Add(i);

if (All_people.Count == 1)

{

CptInfo.Visible = true;

DlReport.GridReport.Rows.Add("Гра завершена, переможець - \"" + nameColor[list_people[0]] + "\"");

CptInfo.Text = "Гра завершена, переможець - \"" + nameColor[list_people[0]] + "\"";

}

}

Даний фрагмент коду описує дії гравців в залежності від тої ситуації, яка склалася в ході жеребкування. Стратегі кожного з гравців, полягає у тому, що в будь якому випадку постріл потрібно виконувати по гравцю який має менший шанс на промах. Тобто у випадку коли жереб випав так, що першим стріляє гравець із імовірністю на враження 50% він буде виконувати постріл по опоненту з шансов у 100% враховуючи, що гравець із шансом 80% може схибити при свому пострілі.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]