
- •Перелік умовних скорочень
- •Аналіз предметної області. Вибір компонентної технології
- •1.1 Основні концепції компонентної розробки прикладних задач
- •1.2 Модель com/dcom
- •1.3 Модель Java Beans
- •1.4 Технологія розподіленого програмування corba
- •1.5 Технологія .Net
- •2 Розробка технічного завдання
- •3 Розробка стратегії гри для кожної категорії учасників
- •4 Створення об'єктної моделі системи
- •5 Розробка власного компоненту
- •6 Програмна реалізація спроектованої системи
- •6.1 Опис взаємодії гри з користувачем
- •6.2 Загальні відомості про програму
- •Висновки
- •Список літератури
- •Додаток а
- •Додаток б
- •Затверджую
- •Додаток в
- •Додаток г
- •Додаток д
2 Розробка технічного завдання
У даному програмному проекті реалізується модель багатосторонньої дуелі. Дана програма повина відповідати наступним критеріям:
Кількість дуелянтів повина бути не менше трьох;
В ході програми з допомогою жеребу повинен бути сформований порядок стрільби дуелянтів.
Дуелянти повині розташовуються на однаковій відстані один від одного.
Вони обмінюються пострілами почерзі, визначеній жеребом, поки не залишиться лише один дуелянт.
Черговий стріляючий може стріляти в будь якого із інших.
Потрібно сформувати моделы трьох категорій дуелянтів:
С – снайпер і ніколи не промахується з даної дистанції;
Б – влучає лише в 80%;
Д – приблизно в 50% випадків.
Потрібно розробити найкращу стратегію гри для кожного із учасників.
Програма повинна мати меню, мінімальний склад якого такий:
Робота програми;
Відомості про програму (інструкція);
Відомості про автора;
Вихід.
Всі надписи на екрані повинні бути державною мовою.
У роботі передбачено створення власних класів та бібліотек.
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% може схибити при свому пострілі.