- •Занятие 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();
- •Заключение
- •Итог занятия
Итог занятия
На этом занятии мы:
полностью закончили создание игры Морской бой в соответствии с техническим заданием;
завершили выполнение третьего уровня сложности;
запустили и посмотрели окончательный вариант игры.
Занятие 6. "Разработка игры Пасьянс-Косынка. Начало первого уровня сложности"
На этом занятии мы начнем разработку игры Пасьянс-Косынка: - создадим новый проект; - добавим необходимые классы к проекту; - подготовим изображения карт колоды; - реализуем первые три класса проекта.
Уровни сложности при создании игры "Пасьянс-Косынка"подобраны так, что каждый следующий уровень является продолжением предыдущего.
В процессе выполнения задания каждый выбирает уровень сложности по своим силам. После создания своей версии игры, имеет смысл ознакомиться с вариантом игры, описанном в методическом пособии. При программировании полезно иметь собственные результаты и изучать другие примеры разработки. Тогда вы приобретаете собственный опыт и опыт других. Если самостоятельно создать игру до конца не удалось, можно воспользоваться вариантом,представленном в методическом пособии.
Схема создания игры Пасьянс-Косынка
Перед тем как приступить к началу создания проекта, рассмотрим общую схему реализации игры "Пасьянс-Косынка".
Сначала определим схему классов, которые потребуются при создании игры (см. рис. 1).Стоит отметить, что схема классов может быть и другой. При создании любой игры–возможны различные варианты ее написания.
Рис. 1
Всего для создания игры нам потребуется шесть классов. После создания проекта мы добавим к нему шесть файлов: kosinka.java, okno.java, pole.java, game.java, stopka.java, karta.java. Каждый класс будет находиться в отдельном файле.Имя файла будет совпадать с названием класса.Рассмотрим задачи,выполняемые каждым классом:
Класс kosinka, который является главным классом приложения, будет выполнять запуск игры, в нем будет создаваться объект окна для игры и в нем, конечно же, будет метод main().
Класс okno –это класс окна,который наследуется от класса JFrame. В нем будет подключаться панель окна, на которой расположено игровое поле. Также в этом классе будут указаны все параметры окна:его размеры, заголовок и т.д.
Класс pole –это класс панели окна, который наследуется от класса JPanel. Этот класс представляет собой игровое поле.Именно этот класс будет подключаться к окну в классе okno.
Класс game– это класс для реализации логики игры. В этом классе будет реализовано управление игрой,манипулирование стопками карт на игровом поле, управление мышью, контроль действий пользователя.
Этот класс будет самым сложным в проекте.
Класс karta –этот класс будет содержать все свойства и методы, которые характерны для одной карты из колоды.
Класс stopka –это класс стопки карт. Стопка карт может содержать в себе несколько карт –несколько объектов на основании класса karta.
Подготовка изображений для игры
Прежде всего, подготовим необходимые изображения, которые понадобятся при создании игры. В игре"Пасьянс-Косынка" будет использована колода из 52 карт.Это значит, что нам понадобится 52изображения для каждой карты и изображение обратной стороны карты.
Также потребуется изображение фона для игры. Таким образом,всего потребуется 54 картинки. Изображения карт, при желании, можно найти в интернете и воспользоваться каким-нибудь вариантом колоды. На этапе разработки не стоит гнаться за красотой карт и фона. Вполне подойдет любой фон и любая колода карт.После создания игры эти изображения можно заменить другими, более красивыми. На этапе разработки все изображения мы поместим в папку karta,созданную в корне диска C:\. Путь к изображениям будет C:\karta\.Когда все будет закончено эти изображения необходимо поместить уже внутрь JAR-архива. Как обычно–все файлы будут в формате PNG.
Подготовим фоновое изображение: fon.png (см. рис.2), размер 1000x700 –размеры окна по условию задания.
Подготовим изображение для рубашки карты: k0.png (см.рис. 3), размер 72x97 (ширина –72 пикселя, высота - 97 пикселя).Размер приблизительно соответствует размеру карты "Пасьянса-Косынки"дляWindows.
Рис. 2
Рис. 3
При загрузке карт есть один тонкий момент. Чтобы загрузить всю колоду карт с помощью цикла –необходимо сделать закономерность в названиях файлов. Также понадобится закономерность в порядке загружаемых карт. Все названия файлов карт будут начинаться с английской буквы"k", далее будет идти число. Для рубашки карты –это нуль. Для карт–это числа от1до 52. Сделаем так, что карты будут пронумерованы по порядку.
Сначала четыре двойки: k1.png, k2.png, k3.png, k4.png (см. рис. 4)
Рис. 4
Далее четыре тройки: k5.png, k6.png, k7.png, k8.png
И так по возрастанию - до четырех тузов: k49.png, k50.png, k51.png, k52.png
Таким образом, по номеру мы сможем определить какая именно карта находится под этим номером (двойка, тройка,четверка и т.д.).
Кроме возрастания значений карт –мы еще сделаем закономерность для мастей карт: крести, пики, черви, буби (см.рис. 4). В каждой группе однозначных карт–масти будут расположены именно в этом порядке. Смысл такой, что одна и та же масть будет повторяться через четыре.
Крести:k1.png, k5.png, k9.png, и т.д.
Пики: k2.png, k6.png, k10.png, и т.д.
Черви: k3.png, k7.png, k11.png, и т.д.
Буби: k4.png, k8.png, k12.png, и т.д.
При таком подходе при загрузке колоды в игру –мы сможем это выполнить в цикле и по номеру определить карту и ее масть.
Размеры всех карт колоды будут одинаковыми, и совпадать с размерами рубашки карт: 72x97 (ширина –72 пикселя, высота- 97 пикселя).
Теперь, когда все 54 файла находятся в папке C:\karta\ - приступим к созданию проекта в Eclipse.
