Перед тем как приступить к началу создания проекта, рассмотрим общую схему реализации игры Морской бой. Во многом она будет похожа на схему создания игр "Новогодний дождь" и "Змейка".
Сначала определим схему классов, которые потребуются при создании игры. Всего для создания игры нам потребуется четыре класса (см. рис. 1).
Рис. 1
После создания проекта мы добавим к нему четыре файла, каждый класс будет находиться в отдельном файле.Название каждого файла должно соответствовать названию класса с учетом регистра букв!
Рассмотрим задачи,выполняемые каждым классом:
1. Класс mb,который является главным классом приложения, будет выполнять запуск игры. В нем создается объект окна для игры и находится метод main().
2. Класс okno –это класс окна,который наследуется от класса JFrame. В нем будет подключаться панель окна, на которой расположено игровое поле. Также в этом классе будут указаны все параметры окна:его размеры, заголовок и т.д.
3. Класс pole –это класс панели окна, который наследуется от класса JPanel.Этот класс представляет собой игровое поле. Именно этот класс будет подключаться к окну в классе okno. Вся графика (отрисовка игрового поля), настройка таймеров, обработка событий от мыши будет происходить именно в этом классе. Но все данные для отрисовки игрового поля класс poleбудет получать из класса game, в котором находятся два двумерных массива.
4. Класс game– это класс для реализации логики игры. В этом классе будут находиться два двумерных массива, и все операции с двумерным массивом будут производиться именно в этом классе. Классpole будет постоянно обращаться к классу game, чтобы выполнить отрисовку игрового поля по данным двумерных массивов. Данные массивов будут зеркально отображаться на игровом поле в классе pole, но сами изменения данных массивов будут происходить в классе game.
Такая схема классов не является единственно верной при создания игры Морской бой. Программист сам определяет схему классов и их название.Алгоритм игры, использованный при реализации игры Морской бой, также не является единственным. Программист может использовать алгоритм по своему усмотрению.