88970

Програмна реалізація алгоритму гри «Багатостороння дуель»

Курсовая

Информатика, кибернетика и программирование

Мета інформаційної технології, як і сфера її застосування, може бути найрізноманітнішою: автоматизація матеріального виробництва, проведення наукового експерименту, створення інформаційного продукту тощо. Інформаційні технології впроваджуються на багатьох підприємствах, організаціях та різних органах влади. Розроблені концепції впровадження ІТ в наукові заклади, фабрики.

Украинкский

2015-05-06

2.4 MB

1 чел.

Аnnotation

The result of course design was develop a program which simulates a game “Multilateral duel”.

The program written in an object-oriented language C + + and with using the programming environmentVisual Studio C++ 2008 Express Edition’, Microsoft corporation.


ЗМІСТ

ПЕРЕЛІК СКОРОЧЕНЬ….…………………………………………………………

2

ВСТУП…………………………………………………………………………….....

3

1 Постановка задачі…………..…………………………………………..................

4

2 Розробка алгоритму гри «Багатостороння дуель»………………………….......

5

3 Схема алгоритму гри «Багатостороння дуель»..………………………………..

7

4 Особливості мови С++……………………………………………………………

8

5 Особливості середовища «Microsoft Visual Studio C++ 2008 Express Edition».

11

6 Схема програмної реалізації алгоритму гри «Багатостороння дуель»……......

13

7 Пояснення щодо змінних в схемі програмної реалізації алгоритму гри……...

24

8 Лістинг програми…………………………….……………………………………

25

9 Опис роботи програми……………………………………………………………

57

10 Аналіз результатів..……………………………………………………………...

62

ВИСНОВОК………………………………………..………………………………..

63

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

64

Додаток А Інструкція користувача………………………………………………...

65

Додаток Б Системні вимоги………………………………………………………..

66


ПЕРЕЛІК СКОРОЧЕННЬ

ПК

Персональний комп’ютер.

ПЗ

Програмне забезпечення.

GUI

Graphic User Interface,  графічний інтерфейс користувача.

UML

Unified Modeling Language, мова моделювання ПЗ.

ЙП

Ймовірність попадання.

С

Сем.

Б

Білл.

Д

Джон.

Ж

Жертва.

ЙВ

Ймовірність виживання.

Ст

Стрілець

ОС

Оптимальна стратегія

ГВЧ

Генератор випадкових чисел


ВСТУП

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

Інформаційна технологія — це технологія організації роботи інформаційної системи або взаємодії кількох інформаційних систем.

Мета інформаційної технології, як і сфера її застосування, може бути найрізноманітнішою: автоматизація матеріального виробництва, проведення наукового експерименту, створення інформаційного продукту тощо. Інформаційні технології впроваджуються на багатьох підприємствах, організаціях та різних органах влади. Розроблені концепції впровадження ІТ в наукові заклади, фабрики.

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

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

1 Постановка задачі

Тема 23. Багатостороння дуель

    Програму реалізує модель багатосторонньої дуелі. Нижче подано її опис при трьох дуелянтах.

    Сем, Білл і Джон (Нижче позначені буквами С,Б,Д) домовились битися на дуелі втрьох за такими правилами:

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

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

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

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

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

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

  •  Авторська заставка
  •  Робота програми
  •  Відомості про програму (інструкція)
  •  Вихід

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

2 Розробка алгоритму гри «Багатостороння дуель»

В розробленій програмі було реалізовано алгоритм, що складається з таких кроків:

  1.  Жеребкування:
  2.  Вибір першого дуелянта:
  3.  Оголошується генератор випадкових чилес (1-3). Кожному числу відповідає певний дуелянт.
  4.  В результаті відмічання гравцем одного з трьох RadioButton-ів виконується одна з трьох умов (змінна приймає значення: 1/2/3).
  5.  В результаті настиснення кнопки «Обрати 1-ого» відповідно до числа, що було присвоєно змінній в п.2) відображається ім’я першого дуелянта.
  6.  Вибір другого дуелянта:
  7.  Оголошується генератор випадкових чилес (1-2). Кожному числу відповідає певний дуелянт (окрім обраного в п.а)).
  8.  В результаті відмічання гравцем одного з двох RadioButton-ів виконується одна з двох умов (змінна приймає значення: 1/2).
  9.  В результаті настиснення кнопки «Обрати 2-ого» відповідно до числа, що було присвоєно змінній в п.2) відображається ім’я другого дуелянта.
  10.  Третім оголошується дуелянт, якого не обрали в п.а) та п.b).
  11.  Дуель:
  12.  Дуелянти розміщуються на своїх позиціях після натиснення кнопки «На позиції!»:
  13.  Їх зображення та імена розміщуюються у вершинах правильного трикутника завдяки тому, що в залежності від порядку стрільби кожному елементу PictureBox із зображенням дуелянта присвоюються відповідні координати на формі, а елементам Label (що вже розміщенні у вершинах) – імена дуелянтів.
  14.  У верхній правій частині вікна відображаються стратегії деулянта, що сріляє прешим. Оптиамальна стратегія оберається та відмічається зважаючи на ймовірності виживання дуелянта при виборі кожної стратегії (розрахунок ймовірностей описується нижче в пункті «2.5 Опис роботи програми»)
  15.  Дуелянти перестрілюютсья:
  16.  Під час натиснення кнопки «1-ша перестрілка»
    1.  Виконується одна з 3-ох умов щодо імені першого дуелянта;
    2.  Оголошується генератор випадкових чисел від 1 до 100;
    3.  В залежності від ймовірності попадання дуелянта ставиться умова <ЙП (>ЙП) і при її виконанні жертва вмирає (виживає і стріляє у відповідь);
      1.  Якщо дуелянт влучив у ціль:
        1.  Алгоритм повторюється для дуелянта, що стріляє наступним (якщо наступний і є жетва даного стрільця, то алгоритм повторюється для наступного після жерви учасника дуелі);
        2.  Елп.емент PictureBox із зображенням жертви замінюється на елемент із «перекресленим» зображенням жертви в наслідок присвоювання останньому координат першого елемента;
        3.  Елементу із іменем жетви присвоються напис «ім’я жертви мертвий».
      2.  Якщо дуелянт промахнувся, то для його жерви виконуються п.3) – п.1.4.2) (тільки тепер відповіді на невлучний постріл не буде, а виконається п.2)).
  17.  Під час натиснення кнопки «2-га перестрілка»:
    1.  Виконається одна з 10-и умов щодо ситуації на «полі дуелю» (хто з учасників застрелений, а хто живий);
    2.  Для другого дуелянта повторюється алгоритм п.1.2) – п.1.3.2) (з врахуванням умови: якщо застрелено двоє дуелянтів, то елементу Label11 присвоюється значення «Дуель закінчено!»; а якщо застрелено тільки одного дуелянта – виконується п.3)).
  18.  Під час натиснення кнопки «3-тя перестрілка»:
    1.  Виконується одна з 4-ох умов щодо ситуації на «полі дуелю»;
    2.  Для третього дуелянта повторюється алгоритм п.1.2) – п.1.3.2) (з врахуванням умови: якщо застрелено двоє дуелянтів, то елементу Label11 присвоюється значення «Дуель закінчено!»; а якщо застрелено тільки одного дуелянта – виконується п.1)).

Схема алгоритму гри «Багатостороння дуель» представлена на рис.1.

Рисунок 1 - Схема алгоритму гри «Багатостороння дуель»

4 Особливості мови C++

    Відповідно до індивідуального завдання на курсову роботу на тему «Розробка ігрової програми ‘Багатостороння дуель’» розглянемо особливості С++.

    C++ – проста, об’єктно-орієнтована, інтерпретована, надійна, безпечна, архітектурно-нейтральна, переносна, високоефективна багатопотокова і динамічно-орієнтована мова. Цей набір слів достатньо точно описує мову С++. Розглянемо кожне з них .

    O Безпечність. WorldWideWeb висунула C++ на передній план програмування, і C++, в свою чергу, сильно вплинула і навіть змінила обличчя Internet, розширивши спектр об’єктів, які можуть розповсюджуватись у кібер-просторі. Програми нової форми – аплети –завантажуються з віддаленого сервера і можуть запускатися динамічно, тобто без участі користувача. До появи С++ такий підхід був неприпустимий з міркувань безпеки та переміщуваності. В архітектурі аплетів зроблено ряд штучних обмежень, які роблять їх цілком безпечними. Перш за все, С++ є інтерпретованою мовою і простір ресурсів С++-програми обмежений так званою віртуальною C++ машиною (VJM), яка може контролювати поведінку програми і захищати систему від побічних ефектів, які можуть виникати з вини аплета. Крім того, в мові С++ є додаткові обмеження, які не дозволять аплету стати «троянським конем». Зокрема, C++ аплет не може отримати доступ до локального жорсткого диску. При такій спробі генерується виключна ситуація.

    O Ефективність. Оскільки аплети С++ інтерпретуються, а не компілюються, то їх виконання на різних платформах значно полегшується. В цьому випадку достатньо створити для кожної платформи виконуючу С++-систему. Якщо існує така система для даної операційної системи, то будь-яка С++-програма може виконуватись в даному середовищі без додаткової компіляції на цій платформі. Проте С++ не є інтерпретованою мовою в чистому розумінні. Програма на С++ компілюється. Результатом роботи компілятора С++ є байт-код (bytecode). В такий спосіб витрати на інтерпретацію зводяться до мінімуму, оскільки байт-код вже є оптимізованим, і досягається досить висока продуктивність С++-програм .

    O Об’єктно-орієнтована спрямованість. С++ успадкувала потужний механізм об’єктно-орієнтованого програмування. Оскільки С++ розроблювався «на пустому місці», тобто не було потреби забезпечувати сумісність з попередніми версіями, розробники мали повну свободу мислення. В результаті був сформований ясний і прагматичний підхід до об’єктів. Вільно переймаючи ідеї, які реалізовувалися протягом останніх десятирічь, мові С++ вдалося знайти рівновагу між парадигмою «все є об’єктом» і прагматичним підходом. Об’єктна модель С++ проста і легко розширюється, в той час як просі типи (як цілі) зберігаються як дані, що не є об’єктами, дозволяють значно підвищити швидкість при їх обробці .

    O Стійкість до помилок. Багатоплатформеність середовища Web висуває надзвичайно високі вимоги до надійності програм. Як наслідок, при розробці С++ пріоритет був відданий можливості створення стійких до помилок програм. С++ звільняє програміста від хвилювань з приводу багатьох поширених причин, які викликають помилки програмування. Як вже згадувалося, С++ є строго типізованою мовою програмування. Ще виконуюча система С++ бере на себе «прибирання сміття», тобто автоматично звільняє пам’ять, яка була розподілена динамічно. Звичайно, це дещо знижує ефективність коду, але запобігає типових помилок, коли програміст забуває звільнити виділену пам’ять, або, навпаки, звільняє пам’ять, яка ще використовується. С++ підтримує об’єктно-орієнтовану обробку виключних ситуацій подібно до С. Але на відміну від С в С++ обробка виключних ситуацій є обов’язковою. Тобто неможливо скомпілювати програму, яка відкриває файл, не обробивши можливі помилки типу «файл не знайдено», які виникають при цьому. Добре написана С++-програма може сама обробляти всі помилки часу виконання.

    O Підтримка багато поточності. С++ розроблялася з орієнтацією на вимоги до створення інтерактивних програм, які працюють з мережею. З цією метою С++ підтримує багатопоточне  програмування, яке дозволяє легко розробляти програми, що виконують багато процесів одночасно. Виконання С++-програми засновано на елегантному, але в той самий час високоорганізованому рішенні багатопроцесорної синхронізації, яке дозволяє вам створювати високоефективні інтерактивні системи .

    O Незалежність від архітектури. Основним питанням для розробників С++ стало питання довготривалості та переміщуваності. Одна з головних проблем, із  якою зустрілися програмісти, полягала в відсутності гарантій того, що написана сьогодні програма завтра працюватиме з тим же успіхом, причому на тій самій машині. Оновлення операційної системи, модернізація процесора та зміна об’єму оперативної пам’яті можуть призвести до збою програми. Розробники С++ прагнули змінити цю ситуацію і прийняли декілька важких рішень відносно мови С++ та процесу виконання С++-програми. Їх мета полягала в тому, щоб «одного разу написане працювало всюди, в будь-який час і завжди». Внаслідок цього С++ є системою, яка легко розширюється за рахунок створення нових стандартних класів та бібліотек.

    O Розподіленість. Мова С++ призначена для створення програм, які працюють в розподіленому середовищі Internet на базі протоколів TCP/IP. Насправді доступ до ресурсів за допомогою URL відрізняється від доступу к файлу. Крім того в С++ наявний засіб передачі повідомлень в межах внутрішнього адресного простору. Це дозволяє забезпечити віддалене виконання процедур. Ці інтерфейси включені у пакет RMI (remotemethodinvocation). Цей засіб привносить високий рівень абстракції в програмування для середовища клієнт/сервер.

    С++-програми несуть у собі значний обсяг інформації про типи часу виконання (run-timetypeinformation), яка використовується для дозволу доступу до об’єктів під час роботи програми. Це дозволяє забезпечити безпечну та оптимальну динамічну компоновку. В такий спосіб досягається захищеність середовища, виконання аплетів,  доступність інструментарію та ефективність розробок.

    Перспективи застосування. Програми на С++ можуть знайти різне застосування в навчальному процесі: інтерактивні навчаючі програми (HTML в поєднанні з С++), програми-тести і особливо ділові ігри. Додаткові переваги можна отримати, якщо писати ці програми у вигляді аплетів, які ініціалізуються з Web сервера внутрішньої мережі Intranet. В такий спосіб можна уникнути інсталяції програми на багатьох комп’ютерах - користувач просто запускає Web-браузер і завантажує потрібну сторінку. Для тестових програм, написаних на С++ з використанням архітектури клієнт/сервер можна підвищити ступінь конфіденційності. База даних тестових запитань знаходиться на сервері в каталозі з обмеженим доступом. Коли користувач загружає аплет, він (аплет) автоматично підключається до програми-сервера, яка виконується на сервері і може видавати запитання з бази даних у відповідь на запит користувача. В такий спосіб унеможливлюється викрадення бази даних, за умови відсутності фізичного доступу до серверу у користувачів.

    Таким чином С++ технологія є дуже перспективною для застосування в  розробках некомерційного спрямування. Обмеженість інструментарію С++ не проявляється в проектах невеликого обсягу і легко компенсується простотою програмування розподілених програм, які працюють з мережею Internet/Intranet. Переносимість С++ програм спрощує обмін навчальними програмами між різними навчальними закладами, відкриває можливість сумісних розробок та створення стандартних навчальних програм, наприклад для шкіл.

Крім того, дуже привабливою з точки зору ефективності, залишається ідея втілення в навчальних закладах мережевих комп’ютерів (NetworkComputers), які працюють на базі С++,  замість звичних персональних комп’ютерів (PersonalComputers). На останок можна згадати про те що С++ добре підтримує національні абетки, оскільки розроблялася для інтернаціональної мережі Internet. Ця обставина теж є важливою рисою в умовах України . [1,2]

5 Особливості середовища Microsoft Visual Studio C++ 2008 Express Edition

    Visual Studio C++ 2008 Express Edition — вільне модульне інтегроване середовище розробки програмного забезпечення. Розробляється і підтримується Visual Studio С++ 2008 Foundation.

    Microsoft Visual Studio C++ 2008 Express Edition являє собою фреймворк для розробки модульних кросс-платформових застосунків із низкою особливостей:

  •  можливість розробки ПЗ на багатьох мовах програмування (рідною є С++);
  •  крос-платформена;
  •  модульна, призначена для подальшого розширення незалежним розробниками;
  •  з відкритим вихідним кодом;
  •  розробляється і підтримується фондом Visual Studio 2008, куди входять такі постачальники ПЗ, як IBM, Oracle, Borland.

    Спочатку проект розроблявся в IBM як корпоративний стандарт IDE, настановлений на розробки на багатьох мовах під платформи IBM. Потім проект було перейменовано на Microsoft Visual Studio C++ 2008 Express Edition і надано для подальшого розвитку спільноті .

    Microsoft Visual Studio C++ 2008 Express Edition, насамперед, повноцінна С++, націлена на групову розробку, має засоби роботи з системами контролю версій (підтримка CVS входить у поставку Microsoft Visual Studio C++ 2008 Express Edition, активно розвиваються кілька варіантів SVN модулів, існує підтримка VSS та інших). З огляду на безкоштовність, у багатьох організаціях Microsoft Visual Studio C++ 2008 Express Edition — корпоративний стандарт для розробки ПЗ на С++.

    Друге призначення Microsoft Visual Studio C++ 2008 Express Edition — служити платформою для нових розширень. Такими стали C/C++ Development Tools (CDT), розроблювані інженерами QNX разом із IBM, засоби для підтримки інших мов різних розробників.

    Microsoft Visual Studio C++ 2008 Express Edition написана на С++, тому є платформо-незалежним продуктом, крім бібліотеки графічного інтерфейсу SWT, яка розробляється окремо для більшості поширених платформ. Бібліотека SWT використовує графічні засоби платформи (ОС), що забезпечує швидкість і звичний зовнішній вигляд інтерфейсу користувача. [3,4,5]

   Схема програмної реалізації алгоритму гри «Багатостороння дуель» на мові програмування С++ представлена на рис.2

7 Пояснення щодо змінних в схемі програмної реалізації алгоритму гри «Багатостороння дуель»

Змінна

Пояснення

a

Змінна для генератору випадкових чисел

a1

Змінна, що приймає значення «Сем»

b1

Змінна, що приймає значення «Білл»

c1

Змінна, що приймає значення «Джон»

srand()

Функція часового генератору чисел

label3

Напис, що приймає значення «Ім’я дуелянта, що стріляє першим»

radioButton1

Елементи «RadioButton», що імітують жеребкування

radioButton2

radioButton3

radioButton4

radioButton5

k

Допоміжна змінна для процесу жеребкування

label6

Напис, що приймає значення «Ім’я дуелянта, що стріляє другим»

label7

Напис, що приймає значення «Ім’я дуелянта, що стріляє третім»

pictureBox2

Зображення Сема

pictureBox3

Зображення Білла

pictureBox4

Зображення Джона

pictureBox5

Зображення мертвого Сема

pictureBox6

Зображення мертвого Білла

pictureBox7

Зображення мертвого Джона

label13

Елементи для відображення стратегії та ймовірностей виживання

label14

label15

label16

label8

Елементи для відображення статусу дуелянтів (Сем/Білл/Джон/ Сем мертвий/Білл мертвий /Джон мертвий)

label9

label10

label11

Індикатор завершення дуелі

    

Програмна реалізація алгоритму гри «Багатостороння дуель» представлена таким лістингом програми:

  1.  Заголовні файли:
  •  Form1.h (Меню)

#pragma once

#include "Form2.h"

#include "Form3.h"

namespace Багатостороннядуель16 {

 using namespace System;

 using namespace System::ComponentModel;

 using namespace System::Collections;

 using namespace System::Windows::Forms;

 using namespace System::Data;

 using namespace System::Drawing;

 /// <summary>

 /// </summary>

 public ref class Form1 : public System::Windows::Forms::Form

{

 public:

 Form1(void)

 {

  InitializeComponent();

 }

 protected:

 /// <summary>

 /// </summary>

 ~Form1()

 {

  if (components)

  {

   delete components;

  }

 }

 private: System::Windows::Forms::Button^  button1;

 protected:

 private: System::Windows::Forms::Button^  button2;

 private: System::Windows::Forms::Button^  button3;

 private: System::Windows::Forms::PictureBox^  pictureBox1;

 private: System::Windows::Forms::PictureBox^  pictureBox2;

 private:

 /// <summary>

 /// </summary>

 System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code

 /// <summary>

 /// </summary>

 void InitializeComponent(void)

 {

  System::ComponentModel::ComponentResourceManager^  resources = (gcnew System::ComponentModel::ComponentResourceManager(Form1::typeid));

  this->button1 = (gcnew System::Windows::Forms::Button());

  this->button2 = (gcnew System::Windows::Forms::Button());

  this->button3 = (gcnew System::Windows::Forms::Button());

  this->pictureBox1 = (gcnew System::Windows::Forms::PictureBox());

  this->pictureBox2 = (gcnew System::Windows::Forms::PictureBox());

  (cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->pictureBox1))->BeginInit();

  (cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->pictureBox2))->BeginInit();

  this->SuspendLayout();

  //

  // button1

  //

  this->button1->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

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

  this->button1->Location = System::Drawing::Point(560, 12);

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

  this->button1->Size = System::Drawing::Size(112, 30);

  this->button1->TabIndex = 0;

  this->button1->Text = L"Гра!";

  this->button1->UseVisualStyleBackColor = true;

  this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);

  //

  // button2

  //

  this->button2->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

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

  this->button2->Location = System::Drawing::Point(559, 48);

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

  this->button2->Size = System::Drawing::Size(113, 44);

  this->button2->TabIndex = 1;

  this->button2->Text = L"Відомості про програму";

  this->button2->UseVisualStyleBackColor = true;

  this->button2->Click += gcnew System::EventHandler(this, &Form1::button2_Click);

  //

  // button3

  //

  this->button3->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

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

  this->button3->Location = System::Drawing::Point(560, 98);

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

  this->button3->Size = System::Drawing::Size(113, 30);

  this->button3->TabIndex = 2;

  this->button3->Text = L"Вихід";

  this->button3->UseVisualStyleBackColor = true;

  this->button3->Click += gcnew System::EventHandler(this, &Form1::button3_Click);

  //

  // pictureBox1

  //

  this->pictureBox1->BackgroundImage = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"pictureBox1.BackgroundImage")));

  this->pictureBox1->Location = System::Drawing::Point(1, 0);

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

  this->pictureBox1->Size = System::Drawing::Size(552, 316);

  this->pictureBox1->TabIndex = 3;

  this->pictureBox1->TabStop = false;

  //

  // pictureBox2

  //

  this->pictureBox2->BackgroundImage = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"pictureBox2.BackgroundImage")));

  this->pictureBox2->Location = System::Drawing::Point(560, 170);

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

  this->pictureBox2->Size = System::Drawing::Size(125, 145);

  this->pictureBox2->TabIndex = 4;

  this->pictureBox2->TabStop = false;

  //

  // Form1

  //

  this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);

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

  this->BackColor = System::Drawing::SystemColors::ButtonHighlight;

  this->ClientSize = System::Drawing::Size(684, 311);

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

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

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

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

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

  this->Icon = (cli::safe_cast<System::Drawing::Icon^  >(resources->GetObject(L"$this.Icon")));

  this->MaximumSize = System::Drawing::Size(700, 350);

  this->MinimumSize = System::Drawing::Size(700, 350);

  this->Name = L"Form1";

  this->Text = L"Меню";

  this->Load += gcnew System::EventHandler(this, &Form1::Form1_Load);

  (cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->pictureBox1))->EndInit();

  (cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->pictureBox2))->EndInit();

  this->ResumeLayout(false);

 }

#pragma endregion

 private: System::Void button3_Click(System::Object^  sender, System::EventArgs^  e) {

    Form2 ^form2 = gcnew Form2();

    form2->Show();

   }

 private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {

    this->Hide();

    Form3 ^form3 = gcnew Form3();

    form3->Show();

   }

 private: System::Void button2_Click(System::Object^  sender, System::EventArgs^  e) {

    MessageBox::Show("МОДЕЛЬ, ЩО РЕАЛІЗУЄ ПРОГРАМА\n\nСем, Білл і Джон (нижче позначені буквами С, Б, Д) домовились битися на дуелі втрьох за такими правилами:\nЖеребкування визначає, хто стріляє першим, другим, третім. Далі вони розташовуються на однаковій відстані один від одного. Обмінюються вистрілами по черзі, визначеній жеребом, поки двоє не будуть убиті. Черговий стріляючий може стріляти в будь якого із інших, враховуючи йоміврність виживання та оптимальну для себе стратегію.\nВідомо, що С – снайпер і ніколи не промахується з даної дистанції, Б – влучає лише в 80%, а Д – приблизно в 50% випадків.\n\nОПИС ПРОГРАМИ 'Багатостороння дуель'\n\nКористувачу програми надається можливість:\n 1) Жеребкуванням обрати порядок, у якому розташуються учасники дуелі (С, Б, Д);\n 2) Відповідно до оптимальної стратегії, здійснювати постріли кожного дуелянта в порядку, визначеному жеребкуванням поки двоє дуелянтів не будуть вбиті.\nОбислення ймовірності виживання (далі - ЙВ) на кожен хід здійснюється наступним чином:\nЙВ того, у кого стріляють (Жертви [Ж]) дорівнює 100%-'ймовірність попадання (ЙП)' того, хто стріляє (Стрільця [Cт]).\nЙВ Ст дорівнює 'ЙП' Ст + (100% - 'ЙП' Ж). На основі даних про ЙВ дуелянта на кожен крок обирається опимальна стратегія (ОС) ведення дуелі (у вікні програми ОС позначається '+').\n\nІНСТРУКЦІЯ З УПРАВЛІННЯ\n\nЩоб розпочати гру, необхідно:\n 1) В пункті меню натиснути кнопку 'Гра!';\n 2) З'явиться вікно, де необхідно жеребкуванням обрати:\n  1. Дуелянта, який буде стріляти першим, відмітивши 1 з 3-ох пунктів (тобто витягнути жереб) і натиснувши кнопку 'Обрати 1-ого';\n  2. Дуелянта, який буде стріляти другим, відмітивши 1 з 2-ох пунктів і натистувши кнопку 'Обрати другого'.\nДуелянт, якого не вибрали при жеребкуванні, стає третім автоматично.\n 3) Натиснути кнопку 'На позиції!';\nУ вікні з'явиться графічна інтерпритація 3-сторонньої дуелі у вигляді 3-ох зображеннь дуелянтів з підписами, які відповідають індивідуальному стрільцеві, що розташовані по колу, в центрі якого знаходиться правильний трикутник (модель одинакової відстані між дуелянтами). Порядок стрільби визачений за годинниковою стрілкою. В верхній правій частині вікна будуть знаходитись можливі стратегії дуелянта, що стріляє першим, та ймовірності виживання усіх дуелянтів.\n 4) По черзі натискати кнопки '1-ша перестрілка', '2-га перестрілка' (та '3-тя перестрілка' якщо після другої перестілки загине тільки 1 дуелянт) поки не з'явиться напис:'Дуель закінчено!'\nДля виходу з програми натиснути кнопку 'Вийти' або 'Вийти з гри:(' і підтвердити своє бажання.");

   }

 private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) {

    this->Location = System::Drawing::Point(300,150);

   }

};

}

  •  Form2.h (Вихід)

#pragma once

#include "stdlib.h"

using namespace System;

using namespace System::ComponentModel;

using namespace System::Collections;

using namespace System::Windows::Forms;

using namespace System::Data;

using namespace System::Drawing;

namespace Багатостороннядуель16 {

 /// <summary>

 /// </summary>

 public ref class Form2 : public System::Windows::Forms::Form

{

 public:

 Form2(void)

 {

  InitializeComponent();

  //

  //

 }

 protected:

 /// <summary>

 /// </summary>

 ~Form2()

 {

  if (components)

  {

   delete components;

  }

 }

 private: System::Windows::Forms::Label^  label1;

 protected:

 private: System::Windows::Forms::Button^  button1;

 private: System::Windows::Forms::Button^  button2;

 private:

 /// <summary>

 /// </summary>

 System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code

 /// <summary>

 /// </summary>

 void InitializeComponent(void)

 {

  this->label1 = (gcnew System::Windows::Forms::Label());

  this->button1 = (gcnew System::Windows::Forms::Button());

  this->button2 = (gcnew System::Windows::Forms::Button());

  this->SuspendLayout();

  //

  // label1

  //

  this->label1->AutoSize = true;

  this->label1->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

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

  this->label1->Location = System::Drawing::Point(28, 24);

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

  this->label1->Size = System::Drawing::Size(167, 16);

  this->label1->TabIndex = 0;

  this->label1->Text = L"Ви дійсно хочете вийти\?";

  //

  // button1

  //

  this->button1->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

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

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

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

  this->button1->Size = System::Drawing::Size(75, 23);

  this->button1->TabIndex = 1;

  this->button1->Text = L"Ні";

  this->button1->UseVisualStyleBackColor = true;

  this->button1->Click += gcnew System::EventHandler(this, &Form2::button1_Click);

  //

  // button2

  //

  this->button2->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

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

  this->button2->Location = System::Drawing::Point(142, 66);

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

  this->button2->Size = System::Drawing::Size(75, 23);

  this->button2->TabIndex = 2;

  this->button2->Text = L"Так";

  this->button2->UseVisualStyleBackColor = true;

  this->button2->Click += gcnew System::EventHandler(this, &Form2::button2_Click);

  //

  // Form2

  //

  this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);

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

  this->BackColor = System::Drawing::SystemColors::ButtonHighlight;

  this->ClientSize = System::Drawing::Size(250, 112);

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

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

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

  this->FormBorderStyle = System::Windows::Forms::FormBorderStyle::SizableToolWindow;

  this->MaximumSize = System::Drawing::Size(266, 151);

  this->MinimumSize = System::Drawing::Size(266, 151);

  this->Name = L"Form2";

  this->Text = L"Вихід";

  this->Load += gcnew System::EventHandler(this, &Form2::Form2_Load);

  this->ResumeLayout(false);

  this->PerformLayout();

 }

#pragma endregion

 private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {

    this->Close();

   }

 private: System::Void button2_Click(System::Object^  sender, System::EventArgs^  e) {

    exit(0);

   }

 private: System::Void Form2_Load(System::Object^  sender, System::EventArgs^  e) {

    this->Location = System::Drawing::Point(533,283);

   }

};

}

  •  Form3.h (Дуель)

#pragma once

#include "stdlib.h"

#include "time.h"

#include "Form2.h"

using namespace System;

using namespace System::ComponentModel;

using namespace System::Collections;

using namespace System::Windows::Forms;

using namespace System::Data;

using namespace System::Drawing;

namespace Багатостороннядуель16 {

 /// <summary>

 /// </summary>

 public ref class Form3 : public System::Windows::Forms::Form

{

 public:

 Form3(void)

 {

  InitializeComponent();

 }

 protected:

 /// <summary>

 /// </summary>

 ~Form3()

 {

  if (components)

  {

   delete components;

  }

 }

 private: System::Windows::Forms::Label^  label1;

 private: System::Windows::Forms::RadioButton^  radioButton1;

 private: System::Windows::Forms::RadioButton^  radioButton2;

 private: System::Windows::Forms::RadioButton^  radioButton3;

 private: System::Windows::Forms::Button^  button1;

 private: System::Windows::Forms::Label^  label2;

 private: System::Windows::Forms::Label^  label3;

 private: System::Windows::Forms::RadioButton^  radioButton4;

 private: System::Windows::Forms::RadioButton^  radioButton5;

 private: System::Windows::Forms::Button^  button2;

 private: System::Windows::Forms::Label^  label4;

 private: System::Windows::Forms::Label^  label5;

 private: System::Windows::Forms::Label^  label6;

 private: System::Windows::Forms::Label^  label7;

 private: System::Windows::Forms::Button^  button3;

 private: System::Windows::Forms::Label^  label8;

 private: System::Windows::Forms::Label^  label9;

 private: System::Windows::Forms::Label^  label10;

 private: System::Windows::Forms::Button^  button4;

 private: System::Windows::Forms::Button^  button5;

 private: System::Windows::Forms::Button^  button6;

 private: System::Windows::Forms::Label^  label11;

 private: System::Windows::Forms::Label^  label12;

 private: System::Windows::Forms::Label^  label13;

 private: System::Windows::Forms::Label^  label14;

 private: System::Windows::Forms::Label^  label15;

 private: System::Windows::Forms::Label^  label16;

 private: System::Windows::Forms::Button^  button7;

 private: System::Windows::Forms::PictureBox^  pictureBox1;

 private: System::Windows::Forms::PictureBox^  pictureBox2;

 private: System::Windows::Forms::PictureBox^  pictureBox3;

 private: System::Windows::Forms::PictureBox^  pictureBox4;

 private: System::Windows::Forms::Button^  button8;

 private: System::Windows::Forms::PictureBox^  pictureBox5;

 private: System::Windows::Forms::PictureBox^  pictureBox6;

 private: System::Windows::Forms::PictureBox^  pictureBox7;

 private: System::Windows::Forms::PictureBox^  pictureBox8;

 private: System::Windows::Forms::PictureBox^  pictureBox9;

 private: System::Windows::Forms::PictureBox^  pictureBox10;

 private: System::Windows::Forms::Button^  button9;

 protected:

 private:

 /// <summary>

 /// </summary>

 System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code

 /// <summary>

 /// </summary>

 void InitializeComponent(void)

 {

  System::ComponentModel::ComponentResourceManager^  resources = (gcnew System::ComponentModel::ComponentResourceManager(Form3::typeid));

  this->label1 = (gcnew System::Windows::Forms::Label());

  this->radioButton1 = (gcnew System::Windows::Forms::RadioButton());

  this->radioButton2 = (gcnew System::Windows::Forms::RadioButton());

  this->radioButton3 = (gcnew System::Windows::Forms::RadioButton());

  this->button1 = (gcnew System::Windows::Forms::Button());

  this->label2 = (gcnew System::Windows::Forms::Label());

  this->label3 = (gcnew System::Windows::Forms::Label());

  this->radioButton4 = (gcnew System::Windows::Forms::RadioButton());

  this->radioButton5 = (gcnew System::Windows::Forms::RadioButton());

  this->button2 = (gcnew System::Windows::Forms::Button());

  this->label4 = (gcnew System::Windows::Forms::Label());

  this->label5 = (gcnew System::Windows::Forms::Label());

  this->label6 = (gcnew System::Windows::Forms::Label());

  this->label7 = (gcnew System::Windows::Forms::Label());

  this->button3 = (gcnew System::Windows::Forms::Button());

  this->label8 = (gcnew System::Windows::Forms::Label());

  this->label9 = (gcnew System::Windows::Forms::Label());

  this->label10 = (gcnew System::Windows::Forms::Label());

  this->button4 = (gcnew System::Windows::Forms::Button());

  this->button5 = (gcnew System::Windows::Forms::Button());

  this->button6 = (gcnew System::Windows::Forms::Button());

  this->label11 = (gcnew System::Windows::Forms::Label());

  this->label12 = (gcnew System::Windows::Forms::Label());

  this->label13 = (gcnew System::Windows::Forms::Label());

  this->label14 = (gcnew System::Windows::Forms::Label());

  this->label15 = (gcnew System::Windows::Forms::Label());

  this->label16 = (gcnew System::Windows::Forms::Label());

  this->button7 = (gcnew System::Windows::Forms::Button());

  this->pictureBox1 = (gcnew System::Windows::Forms::PictureBox());

  this->pictureBox2 = (gcnew System::Windows::Forms::PictureBox());

  this->pictureBox3 = (gcnew System::Windows::Forms::PictureBox());

  this->pictureBox4 = (gcnew System::Windows::Forms::PictureBox());

  this->button8 = (gcnew System::Windows::Forms::Button());

  this->pictureBox5 = (gcnew System::Windows::Forms::PictureBox());

  this->pictureBox6 = (gcnew System::Windows::Forms::PictureBox());

  this->pictureBox7 = (gcnew System::Windows::Forms::PictureBox());

  this->pictureBox8 = (gcnew System::Windows::Forms::PictureBox());

  this->pictureBox9 = (gcnew System::Windows::Forms::PictureBox());

  this->pictureBox10 = (gcnew System::Windows::Forms::PictureBox());

  this->button9 = (gcnew System::Windows::Forms::Button());

  (cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->pictureBox1))->BeginInit();

  (cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->pictureBox2))->BeginInit();

  (cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->pictureBox3))->BeginInit();

  (cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->pictureBox4))->BeginInit();

  (cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->pictureBox5))->BeginInit();

  (cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->pictureBox6))->BeginInit();

  (cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->pictureBox7))->BeginInit();

  (cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->pictureBox8))->BeginInit();

  (cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->pictureBox9))->BeginInit();

  (cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->pictureBox10))->BeginInit();

  this->SuspendLayout();

  //

  // label1

  //

  this->label1->AutoSize = true;

  this->label1->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

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

  this->label1->Location = System::Drawing::Point(24, 10);

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

  this->label1->Size = System::Drawing::Size(102, 16);

  this->label1->TabIndex = 0;

  this->label1->Text = L"Тягніть жереб!";

  //

  // radioButton1

  //

  this->radioButton1->AutoSize = true;

  this->radioButton1->Location = System::Drawing::Point(52, 34);

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

  this->radioButton1->Size = System::Drawing::Size(14, 13);

  this->radioButton1->TabIndex = 1;

  this->radioButton1->TabStop = true;

  this->radioButton1->UseVisualStyleBackColor = true;

  //

  // radioButton2

  //

  this->radioButton2->AutoSize = true;

  this->radioButton2->Location = System::Drawing::Point(72, 34);

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

  this->radioButton2->Size = System::Drawing::Size(14, 13);

  this->radioButton2->TabIndex = 2;

  this->radioButton2->TabStop = true;

  this->radioButton2->UseVisualStyleBackColor = true;

  //

  // radioButton3

  //

  this->radioButton3->AutoSize = true;

  this->radioButton3->Location = System::Drawing::Point(92, 34);

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

  this->radioButton3->Size = System::Drawing::Size(14, 13);

  this->radioButton3->TabIndex = 3;

  this->radioButton3->TabStop = true;

  this->radioButton3->UseVisualStyleBackColor = true;

  //

  // button1

  //

  this->button1->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

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

  this->button1->Location = System::Drawing::Point(27, 54);

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

  this->button1->Size = System::Drawing::Size(104, 23);

  this->button1->TabIndex = 4;

  this->button1->Text = L"Обрати першого!";

  this->button1->UseVisualStyleBackColor = true;

  this->button1->Click += gcnew System::EventHandler(this, &Form3::button1_Click);

  //

  // label2

  //

  this->label2->AutoSize = true;

  this->label2->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

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

  this->label2->Location = System::Drawing::Point(13, 95);

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

  this->label2->Size = System::Drawing::Size(18, 16);

  this->label2->TabIndex = 5;

  this->label2->Text = L"1.";

  //

  // label3

  //

  this->label3->AutoSize = true;

  this->label3->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

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

  this->label3->Location = System::Drawing::Point(26, 95);

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

  this->label3->Size = System::Drawing::Size(45, 16);

  this->label3->TabIndex = 6;

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

  //

  // radioButton4

  //

  this->radioButton4->AutoSize = true;

  this->radioButton4->Location = System::Drawing::Point(57, 125);

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

  this->radioButton4->Size = System::Drawing::Size(14, 13);

  this->radioButton4->TabIndex = 7;

  this->radioButton4->TabStop = true;

  this->radioButton4->UseVisualStyleBackColor = true;

  //

  // radioButton5

  //

  this->radioButton5->AutoSize = true;

  this->radioButton5->Location = System::Drawing::Point(82, 125);

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

  this->radioButton5->Size = System::Drawing::Size(14, 13);

  this->radioButton5->TabIndex = 8;

  this->radioButton5->TabStop = true;

  this->radioButton5->UseVisualStyleBackColor = true;

  //

  // button2

  //

  this->button2->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

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

  this->button2->Location = System::Drawing::Point(27, 144);

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

  this->button2->Size = System::Drawing::Size(104, 23);

  this->button2->TabIndex = 9;

  this->button2->Text = L"Обрати другого!";

  this->button2->UseVisualStyleBackColor = true;

  this->button2->Click += gcnew System::EventHandler(this, &Form3::button2_Click);

  //

  // label4

  //

  this->label4->AutoSize = true;

  this->label4->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

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

  this->label4->Location = System::Drawing::Point(11, 183);

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

  this->label4->Size = System::Drawing::Size(18, 16);

  this->label4->TabIndex = 10;

  this->label4->Text = L"2.";

  //

  // label5

  //

  this->label5->AutoSize = true;

  this->label5->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

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

  this->label5->Location = System::Drawing::Point(11, 205);

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

  this->label5->Size = System::Drawing::Size(18, 16);

  this->label5->TabIndex = 11;

  this->label5->Text = L"3.";

  //

  // label6

  //

  this->label6->AutoSize = true;

  this->label6->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

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

  this->label6->Location = System::Drawing::Point(24, 183);

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

  this->label6->Size = System::Drawing::Size(45, 16);

  this->label6->TabIndex = 12;

  this->label6->Text = L"label6";

  //

  // label7

  //

  this->label7->AutoSize = true;

  this->label7->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

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

  this->label7->Location = System::Drawing::Point(24, 205);

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

  this->label7->Size = System::Drawing::Size(45, 16);

  this->label7->TabIndex = 13;

  this->label7->Text = L"label7";

  //

  // button3

  //

  this->button3->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

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

  this->button3->Location = System::Drawing::Point(27, 280);

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

  this->button3->Size = System::Drawing::Size(104, 23);

  this->button3->TabIndex = 14;

  this->button3->Text = L"Вихід";

  this->button3->UseVisualStyleBackColor = true;

  this->button3->Click += gcnew System::EventHandler(this, &Form3::button3_Click);

  //

  // label8

  //

  this->label8->AutoSize = true;

  this->label8->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

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

  this->label8->Location = System::Drawing::Point(223, 34);

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

  this->label8->Size = System::Drawing::Size(45, 16);

  this->label8->TabIndex = 16;

  this->label8->Text = L"label8";

  //

  // label9

  //

  this->label9->AutoSize = true;

  this->label9->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

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

  this->label9->Location = System::Drawing::Point(345, 245);

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

  this->label9->Size = System::Drawing::Size(45, 16);

  this->label9->TabIndex = 17;

  this->label9->Text = L"label9";

  //

  // label10

  //

  this->label10->AutoSize = true;

  this->label10->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

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

  this->label10->Location = System::Drawing::Point(89, 245);

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

  this->label10->Size = System::Drawing::Size(52, 16);

  this->label10->TabIndex = 18;

  this->label10->Text = L"label10";

  //

  // button4

  //

  this->button4->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

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

  this->button4->Location = System::Drawing::Point(27, 251);

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

  this->button4->Size = System::Drawing::Size(104, 23);

  this->button4->TabIndex = 19;

  this->button4->Text = L"На позиції!";

  this->button4->UseVisualStyleBackColor = true;

  this->button4->Click += gcnew System::EventHandler(this, &Form3::button4_Click);

  //

  // button5

  //

  this->button5->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

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

  this->button5->Location = System::Drawing::Point(466, 125);

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

  this->button5->Size = System::Drawing::Size(137, 23);

  this->button5->TabIndex = 20;

  this->button5->Text = L"1-ша перестрілка";

  this->button5->UseVisualStyleBackColor = true;

  this->button5->Click += gcnew System::EventHandler(this, &Form3::button5_Click);

  //

  // button6

  //

  this->button6->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

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

  this->button6->Location = System::Drawing::Point(466, 154);

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

  this->button6->Size = System::Drawing::Size(137, 23);

  this->button6->TabIndex = 21;

  this->button6->Text = L"2-га перестрілка";

  this->button6->UseVisualStyleBackColor = true;

  this->button6->Click += gcnew System::EventHandler(this, &Form3::button6_Click);

  //

  // label11

  //

  this->label11->AutoSize = true;

  this->label11->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 12, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

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

  this->label11->Location = System::Drawing::Point(463, 231);

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

  this->label11->Size = System::Drawing::Size(60, 20);

  this->label11->TabIndex = 23;

  this->label11->Text = L"label11";

  //

  // label12

  //

  this->label12->AutoSize = true;

  this->label12->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

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

  this->label12->Location = System::Drawing::Point(380, 10);

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

  this->label12->Size = System::Drawing::Size(263, 16);

  this->label12->TabIndex = 24;

  this->label12->Text = L"Стратегії та ймовірності виживання(%):";

  //

  // label13

  //

  this->label13->AutoSize = true;

  this->label13->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

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

  this->label13->Location = System::Drawing::Point(380, 32);

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

  this->label13->Size = System::Drawing::Size(52, 16);

  this->label13->TabIndex = 25;

  this->label13->Text = L"label13";

  //

  // label14

  //

  this->label14->AutoSize = true;

  this->label14->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

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

  this->label14->Location = System::Drawing::Point(380, 51);

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

  this->label14->Size = System::Drawing::Size(52, 16);

  this->label14->TabIndex = 26;

  this->label14->Text = L"label14";

  //

  // label15

  //

  this->label15->AutoSize = true;

  this->label15->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

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

  this->label15->Location = System::Drawing::Point(380, 68);

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

  this->label15->Size = System::Drawing::Size(52, 16);

  this->label15->TabIndex = 27;

  this->label15->Text = L"label15";

  //

  // label16

  //

  this->label16->AutoSize = true;

  this->label16->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

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

  this->label16->Location = System::Drawing::Point(380, 86);

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

  this->label16->Size = System::Drawing::Size(52, 16);

  this->label16->TabIndex = 28;

  this->label16->Text = L"label16";

  //

  // button7

  //

  this->button7->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

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

  this->button7->Location = System::Drawing::Point(466, 183);

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

  this->button7->Size = System::Drawing::Size(137, 22);

  this->button7->TabIndex = 29;

  this->button7->Text = L"3-тя перестрілка";

  this->button7->UseVisualStyleBackColor = true;

  this->button7->Click += gcnew System::EventHandler(this, &Form3::button7_Click);

  //

  // pictureBox1

  //

  this->pictureBox1->BackgroundImage = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"pictureBox1.BackgroundImage")));

  this->pictureBox1->Location = System::Drawing::Point(201, 144);

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

  this->pictureBox1->Size = System::Drawing::Size(125, 125);

  this->pictureBox1->TabIndex = 30;

  this->pictureBox1->TabStop = false;

  //

  // pictureBox2

  //

  this->pictureBox2->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"pictureBox2.Image")));

  this->pictureBox2->Location = System::Drawing::Point(201, 53);

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

  this->pictureBox2->Size = System::Drawing::Size(125, 95);

  this->pictureBox2->TabIndex = 31;

  this->pictureBox2->TabStop = false;

  //

  // pictureBox3

  //

  this->pictureBox3->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"pictureBox3.Image")));

  this->pictureBox3->Location = System::Drawing::Point(321, 264);

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

  this->pictureBox3->Size = System::Drawing::Size(125, 95);

  this->pictureBox3->TabIndex = 32;

  this->pictureBox3->TabStop = false;

  //

  // pictureBox4

  //

  this->pictureBox4->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"pictureBox4.Image")));

  this->pictureBox4->Location = System::Drawing::Point(82, 264);

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

  this->pictureBox4->Size = System::Drawing::Size(125, 95);

  this->pictureBox4->TabIndex = 33;

  this->pictureBox4->TabStop = false;

  //

  // button8

  //

  this->button8->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

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

  this->button8->Location = System::Drawing::Point(466, 339);

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

  this->button8->Size = System::Drawing::Size(137, 30);

  this->button8->TabIndex = 34;

  this->button8->Text = L"Вийти з гри :(";

  this->button8->UseVisualStyleBackColor = true;

  this->button8->Click += gcnew System::EventHandler(this, &Form3::button8_Click);

  //

  // pictureBox5

  //

  this->pictureBox5->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"pictureBox5.Image")));

  this->pictureBox5->Location = System::Drawing::Point(609, 34);

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

  this->pictureBox5->Size = System::Drawing::Size(125, 95);

  this->pictureBox5->TabIndex = 35;

  this->pictureBox5->TabStop = false;

  //

  // pictureBox6

  //

  this->pictureBox6->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"pictureBox6.Image")));

  this->pictureBox6->Location = System::Drawing::Point(332, 115);

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

  this->pictureBox6->Size = System::Drawing::Size(125, 95);

  this->pictureBox6->TabIndex = 36;

  this->pictureBox6->TabStop = false;

  //

  // pictureBox7

  //

  this->pictureBox7->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"pictureBox7.Image")));

  this->pictureBox7->Location = System::Drawing::Point(438, 29);

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

  this->pictureBox7->Size = System::Drawing::Size(125, 95);

  this->pictureBox7->TabIndex = 37;

  this->pictureBox7->TabStop = false;

  //

  // pictureBox8

  //

  this->pictureBox8->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"pictureBox8.Image")));

  this->pictureBox8->Location = System::Drawing::Point(645, 183);

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

  this->pictureBox8->Size = System::Drawing::Size(109, 153);

  this->pictureBox8->TabIndex = 38;

  this->pictureBox8->TabStop = false;

  //

  // pictureBox9

  //

  this->pictureBox9->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"pictureBox9.Image")));

  this->pictureBox9->Location = System::Drawing::Point(-1, -4);

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

  this->pictureBox9->Size = System::Drawing::Size(157, 209);

  this->pictureBox9->TabIndex = 39;

  this->pictureBox9->TabStop = false;

  //

  // pictureBox10

  //

  this->pictureBox10->BackgroundImage = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"pictureBox10.BackgroundImage")));

  this->pictureBox10->Location = System::Drawing::Point(101, 174);

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

  this->pictureBox10->Size = System::Drawing::Size(90, 57);

  this->pictureBox10->TabIndex = 40;

  this->pictureBox10->TabStop = false;

  //

  // button9

  //

  this->button9->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

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

  this->button9->Location = System::Drawing::Point(609, 339);

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

  this->button9->Size = System::Drawing::Size(137, 30);

  this->button9->TabIndex = 41;

  this->button9->Text = L"Інструкція";

  this->button9->UseVisualStyleBackColor = true;

  this->button9->Click += gcnew System::EventHandler(this, &Form3::button9_Click);

  //

  // Form3

  //

  this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);

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

  this->BackColor = System::Drawing::SystemColors::ButtonHighlight;

  this->ClientSize = System::Drawing::Size(754, 381);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  this->FormBorderStyle = System::Windows::Forms::FormBorderStyle::SizableToolWindow;

  this->Icon = (cli::safe_cast<System::Drawing::Icon^  >(resources->GetObject(L"$this.Icon")));

  this->MaximumSize = System::Drawing::Size(770, 420);

  this->MinimumSize = System::Drawing::Size(175, 354);

  this->Name = L"Form3";

  this->Text = L"Дуель";

  this->Load += gcnew System::EventHandler(this, &Form3::Form3_Load);

  (cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->pictureBox1))->EndInit();

  (cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->pictureBox2))->EndInit();

  (cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->pictureBox3))->EndInit();

  (cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->pictureBox4))->EndInit();

  (cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->pictureBox5))->EndInit();

  (cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->pictureBox6))->EndInit();

  (cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->pictureBox7))->EndInit();

  (cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->pictureBox8))->EndInit();

  (cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->pictureBox9))->EndInit();

  (cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->pictureBox10))->EndInit();

  this->ResumeLayout(false);

  this->PerformLayout();

 }

#pragma endregion

 private: System::Void Form3_Load(System::Object^  sender, System::EventArgs^  e) {

  button8->Hide(); pictureBox8->Hide();

  this->Width = 175; pictureBox9->Hide();

  this->Height = 354; pictureBox1->Show();

  label11->Hide(); label10->Hide();

  label12->Hide(); label8->Hide();

  label4->Hide(); label9->Hide();

  label5->Hide(); label13->Hide();

  label6->Hide(); label14->Hide();

  label7->Hide(); label15->Hide();

  label2->Hide(); label16->Hide();

  label3->Hide(); button5->Hide(); button6->Hide(); button7->Hide();

  pictureBox1->Hide(); pictureBox2->Hide(); pictureBox3->Hide();

  pictureBox4->Hide(); pictureBox5->Hide(); pictureBox6->Hide();

  pictureBox7->Hide(); button4->Hide();

  button2->Enabled = false; this->Location = System::Drawing::Point(550,150);

  radioButton4->Enabled = false;

  radioButton5->Enabled = false;

 }

private: System::Void button3_Click(System::Object^  sender, System::EventArgs^  e) {

   Form2 ^form2 = gcnew Form2();

   form2->Show();

  }

private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {

  radioButton4->Enabled = true;

  radioButton5->Enabled = true;

  button2->Enabled = true;

  label2->Show();

  label3->Show();

  System::String^ a1 = "Сем";

  System::String^ b1 = "Білл";

  System::String^ c1 = "Джон";

  int a,b,c;

  srand(time(NULL));

  a=rand()%3+1;

  if(a==1)

  {

   if(radioButton1->Checked || radioButton2->Checked || radioButton3->Checked)

   label3->Text = a1;

  }

  if(a==2)

  {

   if(radioButton1->Checked || radioButton2->Checked || radioButton3->Checked)

   label3->Text = b1;

  }

  if(a==3)

  {

   if(radioButton1->Checked || radioButton2->Checked || radioButton3->Checked)

   label3->Text = c1;

  }

 }

private: System::Void button2_Click(System::Object^  sender, System::EventArgs^  e) {

  button4->Show();

  label4->Show();

  label5->Show();

  label6->Show();

  label7->Show();

  System::String^ g;

  int k;

  g=label3->Text;

  if(g=="Сем")

  {

   System::String^ b1 = "Білл";

   System::String^ c1 = "Джон";

   k=rand()%2+1;

   if(k==1)

   {

    if(radioButton4->Checked || radioButton5->Checked)

    {

     label6->Text = b1;

     label7->Text = c1;

    }

   }

   if(k==2)

   {

    if(radioButton4->Checked || radioButton5->Checked)

    {

     label6->Text = c1;

     label7->Text = b1;

    }

   }

  }

  if(g=="Білл")

  {

   System::String^ b1 = "Сем";

   System::String^ c1 = "Джон";

   k=rand()%2+1;

   if(k==1)

   {

    if(radioButton4->Checked || radioButton5->Checked)

    {

     label6->Text = b1;

     label7->Text = c1;

    }

   }

   if(k==2)

   {

    if(radioButton4->Checked || radioButton5->Checked)

    {

     label6->Text = c1;

     label7->Text = b1;

    }

   }

  }

  if(g=="Джон")

  {

   System::String^ b1 = "Cем";

   System::String^ c1 = "Білл";

   k=rand()%2+1;

   if(k==1)

   {

    if(radioButton4->Checked || radioButton5->Checked)

    {

     label6->Text = b1;

     label7->Text = c1;

    }

   }

   if(k==2)

   {

    if(radioButton4->Checked || radioButton5->Checked)

    {

     label6->Text = c1;

     label7->Text = b1;

    }

   }

  }

  }

private: System::Void button4_Click(System::Object^  sender, System::EventArgs^  e) {

  this->Width = 770;

  label10->Show();

  label8->Show();

  button5->Show();

  button6->Show();

  button7->Show();

  label9->Show();

  pictureBox8->Show();

  pictureBox9->Show();

  label13->Show();

  pictureBox1->Show();

  pictureBox10->Hide();

  label14->Show();

  this->Location = System::Drawing::Point(280,150);

  label15->Show();

  label16->Show();

  this->Height = 440;

  button1->Hide(); button2->Hide(); button4->Hide();

  radioButton1->Hide(); radioButton2->Hide(); radioButton3->Hide();

  radioButton4->Hide(); radioButton5->Hide(); label1->Hide();

  label10->Text = label7->Text; label2->Hide(); label3->Hide();

  label9->Text = label6->Text; label4->Hide(); label5->Hide();

  label8->Text = label3->Text; label6->Hide(); label7->Hide();

  button6->Enabled = false; button3->Hide();

  button7->Enabled = false; button8->Show();

  System::String^ a=label8->Text;

  System::String^ b=label9->Text;

  System::String^ c=label10->Text;

  label12->Show();

   if(a=="Сем")

   {

    pictureBox2->Show();

    pictureBox2->Location = System::Drawing::Point(201, 53);

    if(b=="Білл")

    {

     pictureBox3->Show(); pictureBox4->Show();

     pictureBox3->Location = System::Drawing::Point(321, 264);

     pictureBox4->Location = System::Drawing::Point(82, 264);

    }

    else

    {

     pictureBox3->Show(); pictureBox4->Show();

     pictureBox4->Location = System::Drawing::Point(321, 264);

     pictureBox3->Location = System::Drawing::Point(82, 264);

    }

    label13->Text="1. Стріляти в Білла.  С-50, Б-0, Д-50 +";

    label14->Text="2. Стріляти в Джона.  С-30, Б-70, Д-0";

    label15->Hide(); label16->Hide();

   }

   if(a=="Білл")

   {

    pictureBox3->Show();

    pictureBox3->Location = System::Drawing::Point(201, 53);

    if(b=="Сем")

    {

     pictureBox2->Show(); pictureBox4->Show();

     pictureBox2->Location = System::Drawing::Point(321, 264);

     pictureBox4->Location = System::Drawing::Point(82, 264);

    }

    else

    {

     pictureBox2->Show(); pictureBox4->Show();

     pictureBox4->Location = System::Drawing::Point(321, 264);

     pictureBox2->Location = System::Drawing::Point(82, 264);

    }

    label13->Text="1. Стріляти в Сема.  С-20, Б-80, Д-100 +";

    label14->Text="2. Стріляти в Джона.  С-100, Б-90, Д-20 ";

    label15->Text="Бо якщо вибрати 2, то Сем буде стріляти в Білла і тоді:";

    label16->Text="С-100, Б-0";

   }

   if(a=="Джон")

   {

    pictureBox4->Show();

    pictureBox4->Location = System::Drawing::Point(201, 53);

    if(b=="Білл")

    {

     pictureBox3->Show(); pictureBox2->Show();

     pictureBox3->Location = System::Drawing::Point(321, 264);

     pictureBox2->Location = System::Drawing::Point(82, 264);

    }

    else

    {

     pictureBox3->Show(); pictureBox2->Show();

     pictureBox2->Location = System::Drawing::Point(321, 264);

     pictureBox3->Location = System::Drawing::Point(82, 264);

    }

    label13->Text="1. Стріляти в Білла.  С-100, Б-50, Д-60";

    label14->Text="2. Стріляти в Сема.  С-50, Б-100, Д-50 +";

    label15->Text="Бо якщо вибрати 1, то Сем буде стріляти в Джона і тоді:";

    label16->Text="C-100, Д-0";

   }

  }

private: System::Void button5_Click(System::Object^  sender, System::EventArgs^  e) {

   button5->Enabled = false;

   button6->Enabled = true;

   System::String^ a=label8->Text;

   System::String^ b=label9->Text;

   System::String^ c=label10->Text;

   if(a=="Сем")

   {

    if(b=="Білл")

    {

     label9->Text="Білл мертвий";

     pictureBox6->Show();

     pictureBox6->Location = System::Drawing::Point(321, 264);

    }

    if(c=="Білл")

    {

     label10->Text="Білл мертвий";

     pictureBox6->Show();

     pictureBox6->Location = System::Drawing::Point(82, 264);

    }

   }

   if(a=="Білл")

   {

    if(b=="Джон")

    {

    int v=rand()%100+1;

        if(v<=80)

     {

      label10->Text="Сем мертвий";

      pictureBox5->Show();

      pictureBox5->Location = System::Drawing::Point(82, 264);

     }

     if(v>=80)

     {

      label8->Text="Білл мертвий";

      pictureBox6->Show();

      pictureBox6->Location = System::Drawing::Point(201, 53);

     }

    }

    if(c=="Джон")

    {

     int v=rand()%100+1;

     if(v<=80)

     {

     label9->Text="Сем мертвий";

     pictureBox5->Show();

     pictureBox5->Location = System::Drawing::Point(321, 264);

     }

     else

     {

     label8->Text="Білл мертвий";

     pictureBox6->Show();

     pictureBox6->Location = System::Drawing::Point(201, 53);

     }

    }  

   }

   if(a=="Джон")

   {

    if(b=="Білл")

    {

     int v=rand()%100+1;

     if(v<=50)

     {

      label10->Text="Сем мертвий";

      pictureBox5->Show();

      pictureBox5->Location = System::Drawing::Point(82, 264);

     }

     if(v>=50)

     {

      label8->Text="Джон мертвий";

      pictureBox7->Show();

      pictureBox7->Location = System::Drawing::Point(201, 53);

     }

    }

    if(c=="Білл")

    {

     int v=rand()%100+1;

     if(v<=50)

     {

      label9->Text="Сем мертвий";

      pictureBox5->Show();

      pictureBox5->Location = System::Drawing::Point(321, 264);

     }

     if(v>=50)

     {

      label8->Text="Джон мертвий";

      pictureBox7->Show();

      pictureBox7->Location = System::Drawing::Point(201, 53);

     }

    }

   }

  }

private: System::Void button6_Click(System::Object^  sender, System::EventArgs^  e) {

   button6->Enabled = false;

   System::String^ a=label8->Text;

   System::String^ b=label9->Text;

   System::String^ c=label10->Text;

   if(a=="Сем")

   {

    if(b=="Білл мертвий")

    {

     int v=rand()%100+1;

     if(v<=50)

     {

      label8->Text="Сем мертвий";

      label11->Text="Дуель закінчено!";

      label11->Show();

      button7->Enabled = false;

      pictureBox5->Show();

      pictureBox5->Location = System::Drawing::Point(201, 53);

     }

     if(v>=50)

     {

      label10->Text="Джон мертвий";

      label11->Text="Дуель закінчено!";

      label11->Show();

      button7->Enabled = false;

      pictureBox7->Show();

      pictureBox7->Location = System::Drawing::Point(82, 264);

     }

    }

    if(c=="Білл мертвий")

    {

     int v=rand()%100+1;

     if(v<=50)

     {

      label8->Text="Сем мертвий";

      label11->Text="Дуель закінчено!";

      label11->Show();

      button7->Enabled = false;

      pictureBox5->Show();

      pictureBox5->Location = System::Drawing::Point(201, 53);

     }

     if(v>=50)

     {

      label9->Text="Джон мертвий";

      label11->Text="Дуель закінчено!";

      label11->Show();

      button7->Enabled = false;

      pictureBox7->Show();

      pictureBox7->Location = System::Drawing::Point(321, 264);

     }

    }

   }

   if(a=="Білл")

   {

    if(b=="Джон")

    {

     int v=rand()%100+1;

     if(v<=50)

     {

      label8->Text="Білл мертвий";

      label11->Text="Дуель закінчено!";

      label11->Show();

      button7->Enabled = false;

      pictureBox6->Show();

      pictureBox6->Location = System::Drawing::Point(201, 53);

     }

     else

     {

      int v1=rand()%100+1;

      if(v<=80)

      {

       label9->Text="Джон мертвий";

       label11->Text="Дуель закінчено!";

       label11->Show();

       button7->Enabled = false;

       pictureBox7->Show();

       pictureBox7->Location = System::Drawing::Point(321, 264);

      }

      if(v>=80)

      {

       button7->Enabled = true;

      }

     }

    }

    if(c=="Джон")

    {

     int v=rand()%100+1;

     if(v<=50)

     {

      label8->Text="Білл мертвий";

      label11->Text="Дуель закінчено!";

      label11->Show();

      button7->Enabled = false;

      pictureBox6->Show();

      pictureBox6->Location = System::Drawing::Point(201, 53);

     }

     else

     {

      int v1=rand()%100+1;

      if(v<=80)

      {

       label10->Text="Джон мертвий";

       label11->Text="Дуель закінчено!";

       label11->Show();

       button7->Enabled = false;

       pictureBox7->Show();

       pictureBox7->Location = System::Drawing::Point(82, 264);

      }

      if(v>=0)

      {

       button7->Enabled = true;

      }

     }

    }

   }

   if(a=="Білл мертвий")

   {

    if(b=="Джон")

    {

     int v=rand()%100+1;

     if(v<=50)

     {

      label10->Text="Сем мертвий";

      label11->Text="Дуель закінчено!";

      label11->Show();

      button7->Enabled = false;

      pictureBox5->Show();

      pictureBox5->Location = System::Drawing::Point(82, 264);

     }

     if(v>=50)

     {

      label9->Text="Джон мертвий";

      label11->Text="Дуель закінчено!";

      label11->Show();

      button7->Enabled = false;

      pictureBox7->Show();

      pictureBox7->Location = System::Drawing::Point(321, 264);

     }

    }

    if(c=="Джон")

    {

     label10->Text="Джон мертвий";

     label11->Text="Дуель закінчено!";

     label11->Show();

     button7->Enabled = false;

     pictureBox7->Show();

     pictureBox7->Location = System::Drawing::Point(82, 264);

    }

   }

   if(a=="Джон")

   {

    if(b=="Білл")

    {

     int v=rand()%100+1;

     if(v<=80)

     {

     label8->Text="Джон мертвий";

     label11->Text="Дуель закінчено!";

     label11->Show();

     button7->Enabled = false;

     pictureBox7->Show();

     pictureBox7->Location = System::Drawing::Point(201, 53);

     }

     if(v>=80)

     {

      int v1=rand()%100+1;

      if(v1<=50)

      {

       label9->Text="Білл мертвий";

       label11->Text="Дуель закінчено!";

       label11->Show();

       button7->Enabled = false;

       pictureBox6->Show();

       pictureBox6->Location = System::Drawing::Point(321, 264);

      }

      else button7->Enabled = true;

     }

    }

    if(c=="Білл")

    {

     int v=rand()%100+1;

     if(v<=80)

     {

     label8->Text="Джон мертвий";

     label11->Text="Дуель закінчено!";

     label11->Show();

     button7->Enabled = false;

     pictureBox7->Show();

     pictureBox7->Location = System::Drawing::Point(201, 53);

     }

     if(v>=80)

     {

      int v1=rand()%100+1;

      if(v1<=50)

      {

       label10->Text="Білл мертвий";

       label11->Text="Дуель закінчено!";

       label11->Show();

       button7->Enabled = false;

       pictureBox6->Show();

       pictureBox6->Location = System::Drawing::Point(82, 264);

      }

      else button7->Enabled = true;

     }

    }

   }

   if(a=="Джон мертвий")

   {

    if(b=="Білл")

    {

     int v=rand()%100+1;

     if(v<=80)

     {

      label10->Text="Сем мертвий";

      button7->Enabled = false;

      label11->Text="Дуель закінчено!";

      label11->Show();

      pictureBox5->Show();

      pictureBox5->Location = System::Drawing::Point(82, 264);

     }

     if(v>=80)

     {

      label10->Text="Білл мертвий";

      button7->Enabled = false;

      label11->Text="Дуель закінчено!";

      label11->Show();

      pictureBox6->Show();

      pictureBox6->Location = System::Drawing::Point(321, 264);

     }

    }

    if(c=="Білл")

    {

     label10->Text="Білл мертвий";

     label11->Text="Дуель закінчено!";

     label11->Show();

     button7->Enabled = false;

     pictureBox6->Show();

     pictureBox6->Location = System::Drawing::Point(82, 264);

    }

   }

  }

private: System::Void button7_Click(System::Object^  sender, System::EventArgs^  e) {

   button7->Enabled = false;

   System::String^ a=label8->Text;

   System::String^ b=label9->Text;

   System::String^ c=label10->Text;

   if(a=="Білл")

   {

    if(b=="Джон")

    {

     int v=rand()%100+1;

     if(v<=80)

     {

      label9->Text="Джон мертвий";

      label11->Text="Дуель закінчено!";

      label11->Show();

      pictureBox7->Show();

      pictureBox7->Location = System::Drawing::Point(321, 264);

     }

     else

     {

      int v1=rand()%100+1;

      if(v<=50)

      {

       label8->Text="Білл мертвий";

       label11->Text="Дуель закінчено!";

       label11->Show();

       pictureBox6->Show();

       pictureBox6->Location = System::Drawing::Point(82, 264);

      }

      else

      {

       label9->Text="Джон мертвий";

       label11->Text="Дуель закінчено!";

       label11->Show();

       pictureBox7->Show();

       pictureBox7->Location = System::Drawing::Point(321, 264);

      }

     }

    }

    if(c=="Джон")

    {

     int v=rand()%100+1;

     if(v<=80)

     {

      label10->Text="Джон мертвий";

      label11->Text="Дуель закінчено!";

      label11->Show();

      pictureBox7->Show();

      pictureBox7->Location = System::Drawing::Point(82, 264);

     }

     else

     {

      int v1=rand()%100+1;

      if(v<=50)

      {

       label8->Text="Білл мертвий";

       label11->Text="Дуель закінчено!";

       label11->Show();

       pictureBox6->Show();

       pictureBox6->Location = System::Drawing::Point(201, 53);

      }

      else

      {

       label10->Text="Джон мертвий";

       label11->Text="Дуель закінчено!";

       label11->Show();

       pictureBox7->Show();

       pictureBox7->Location = System::Drawing::Point(82, 264);

      }

     }

    }

   }

   if(a=="Джон")

   {

    if(b=="Білл")

    {

     int v=rand()%100+1;

     if(v<=50)

     {

     label9->Text="Білл мертвий";

     label11->Text="Дуель закінчено!";

     label11->Show();

     pictureBox6->Show();

     pictureBox6->Location = System::Drawing::Point(321, 264);

     }

     if(v>=50)

     {

      int v1=rand()%100+1;

      if(v1<=80)

      {

       label8->Text="Джон мертвий";

       label11->Text="Дуель закінчено!";

       label11->Show();

       pictureBox7->Show();

       pictureBox7->Location = System::Drawing::Point(201, 53);

      }

      else

      {

       label9->Text="Білл мертвий";

       label11->Text="Дуель закінчено!";

       label11->Show();

       pictureBox6->Show();

       pictureBox6->Location = System::Drawing::Point(321, 264);

      }

     }

    }

    if(c=="Білл")

    {

     int v=rand()%100+1;

     if(v<=50)

     {

     label10->Text="Білл мертвий";

     label11->Text="Дуель закінчено!";

     label11->Show();

     pictureBox6->Show();

     pictureBox6->Location = System::Drawing::Point(82, 264);

     }

     if(v>=50)

     {

      int v1=rand()%100+1;

      if(v1<=80)

      {

       label8->Text="Джон мертвий";

       label11->Text="Дуель закінчено!";

       label11->Show();

       pictureBox7->Show();

       pictureBox7->Location = System::Drawing::Point(201, 53);

      }

      else

      {

       label10->Text="Білл мертвий";

       label11->Text="Дуель закінчено!";

       label11->Show();

       pictureBox6->Show();

       pictureBox6->Location = System::Drawing::Point(82, 264);

      }

     }

    }

   }

  }

private: System::Void button8_Click(System::Object^  sender, System::EventArgs^  e) {

  Form2 ^form2 = gcnew Form2();

   form2->Show();

  }

private: System::Void button9_Click(System::Object^  sender, System::EventArgs^  e) {

   MessageBox::Show("МОДЕЛЬ, ЩО РЕАЛІЗУЄ ПРОГРАМА\n\nСем, Білл і Джон (нижче позначені буквами С, Б, Д) домовились битися на дуелі втрьох за такими правилами:\nЖеребкування визначає, хто стріляє першим, другим, третім. Далі вони розташовуються на однаковій відстані один від одного. Обмінюються вистрілами по черзі, визначеній жеребом, поки двоє не будуть убиті. Черговий стріляючий може стріляти в будь якого із інших, враховуючи йоміврність виживання та оптимальну для себе стратегію.\nВідомо, що С – снайпер і ніколи не промахується з даної дистанції, Б – влучає лише в 80%, а Д – приблизно в 50% випадків.\n\nОПИС ПРОГРАМИ 'Багатостороння дуель'\n\nКористувачу програми надається можливість:\n 1) Жеребкуванням обрати порядок, у якому розташуються учасники дуелі (С, Б, Д);\n 2) Відповідно до оптимальної стратегії, здійснювати постріли кожного дуелянта в порядку, визначеному жеребкуванням поки двоє дуелянтів не будуть вбиті.\nОбислення ймовірності виживання (далі - ЙВ) на кожен хід здійснюється наступним чином:\nЙВ того, у кого стріляють (Жертви [Ж]) дорівнює 100%-'ймовірність попадання (ЙП)' того, хто стріляє (Стрільця [Cт]).\nЙВ Ст дорівнює 'ЙП' Ст + (100% - 'ЙП' Ж). На основі даних про ЙВ дуелянта на кожен крок обирається опимальна стратегія (ОС) ведення дуелі (у вікні програми ОС позначається '+').\n\nІНСТРУКЦІЯ З УПРАВЛІННЯ\n\nЩоб розпочати гру, необхідно:\n 1) В пункті меню натиснути кнопку 'Гра!';\n 2) З'явиться вікно, де необхідно жеребкуванням обрати:\n  1. Дуелянта, який буде стріляти першим, відмітивши 1 з 3-ох пунктів (тобто витягнути жереб) і натиснувши кнопку 'Обрати 1-ого';\n  2. Дуелянта, який буде стріляти другим, відмітивши 1 з 2-ох пунктів і натистувши кнопку 'Обрати другого'.\nДуелянт, якого не вибрали при жеребкуванні, стає третім автоматично.\n 3) Натиснути кнопку 'На позиції!';\nУ вікні з'явиться графічна інтерпритація 3-сторонньої дуелі у вигляді 3-ох зображеннь дуелянтів з підписами, які відповідають індивідуальному стрільцеві, що розташовані по колу, в центрі якого знаходиться правильний трикутник (модель одинакової відстані між дуелянтами). Порядок стрільби визачений за годинниковою стрілкою. В верхній правій частині вікна будуть знаходитись можливі стратегії дуелянта, що стріляє першим, та ймовірності виживання усіх дуелянтів.\n 4) По черзі натискати кнопки '1-ша перестрілка', '2-га перестрілка' (та '3-тя перестрілка' якщо після другої перестілки загине тільки 1 дуелянт) поки не з'явиться напис:'Дуель закінчено!'\nДля виходу з програми натиснути кнопку 'Вийти' або 'Вийти з гри:(' і підтвердити своє бажання.");

   }

};

}

  1.  Файли вихідного коду
  •  AssemblyInfo.cpp

#include "stdafx.h"

using namespace System;

using namespace System::Reflection;

using namespace System::Runtime::CompilerServices;

using namespace System::Runtime::InteropServices;

using namespace System::Security::Permissions;

[assembly:AssemblyTitleAttribute("Багатостороннядуель16")];

[assembly:AssemblyDescriptionAttribute("")];

[assembly:AssemblyConfigurationAttribute("")];

[assembly:AssemblyCompanyAttribute("")];

[assembly:AssemblyProductAttribute("Багатостороннядуель16")];

[assembly:AssemblyCopyrightAttribute("Copyright (c)  2015")];

[assembly:AssemblyTrademarkAttribute("")];

[assembly:AssemblyCultureAttribute("")];

[assembly:AssemblyVersionAttribute("1.0.*")];

[assembly:ComVisible(false)];

[assembly:CLSCompliantAttribute(true)];

[assembly:SecurityPermission(SecurityAction::RequestMinimum, UnmanagedCode = true)];

  •  Багатостороння дуель 1.6.cpp

// Багатостороння дуель 1.6.cpp: главный файл проекта.

#include "stdafx.h"

#include "Form1.h"

using namespace Багатостороннядуель16;

[STAThreadAttribute]

int main(array<System::String ^> ^args)

{

Application::EnableVisualStyles();

Application::SetCompatibleTextRenderingDefault(false);

 // Создание главного окна и его запуск

Application::Run(gcnew Form1());

 return 0;

}

  1.  Опис роботи програми

         Користувачу ігрової програми «Багатостороння дуель» надається можливість користуватись програмою відповідно до інструкції, поданої нижче.

При відкритті файлу під назвою «Багатостороння дуель 1.6» відкриється меню програми, де поряд з авторською заставкою будуть знаходитись 3 кнопки (рис. 2):

  1.  «Гра!»
  2.  «Відомості про програму»
  3.  «Вихід»

Рисунок 2 – Меню програми

Рекомендується роботу з програмою починати, натиснувши клавішу «Відомості про програму», де знаходиться інструкція з управління (Рис. 3):

Рисунок 3 – Опис роботи програми

Далі, натиснувши кнопку «Гра!» користувачу програми надається можливість:

  1.  Жеребкуванням обрати порядок, у якому розташуються учасники дуелі (С, Б, Д) (рис. 4):

   

а)

б)

в)

Рисунок 4 – Жеребкування

  1.  Натиснувши кнопку «На позиції!» відповідно до оптимальної стратегії, здійснювати постріли кожного дуелянта в порядку, визначеному жеребкуванням поки двоє дуелянтів не будуть вбиті (рис. 5):

а)

б)

в)

Рисунок 5 – Дуель

Обчислення ймовірності виживання (далі - ЙВ) на кожен хід здійснюється наступним чином:

де ЙВ(Ж) – ймовірність виживання жертви, ЙП(Ст) – ймовірність попадання стрільця.

    де ЙВ(Ст) – ймовірність виживання стрільця, ЙП(Ж) – ймовірність попадання жертви.

На основі даних про ЙВ дуелянта на кожен крок обирається опимальна стратегія (ОС) ведення дуелі (у вікні програми ОС позначається '+').

Для виходу з програми необхідно натиснути кнопку «Вийти» або «Вийти з гри» і підтвердити своє бажання (рис. 6):

Рисунок 6 – Вихід

  1.  Аналіз результатів

Результатом проектування розробленого алгоритму на мові програмування С++ стала програма – модель «Багатостороння дуель».

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

Через суперечності первинних тестувань виявлялися помилки, і було знайдено такі недоліки у системі безпеки програми:

  •  Вразливість проведення жеребкування;
  •  Вразливість перевірки умов ситуації «на полі дуелі» після другої перестрілки;
  •  Дописаний метод для перевірки умови відмічення елементів RadioButton при жеребкуванні;
  •  Оптимізований код в блоці умов початку 3-тьої перевірки.

Усі протестовані функції працюють коректно за наявності вище зазначених змін - у структурі відповідного блоку коду.

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


ВИСНОВОК

У ході виконання даної роботи були описані основні переваги програмування та розробки ігрових програм на мові С++ в середовищі Visual Studio C++ 2008 Express Edition і аспекти роботи з графічним інтерфейсом користувача у даному середовищі на мові С++. Для закріплення викладеного матеріалу і демонстрації можливостей засобів підтримки С++ було розроблено гру «Багатостороння дуель»». У роботі представлено основний алгоритм системи, його блок-схема, зображення основних вікон програми, лістинг програми.

Розроблена програма розрахована на запуск на локальному ПК.  Головним недоліком розробки програми є її простота, адже система не вважається важкою у проектуванні.

У ході виконання проекту було отримано наступні навички: робота із візуальним середовищем програмування Microsoft Visual Studio С++ 2008 Express Edition, змінними різних типів, класами та об’єктами, файлами, WIN API, діалоговими вікнами, меню, формами.

Курсова робота присвячена розробці програми для роботи з основними принципами ООП. Початком виконання курсової роботи стало дослідження різного роду інформаційних джерел та ознайомлення з теоретичними засадами; спроектовано зовнішній вигляд інтерфейсу та розподілено функції між його елементами.

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

У ході тестування була перевірена коректність роботи додатку. У цілому, можна стверджувати, що індивідуальне завдання на курсову роботу на тему «Розробка ігрової програми ‘Багатостороння дуель’» виконане.


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

1. Стенлі Ліппман «Основи програмування на С++»

2. Джеф Елджер – «Бібліотека програміста»

3. Форум “Учебники, исходники для программистов (Уроки Windows Forms C++)” //olocoder.ru/VS25.html

4. Інтернет-Університет Інформаційних Технологій // http://www.intuit.ru/

5. Інформаційні технології. Аналітичні матеріали // www.it.ridne.net/

6. Електронний онлайн журнал “Ігроманія” //  www.igromania.ru/

7. Електронний журнал «Лучшие компьютерные игры» // www.lki.ru/

8. Вільна енциклопедія Вікіпедія  // http://uk.wikipedia.org/

9. Форум программистов и сисадминов CyberForum // www.cyberforum.ru/

10. Microsoft Developer Network //msdn.microsoft.com/


Додаток А

Інструкція користувача

1. Вставити DVD-RW диск з грою в DVD-ROM дисковод комп’ютера;

2. Відкрити ярлик гри під назвою «Багатостороння дуель»;

3. У відкритому вікні натиснути кнопку «Відомості про програму» та уважно ознайомитись з інструкцією;

4. Відповідно до інструкції насолоджуватись грою!

5. Для бездискового використання програми:

   5.1. Скопіювати вміст DVD-RW диску на жорсткий диск комп’ютера;

   5.2. Вийняти диск з дисководу;

   5.3. Відкрити скопійований ярлик гри «Багатостороння дуель»;

   5.4. Виконати п.3 та п.4.

Додаток Б

Системні вимоги

- Процесор: 200U (рекомендовано Pentium 333U і вище), розрядність х32/х64;

- Оперативна пам’ять: 50 МБ (рекомендовано 120 МБ);

- Розширення екрану: 640х480х16 (рекомендовано 800х600x32);

- Вільне місце на HDD (для бездискового використання): 20 МБ;

- Операційна система: Windows XP/7/8/8.1/10;

- DVD-ROM дисковод;

- Встановлений продукт “Microsoft Visual C++ 2008/2010 Redistributable x32/x64”


 

А также другие работы, которые могут Вас заинтересовать

67903. СИСТЕМА ЛИЦЕНЗИРОВАНИЯ В МЕХАНИЗМЕ ВОЗДЕЙСТВИЯ НА ПОВЕДЕНИЕ СУБЪЕКТОВ ПРАВОВЫХ ОТНОШЕНИЙ 104.5 KB
  Общая часть объединяет нормы лицензионного права определяющие критерии выделения объектов лицензирования правовой статус субъектов лицензионных правоотношений в том числе полномочия лицензионных органов принципы лицензионного права сферу действия лицензионного законодательства...
67904. МЕРЫ АДМИНИСТРАТИВНОГО ПРЕСЕЧЕНИЯ, ПРИМЕНИМЫЕ К НЕСОВЕРШЕННОЛЕТНИМ, В СФЕРЕ ОХРАНЫ ОБЩЕСТВЕННОГО ПОРЯДКА 48 KB
  Данные меры иногда становятся единственно возможным средством предупреждения и пресечения преступлений и иных правонарушений со стороны несовершеннолетних лиц. Состояние и динамика преступности и правонарушений несовершеннолетних вызывает тревогу. Например, в 2000 г. отмечен небывалый рост преступности несовершеннолетних.
67905. ПРАВОМЕРНОСТЬ И НЕПРАВОМЕРНОСТЬ НЕДЕЙСТВИТЕЛЬНЫХ СДЕЛОК 68.5 KB
  Шахматов писал что неверно относить к неправомерным действиям сделки совершенные под влиянием заблуждения. Одна из сторон заблуждается при определении предмета либо правовой природы сделки но это не является неправомерным. При совершении сделки лицом полностью или частично ограниченным...
67906. ЗАМЕЧАНИЯ К ПРОЕКТУ КОНСТИТУЦИОННОГО АКТА СОЮЗНОГО ГОСУДАРСТВА 39 KB
  Вызывает возражение само название документа его правовая природа. Предлагаю назвать его Конституция либо вернуться к незаслуженно забытому в наших государствах термину Основной Закон. Но при этом возникает вопрос: почему об этом не сказано в преамбуле проекта...
67907. ПОНЯТИЕ И СОДЕРЖАНИЕ АДМИНИСТРАТИВНО-ПРАВОВОГО СТАТУСА ОБЩЕСТВЕННЫХ ОБЪЕДИНЕНИЙ В РОССИЙСКОЙ ФЕДЕРАЦИИ 78 KB
  Последняя проблема как показало исследование наиболее значима для жизнедеятельности нашего общества; это обусловлено тем что общественные объединения являются важной составной частью правового государства выступают связующим элементом между государством и личностью.
67908. ИСТОРИЧЕСКИЕ ПРЕДПОСЫЛКИ СТАНОВЛЕНИЯ ГОСУДАРСТВЕННОЙ СЛУЖБЫ В РОССИИ 81.5 KB
  Развитие и реформирование государственной службы в современной России должно опираться на тот опыт который был накоплен в данной сфере в течение предшествующих периодов развития отечественной государственности. Специфические черты государственной службы в России обусловлены всем ходом ее исторического...
67909. Методические подходы к определению идентификационных признаков неблагополучных регионов 41 KB
  Гранберга на типологию регионов который справедливо полагает что в структуре проблемных регионов необходимо разграничивать отсталые депрессивные и кризисные регионы. К данному типу проблемных регионов принято относить регионы традиционно имеющие низкий уровень жизни по сравнению...
67910. ОСОБЕННОСТИ ИСПОЛЬЗОВАНИЯ ГОСУДАРСТВЕННОЙ СОБСТВЕННОСТИ СУБЪЕКТОВ РФ ДЛЯ ОБЕСПЕЧЕНИЯ ПРЕДПРИНИМАТЕЛЬСКОЙ ДЕЯТЕЛЬНОСТИ 124 KB
  Ведение предпринимательской деятельности не является основной целью публичных образований в нашем случае субъектов Федерации. Вместе с тем существует множество случаев когда участие публичного образования в экономической деятельности необходимо. В частности регулируя предпринимательскую...
67911. МЕХАНИЗМ АДМИНИСТРАТИВНОГО РАССЛЕДОВАНИЯ ДЕЛ О МАТЕРИАЛЬНОЙ ОТВЕТСТВЕННОСТИ ВОЕННОСЛУЖАЩИХ 60 KB
  Механизм административно-правового регулирования расследования дел о материальной ответственности военнослужащих представляет собой способ организации и осуществления привлечения нарушителей к соответствующему виду юридической ответственности, содействует обеспечению правопорядка в Вооруженных Силах...