теження патових ситуацій;
· Можливість завдання довільного розміру поля (якщо є);
· Можливість візуального редагування рівнів (якщо є);
· Управління як з клавіатури, так і мишею;
· Настройку клавіш управління;
· Використання гарячих клавіш;
· Можливість завдання налаштувань в конфігураційному файлі або реєстрі Windows;
· Індикацію поточного рахунку (якщо є);
· Ведення списку чемпіонів для кожного розміру поля;
· Вибір рівня складності гри (якщо є);
· Винесення графічних елементів (курсори, іконки, спрайт) в ресурсний файл (якщо є);
· Наявність інсталятора (показ ліцензії, вибір встановлюваних компонентів, вибір шляху установки і т.п.).
Логічна гра «Морський бій».
розроблюється являє собою програмну реалізацію відомої логічної гри. Додаток повинен забезпечувати:
· Розстановку кораблів на ігровому полі 10х10;
· Вибір супротивника (людина, комп'ютер);
· Зміна інтерфейсу залежно від вибору противника;
· Фіксацію імен супротивників і число перемог.
2. Правила гри
«Морський бій» - гра для двох учасників, в якій гравці по черзі називають координати на невідомій їм мапі суперника. Якщо у суперника по цих координатах мається корабель (координати зайняті), то корабель або його частина «топиться», а потрапив отримує право зробити ще один хід. Мета гравця - першим вразити всі кораблі супротивника.
Ігрове поле - квадрат 10? 10 кожного гравця (малюнок 1), на якому розміщується флот кораблів.
Малюнок 1
Горизонталі зазвичай нумеруються зверху вниз, а вертикалі позначаються буквами зліва направо. При цьому використовуються літери російського алфавіту від «а» до «до» (букви «е» та «ї» зазвичай пропускаються), або букви латинського алфавіту від «a» до «j».
На полі розміщуються:
· 1 корабель - ряд з 4 клітин («лінкори», або «четирёхпалубние»)
· 2 корабля - ряд з 3 клітин («крейсери», або «трёхпалубние»)
· 3 корабля - ряд з 2 клітин («есмінці», або «двопалубні»)
· 4 корабля - 1 клітина («підводного човна», або «однопалубні»)
Палуби корабля не можуть будуватися по діагоналі. При розміщенні кораблі не можуть торкатися один одного кутами.
Поруч зі «своїм» полем чертится «чуже» такого ж розміру, тільки порожнє. Це ділянка моря, де плавають чужі кораблі супротивника.
При попаданні в корабель супротивника - на чужому полі ставиться хрестик, при промаху - крапка. При попаданні потрапив гравець стріляє ще раз.
Гра вважається закінченою, коли будуть убиті всі кораблі одного із супротивників.
2.1 Опис класів ігри
) Клас Ships. Являє собою абстрактний клас, що описує кораблі. Клас містить у собі:
целочисленную змінну amountDeck, в яку буде записуватися кількість палуб для кожного корабля в грі.
цілочисельний двовимірний масив location, в який будуть записуватися координати палуб для кожного корабля на ігровому полі.
) Клас BattleShip. Успадковується від Ships, характеризує чотирипалубних корабель.
) Клас Cruiser. Успадковується від Ships, характеризує трехпалубний корабель.
) Клас Destroyer. Успадковується від Ships, характеризує двопалубний корабель.
) Клас Boat. Успадковується від Ships, характеризує однопалубний корабель.
) Клас Field. Є абстрактним класом. Описує ігрове поле.
У програмі ігрове поле являє собою целочисленную матрицю розміром 10х10. Елементи матриці можуть брати 4 різних значення:
«- 1» - порожня клітка;
«0» - клітина є палубою корабля;
«1» - палуба підбита;
«2» - в цю позицію стріляли, але промахнулися.
На підставі даних цієї матриці здійснюється графічна промальовування ігрових полів.
У класі Field описані наступні функції:
Функція промальовування порожнього ігрового поля.
Функція формування матриці ігрового поля.
Функція завантаження і промальовування завантаж...