Розробка алгоритму гри «морскький бій»
Як відомо з правил гри, на полі повинні знаходитися наступні кораблі: один чотири палубний, два трьохпалубних, три двопалубних і чотири однопалубних. Функція, що розставляє ці кораблі повинна виконувати наступні дії: узяти випадкове вільне вічко і перевірити, чи можна поставити поточний корабель горизонтально або вертикально. Якщо так, то корабель розміщується на ігровому полі і обробка… Читати ще >
Розробка алгоритму гри «морскький бій» (реферат, курсова, диплом, контрольна)
Алгоритм розташування кораблів на ігровому полі
Ігрове поле потрібно якось зберігати в пам’яті комп’ютера. Найбільш проста реалізація — у вигляді матриці 10×10 кліток (вічок).
Обумовимося, що порожнє вічко матиме значення -1, а вічко, в якому знаходиться корабель: 0. Перед початком процесу розміщення кораблів необхідно очистити поле. Окрім цього треба ще і відновити лічильник випадкових чисел, що б добитися реальної випадковості позицій флоту комп’ютера.
По правилах гри два кораблі не можуть стикатися один з одним, тобто між ними має бути порожній простір мінімум в одну клітку. Нам знадобиться допоміжна функція, яка дозволить визначити, чи можна поставити однопалубний корабель у вказане вічко чи ні. Для цього необхідно перевірити саму це вічко і всі сусідні (їх 8 штук). І лише якщо всі вони не зайняті можна дати позитивну відповідь (True), інакше — негативний (False).
Як відомо з правил гри, на полі повинні знаходитися наступні кораблі: один чотири палубний, два трьохпалубних, три двопалубних і чотири однопалубних. Функція, що розставляє ці кораблі повинна виконувати наступні дії: узяти випадкове вільне вічко і перевірити, чи можна поставити поточний корабель горизонтально або вертикально. Якщо так, то корабель розміщується на ігровому полі і обробка переходить до наступного. Зрозуміло, що якщо немає, то повертаємося до вибору координат. Порядок дій має бути від більшого корабля до меншого, що б не виникла ситуація неможливості розміщення ні в одну позицію поля.
Це, власне, і все, що стосується розміщення кораблів комп’ютера.