- •Занятие 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();
- •Заключение
- •Итог занятия
Итог занятия
На этом занятии мы:
закончили реализацию игры"Пасьянс-Косынка" для первого уровня сложности;
полностью закончили еще два класса проекта;
реализовали работу со стопками карт.
Занятие 8. "Разработка игры Пасьянс-Косынка. Второй уровень сложности"
На этом занятии мы выполним реализацию второго уровня сложности игры Пасьянс-Косынка: - создадим метод для полной раздачи карт в начале игры; - выполним перерисовку всех стопок карт;
Приступим к реализации второго уровня сложности игры "Пасьянс-Косынка". В дополнение к перовому уровню сложности необходимо выполнить раздачу карт в нижние семь стопок (см. рис. 1). При каждой новой игре –карты должны раздаваться новым случайным образом. Самая верхняя карта в каждой стопке должна быть открытой. Остальные карты должны находиться рубашкой вверх.
Рис. 1
В самой левой нижней стопке должна быть всего одна карта. В стопке правее две карты и так далее. В самой правой нижней стопке соответственно будет семь карт. Во всех семи нижних стопках всего будет 28карт. Это значит, что в левой верхней стопке останется всего 24карты. Еще раз вспомним нумерацию стопок в массиве (см. рис.2).
Рис. 2
Перерисовка всех стопок карт
Сейчас метод drawKoloda()выполняет перерисовку только двух стопок карт с номерами 0 и1. Выполним доработку этого метода, чтобы он выполнял перерисовку всех стопок карт на игровом поле. Начнем с рисования четырех домашних стопок с номерами 2, 3, 4, 5. Принцип их рисования ничем не отличается от рисования стопки с номером0. В метод drawKoloda() добавим программный код для рисования домашних стопок:
//ЧЕТЫРЕ ДОМАШНИЕ СТОПКИ
for (int i=2;i<=5;i++)
{
//Если в стопке более одной карты
if (stopki[i].size()>1)
{
// Получаем и рисуем вторую сверху карту
Stopki[I].Get(stopki[I].Size()-2).Draw(gr);
// Получаем и рисуем самую верхнюю карту
stopki[i].get(stopki[i].size()-1).draw(gr);
}
else if (stopki[i].size()==1) // если в стопке одна карта
{
// Получаем и рисуем самую верхнюю карту
stopki[i].get(stopki[i].size()-1).draw(gr);
}
}
Четыре домашние стопки мы будем перерисовывать с помощью цикла,который перебирает сразу четыре стопки.
Ситуация с рисованием нижних семи стопок несколько отличается.Все карты каждой нижней стопки должны рисоваться со смещением сверху вниз.Смещение должно быть таким, чтобы в открытом состоянии карт стопки -были видны все карты (см. рис. 3).
Рис. 3
Метод рисования только отображает карты с их текущими координатами. Поэтому смещение карт сверху вниз необходимо создавать при раздаче карт из главной колоды.
В метод drawKoloda() добавим программный код для рисования нижних семи стопок:
// НИЖНИЕ СЕМЬ СТОПОК
for (int i=6;i<13;i++)
{
//Если в стопке есть карты
if (stopki[i].size()>0)
{
// Перебираем все карты из стопки
for (int j=0;j<stopki[i].size();j++)
{
// Рисуем карту
stopki[i].get(j).draw(gr);
}
}
}
В верхнем цикле перебираем все нижние семь стопок. Если в стопке имеются карты, то перебираем их все от начала до конца во внутреннем цикле и рисуем каждую карту.
Теперь метод drawKoloda() выполняет рисование всех тринадцати стопок.
