- •Занятие 1. "Постановка задания для разработки игры Змейка. Работа с двумерным массивом"
- •Правила самостоятельной разработки игр данного курса
- •Работа с двумерным массивом в Java
- •Применение двумерного массива при создании игр
- •Постановка задания по созданию игры Змейка
- •Разделение задания для трех уровней сложности
- •План разработки проекта
- •Алгоритм для реализации игры Змейка
- •Перемещать голову змейки в нужном направлении.
- •Удалять хвост змейки. Удаление хвоста равносильно записи нулевого значения в элемент массива, где находилось число, отвечающее за хвост змейки.
- •Итог занятия
- •Занятие 2. "Постановка задания для разработки игры Морской бой"
- •Постановка задания по созданию игры Морской бой
- •Разделение задания для трех уровней сложности
- •Рекомендации для реализации игровых полей игры Морской бой
- •Алгоритм для реализации игры "Морской бой"
- •Генерация кораблей на игровом поле
- •Итог занятия
- •Занятие 3. "Постановка задания для разработки игры Пасьянс-Косынка"
- •Правила игры Пасьянс-Косынка
- •Упаковка файлов изображений внутрьJar-архива
- •Работа со списком в Java
- •Import java.Util.ArrayList;
- •Постановка задания по созданию игры Пасьянс-Косынка
- •Разделение задания для трех уровней сложности
- •Алгоритм перемешивания карт в колоде
- •Создание массива списков значений
- •Итог занятия
- •Заключение
- •Занятие 1. "Разработка игры Змейка. Первый и второй уровень сложности"
- •Рекомендации для изучения программного кода игр
- •Изучаемый программный код необходимо самостоятельно вводить с клавиатуры в среде разработки, глядя на образец в печатном издании.
- •Каждую строчку, каждый фрагмент программного кода стараться максимально разобрать и понять смысл. Не следует бездумно переписывать программный код и запускать!
- •Моменты, которые вызывают особые сложности в понимании, стараться нарисовать на бумаге или пройти пошагово.Например, цикл, который использует формулу с изменяющимися переменными в цикле.
- •Старайтесь больше экспериментировать с записанным программным кодом. Изменяйте значение кого-нибудь параметра и запускайте программу. Смотрите на изменения.
- •После разбора фрагмента программного кода –закрывайте книгу и начинайте пытаться записать свой программный код,который выполняет тоже самое, при этом, не заглядывая в книгу - с чистого листа.
- •Реализация первого уровня сложности игры Змейка Подготовка изображений для игры Змейка
- •Создание проекта и файлов классов игры Змейка
- •Реализация второго уровня сложности игры Змейка(начало)
- •Итог занятия
- •Занятие 2. "Разработка игры Змейка. Второй и третий уровень сложности"
- •Реализация второго уровня сложности игры Змейка(завершение)
- •Реализация третьего уровня сложности игры Змейка
- •Механизм перемещения змейки
- •Итог занятия
- •Занятие 3. "Разработка игры Морской бой. Первый уровень сложности"
- •Создание проекта и файлов классов игры Морской бой
- •Итог занятия
- •Занятие 4. "Разработка игры Морской бой. Второй уровень сложности"
- •Реализация второго уровня сложности игры Морской бой
- •Обозначения состояния ячейки игрового поля
- •Отрисовка игрового поля на основании двумерного массива
- •Ситуация выхода за пределы массива
- •Генерация однопалубных кораблей
- •Генерация четырехпалубного корабля
- •Итог занятия
- •Занятие 5. "Разработка игры Морской бой. Третий уровень сложности"
- •Реализация третьего уровня сложности игры Морской бой
- •Выполнение ходов игроком и компьютером
- •Стратегия ходов компьютера
- •Итог занятия
- •Занятие 6. "Разработка игры Пасьянс-Косынка. Начало первого уровня сложности"
- •Подготовка изображений для игры
- •Создание проекта и файлов классов игры Пасьянса-Косынка
- •Реализация класса kosinka
- •Реализация класса okno
- •Import javax.Swing.*;
- •Import java.Awt.*;
- •Реализация класса pole
- •Реализация класса karta
- •Import javax.Imageio.*;
- •Import java.Awt.*;
- •Import java.Io.*;
- •Итог занятия
- •Занятие 7. "Разработка игры Пасьянс-Косынка. Завершение первого уровня сложности"
- •Реализация класса stopka
- •Import java.Util.ArrayList;
- •Начало реализации класса game
- •Реализация класса pole
- •Завершение реализации класса game для первого уровня сложности
- •Vidacha();
- •Итог занятия
- •Занятие 8. "Разработка игры Пасьянс-Косынка. Второй уровень сложности"
- •Перерисовка всех стопок карт
- •Stopki[I].Get(stopki[I].Size()-2).Draw(gr);
- •Раздача карт в нижние семь стопок
- •Начало реализации третьего уровня сложности
- •Итог занятия
- •Занятие 9. "Разработка игры Пасьянс-Косынка. Третий уровень сложности"
- •// Получаем номер верхней карты
- •Тестирование переноса
- •Vidacha();
- •Заключение
- •Итог занятия
Итог занятия
На этом занятии мы:
полностью закончили создание игры Змейка в соответствии с техническим заданием;
завершили выполнение второго уровня сложности;
на базе второго уровня выполнили третий уровень сложности.
Занятие 3. "Разработка игры Морской бой. Первый уровень сложности"
На этом занятии мы начнем разработку игры Морской бой: - создадим новый проект; - рассмотрим необходимые изображения; - добавим необходимые классы к проекту;
Уровни сложности при создании игры Морской бой подобраны так,что каждый следующий уровень является продолжением предыдущего.
В процессе выполнения задания каждый выбирает уровень сложности по своим силам. После создания своей версии игры имеет смысл ознакомиться с вариантом игры, описанном в методическом пособии.Если самостоятельно создать игру до конца не удалось, то можно воспользоваться вариантом, представленном в методическом пособии.
Схема создания игры Морской бой
Перед тем как приступить к началу создания проекта, рассмотрим общую схему реализации игры Морской бой. Во многом она будет похожа на схему создания игр "Новогодний дождь" и "Змейка".
Сначала определим схему классов, которые потребуются при создании игры. Всего для создания игры нам потребуется четыре класса (см. рис. 1).
Рис. 1
После создания проекта мы добавим к нему четыре файла, каждый класс будет находиться в отдельном файле.Название каждого файла должно соответствовать названию класса с учетом регистра букв!
Рассмотрим задачи,выполняемые каждым классом:
Класс mb,который является главным классом приложения, будет выполнять запуск игры. В нем создается объект окна для игры и находится метод main().
Класс okno –это класс окна,который наследуется от класса JFrame. В нем будет подключаться панель окна, на которой расположено игровое поле. Также в этом классе будут указаны все параметры окна:его размеры, заголовок и т.д.
Класс pole –это класс панели окна, который наследуется от класса JPanel.Этот класс представляет собой игровое поле. Именно этот класс будет подключаться к окну в классе okno. Вся графика (отрисовка игрового поля), настройка таймеров, обработка событий от мыши будет происходить именно в этом классе. Но все данные для отрисовки игрового поля класс poleбудет получать из класса game, в котором находятся два двумерных массива.
Класс game– это класс для реализации логики игры. В этом классе будут находиться два двумерных массива, и все операции с двумерным массивом будут производиться именно в этом классе. Классpole будет постоянно обращаться к классу game, чтобы выполнить отрисовку игрового поля по данным двумерных массивов. Данные массивов будут зеркально отображаться на игровом поле в классе pole, но сами изменения данных массивов будут происходить в классе game.
Такая схема классов не является единственно верной при создания игры Морской бой. Программист сам определяет схему классов и их название.Алгоритм игры, использованный при реализации игры Морской бой, также не является единственным. Программист может использовать алгоритм по своему усмотрению.
Реализация первого уровня сложности игры Морской бой
Подготовка изображений для игры Морской бой
Прежде всего, подготовим необходимые изображения, которые понадобятся при создании игры. На этапе разработки можно взять простые изображения, сделанные в любом графическом редакторе и писать программный код с их использованием. Вполне подойдут картинки,найденные в интернете или сделанные самостоятельно. Когда игра будет закончена полностью, можно сделать более внушительный дизайн, заменив исходные варианты картинками такого же размера, но с более привлекательным дизайном. Вспомним,что основной формат при разработке наJava –это формат PNG. Именно в этом формате необходимо подготовить изображения.
Выполнить конвертацию в формат PNG можно во многих графических редакторах.
Для игры Морской бой понадобятся семь изображений:
1) Основной фон
2) Палуба корабля в начальном состоянии
3) Палуба корабля в раненом состоянии
4) Палуба полностью убитого корабля
5) Изображение бомбы для пометки ячеек с выстрелом
6) Изображение о конце игры с сообщением о поражении
7) Изображение о конце игры с сообщением о победе
Подготовим следующие изображения:
fon.png (см. рис. 2) –это фоновое изображение, размер 900x600 –размеры окна по условию задания.
Рис. 2
paluba.png (см. рис. 3) –палуба корабля в начальном состоянии, размер 30x30 –размер одной ячейки игрового поля по условию задания.
Рис. 3
ranen.png (см. рис. 4) –палуба корабля в "раненом" состоянии,размер 30x30 –размер одной ячейки игрового поля по условию задания.
Рис. 4
ubit.png (см. рис. 5) –палуба полностью"убитого" корабля, размер 30x30 –размер одной ячейки игрового поля по условию задания.
Рис. 5
bomba.png (см. рис. 6) –изображение бомбы для пометки ячейки с выстрелом, размер 30x30 –размер одной ячейки игрового поля по условию задания.
Рис. 6
end1.png (см. рис. 7) –изображение об окончании игры с сообщением о победе, размер 300x100 –размер взят произвольно.
Рис. 7
end2.png (см. рис. 8) –изображение об окончании игры с сообщением о поражении, размер 300x100–размер взят произвольно.
Рис. 8
Все семь изображений поместим, например, в корень диска C:\. В процессе разработки игры изображения будут загружаться из корня диска C:\. После окончания создания игры мы поместим их внутрь JAR-архива.
