- •Занятие 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();
- •Заключение
- •Итог занятия
Занятие 1. "Разработка игры Змейка. Первый и второй уровень сложности"
На этом занятии мы начнем разработку игры Змейка: - создадим новый проект; - добавим необходимые классы к проекту; - реализуем первый уровень сложности; - начнем реализовывать второй уровень сложности на базе первого уровня
Уровни сложности при создании игры Змейка подобраны так, что каждый следующий уровень является продолжением предыдущего. В процессе выполнения задания каждый выбирает уровень сложности по своим силам. После создания своей версии игры, имеет смысл ознакомиться с вариантом игры, описанном в методическом пособии. При программировании полезно иметь собственные результаты и изучать другие примеры разработки. Тогда вы приобретаете собственный опыт и опыт других. Если самостоятельно создать игру до конца не удалось, можно воспользоваться вариантом,представленном в методическом пособии.
Рекомендации для изучения программного кода игр
Изучаемый программный код необходимо самостоятельно вводить с клавиатуры в среде разработки, глядя на образец в печатном издании.
Далее программный код необходимо отладить и выполнить для просмотра результатов.
Каждую строчку, каждый фрагмент программного кода стараться максимально разобрать и понять смысл. Не следует бездумно переписывать программный код и запускать!
Моменты, которые вызывают особые сложности в понимании, стараться нарисовать на бумаге или пройти пошагово.Например, цикл, который использует формулу с изменяющимися переменными в цикле.
Допустим, в программном коде имеется следующий цикл, который вызывает сложности в понимании:
for (int i = 0; i <= 30; i++)
{
gr.drawLine(10+i*20, 10, 10+i*20, 610);
}
Пройдем цикл пошагово,сделаем четыре первых шага цикла:
Первый шаг:i=0, gr.drawLine(10, 10, 10, 610);
Второй шаг:i=1, gr.drawLine(30, 10, 30, 610);
Третий шаг:i=2, gr.drawLine(50, 10, 50, 610);
Третий шаг:i=3, gr.drawLine(70, 10, 70, 610);
Глядя на эти записи, мы четко видим смысл происходящего: первый и третий параметр на каждом шаге увеличивается на 20.
Старайтесь больше экспериментировать с записанным программным кодом. Изменяйте значение кого-нибудь параметра и запускайте программу. Смотрите на изменения.
После разбора фрагмента программного кода –закрывайте книгу и начинайте пытаться записать свой программный код,который выполняет тоже самое, при этом, не заглядывая в книгу - с чистого листа.
Помните!!!Изучаемый программный код, который не прошел проработку по указанным выше пяти пунктам, практически очень слабо усваивается! Визуальный просмотр программного кода с кажущимся пониманием – не имеет большого смысла! Такие знания слабо откладываются в памяти,а навыки не закрепляются! Ваше мастерство – в ваших руках!!!
Все эти рекомендации относятся к изучению программного кода всех трех игр методического пособия(Змейка, Морской бой,Пасьянс-Косынка) и справедливы для изучения программного кода по другим книгам программирования.
Схема создания игры Змейка
Перед тем как приступить к началу создания проекта, рассмотрим общую схему реализации игры Змейка. Во многом она будет похожа на схему создания игры "Новогодний дождь".
Сначала определим схему классов, которые потребуются при создании игры. Всего для создания игры нам потребуется четыре класса (см. рис. 1):
Рис. 1
После создания проекта мы добавим к нему два файла: zmeika.java и game.java. Классы zmeika, myFrame, myPanelбудут находиться в файле zmeika.java; класс game будет находиться в файле game.java.Другими словами в первом файле будут находиться сразу три класса, которые отвечают за запуск игры и ее графическое представление. Класс, отвечающий за логику игры, будет находиться в отдельном файле.
Рассмотрим задачи,выполняемые каждым классом:
Класс zmeika, который является главным классом приложения, будет выполнять запуск игры, в нем будет создаваться объект окна для игры и в нем, конечно же, будет метод main().
Класс myFrame –это класс окна,который наследуется от класса JFrame. В нем будет подключаться панель окна, на которой расположено игровое поле. Также в этом классе будут указаны все параметры окна:его размеры, заголовок и т.д.
Класс myPanel –это класс панели окна, который наследуется от класса JPanel.Этот класс представляет собой игровое поле. Именно этот класс будет подключаться к окну в классе myFrame. Вся графика (отрисовка игрового поля), настройка таймеров, обработка клавиатуры будет происходить именно в этом классе. Но все данные для отрисовки игрового поля класс myPanelбудет получать из класса game, в котором находиться двумерный массив.
Класс game– это класс для реализации логики игры. В этом классе будет находиться двумерный массив, и все операции с двумерным массивом будут производиться именно в этом классе. КлассmyPanel будет постоянно обращаться к классу game, чтобы выполнить отрисовку игрового поля по данным двухмерного массива. Данные массива будут зеркально отображаться на игровом поле в классе myPanel, но сами изменения данных массива будут происходить в классе game.
Такая схема классов,конечно же, не является единственной для создания игры Змейка. Программист сам определяет для себя схему классов и их название.
Алгоритм игры,использованный при реализации игры Змейка, также не является единственным. Программист может использовать алгоритм по своему усмотрению. На начальном этапе программирования не стоит гнаться за малым объемом программного кода. Главное больше практики! Полный вариант игры Змейка,представленный в данном методическом пособии (если убрать из него пустые строки и комментарии) в сумме будет составлять250 строк программного кода.С вашим опытом объем программного кода будет уменьшаться!
