русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Рекомендации для реализации игровых полей игры Морской бой


Дата добавления: 2015-06-12; просмотров: 3049; Нарушение авторских прав


Приемы загрузки изображений, работа с таймером отрисовки,отрисовка игрового поля, работа с графикой–для игры"Морской бой" реализуется также как и для игры "Змейка". Такие же приемы были использованы при создании игры "Новогодний дождь". Построение интерфейса пользователя, размещение кнопок, обработка событий при нажатии кнопок – всё это было изучено при создании приложений под Windows с построением интерфейса пользователя. В отличие от игры "Змейка", управление игрой будет полностью осуществляться с помощью мыши. Работа с мышью была рассмотрена при создании приложения для рисования. Все технические моменты можно найти в методической литературе по курсу Java.

Алгоритм для реализации игры "Морской бой"

Основная часть работы–это реализация алгоритма игры "Морской бой".Для решения задачи можно найти несколько различных алгоритмов ее решения. Другими словами, несколько планов (схем)действий.

Для хранения информации о двух игровых полях можно воспользоваться двумя двумерными массивами целых чисел. Размер одного игрового поля 10x10, поэтому размерность каждого массива будет также 10x10. Один массив будет хранить данные игрового поля компьютера, а другой игрока.

// Массив для игрового поля компьютера

int[][] masComp;

// Массив для игрового поля игрока

int[][] masPlay;

//Создаем массив 10x10 - игровое поле компьютера

masComp = new int[10][10];

//Создаем массив 10x10 - игровое поле игрока

masPlay = new int[10][10];

Решим, что свободные ячейки игровых полей будут отмечаться в массиве нулями. Поэтому при старте игры оба массива буду обнуляться:

//Очищаем игровое поле компьютера и игрока

for (int i = 0; i < 10; i++) {

for (int j = 0; j < 10; j++) {

masComp[i][j] = 0;

masPlay[i][j] = 0;



}

}

Все данные игровых полей будут храниться в массивах. Различные варианты состояния игрового поля мы будем отмечать отдельным числом.

Один из вариантов выглядит так:

· Число один 1:палуба однопалубного корабля

· Число два 2:каждая палуба двухпалубного корабля

· Число три 3:каждая палуба трехпалубного корабля

· Число четыре 4:каждая палуба четырехпалубного корабля

· При выстреле в определенную ячейку к ее значению будет прибавляться число семь7

· Пространство вокруг корабля будет обозначаться числом минус один -1, в это пространство нельзя поставить другой корабль

· Когда корабль будет полностью подбит ко всем значениям его ячеек будем прибавлять еще одно число семь 7

К примеру, начальное расположение кораблей выглядит так (см. рис. 20).

Рис. 20

На основании предложенной схемы –значения в двумерном массиве будут выглядеть так (см. рис.21).

Рис. 21

Сравните вид игрового поля на (см. рис. 20) и его отображение в двумерном массиве (см. рис. 21). Все палубы кораблей отмечены значениями: 1,2,3,4, пространство вокруг отмечено минус единицей -1, а все свободные ячейки заполнены нулями0. Таймер отрисовки будет постоянно отрисовывать игровое поле на основании чисел в массиве и программирование логики игры сведется к программированию двумерного массива.Общий подход к созданию игры "Морской бой"полностью совпадает с подходом к созданию игры "Змейка".

При выстреле в любую ячейку прибавляем к ее значению число семь7.

После двух выстрелов по игровому полю оно станет выглядеть так(см. рис. 22). Один выстрел попал и ранил четырехпалубный корабль, а другой выстрел попал мимо (см. рис. 22).

Рис. 22

Теперь посмотрим на изменения в двумерном массиве (см. рис. 23), которое соответствует двум выстрелам. К двум значениям элементов массива прибавилось число семь 7.

Рис. 23

После того как корабль будет полностью подбит ко всем значениям его ячеек прибавляем снова число семь7. Так выглядит игровое поле после трех дополнительных выстрелов, попавших в три палубы четырехпалубного корабля (см. рис. 24).

Рис. 24

Изменения, которые произошли в двухмерном массиве выглядят так (см. рис. 25)

Рис. 25

После четвертого попадания в четырехпалубный корабль значения в ячейках будут 11(4+7) (см. рис.26). После полного уничтожения корабля мы прибавляем ко всем подбитым палубам еще раз число 7, тем самым помечаем, что это палубы полностью убитого корабля. В результате получаем состояние двумерного массива(см. рис. 25).

Рис. 26

Подход, который рассмотрен выше не является единственным и вы можете использовать свой вариант!



<== предыдущая лекция | следующая лекция ==>
Разделение задания для трех уровней сложности | Генерация кораблей на игровом поле


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.431 сек.