- •Занятие 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();
- •Заключение
- •Итог занятия
Создание массива списков значений
Мы говорили о списке значений, но на игровом поле их будет тринадцать. Создавать тринадцать отдельных переменных не очень хороший вариант, поэтому удобнее воспользоваться массивом списков значений. Каждый элемент массива будет списком значений. При создании игры логично будет создать отдельный класс, реализующий одну карту из колоды.
Допустим создан отдельный класс, реализующий карту из колоды с названием karta. Тогда можно создать список значений –каждый элемент которого будет иметь типkarta.
ArrayList<karta> lst = new ArrayList<karta>();
Для одной стопки карт можно создать отдельный класс, назовем егоstopka:
// Подключение класса для списка значений
import java.util.ArrayList;
// Класс стопки карт игрового поля
public class stopka
{
// Список значений
private ArrayList<karta> lst;
// Конструктор класса
public stopka()
{
//Создание пустого списка значений
lst = new ArrayList<karta>();
}
// Получение карты из списка по номеру
public karta get(int nom)
{
return lst.get(nom);
}
//Добавление новой карты в список
public void add(karta elem)
{
lst.add(elem);
}
// Удаление карты из списка по номеру
public void remove(int nom)
{
lst.remove(nom);
}
// Получение количества элементов в списке
public int size()
{
return lst.size();
}
// Удаление всех элементов списке
public void clear()
{
lst.clear();
}
}
Класс реализован на основании списка значений и в нем находятся все методы, необходимые для работы со списком (стопкой карт).Программный код класса stopkaявляется полностью законченным, и его можно использовать при создании игры. Для этого вам придется самостоятельнореализовать класс karta– класс для карты из колоды.
После создания классаstopkaможно создать массив для тринадцати стопок карт:
// Создание массива из тринадцати стопок карт
stopka[] stopki = new stopka[13];
После создания массива необходимо создать объект в каждом элементе массива:
for (int i=0;i<13;i++)
{
stopki[i] = new stopka();
}
Для обращения к необходимой стопке карт необходимо указать ее номер в квадратных скобках:stopki[0]. Чтобы получить самую первую карту из первой стопки карт необходимо записать так:stopki[0].get(0)
Итог занятия
На этом занятии мы:
изучили работу со списком на языкеJava;
ознакомились с техническим заданием по созданию игры Пасьянс-Косынка;
познакомились с алгоритмом размешивания карт в колоде;
научились выполнять упаковку файлов с изображениями внутрь JAR-архива.
Заключение
В данном курсе программирования мы получили хороший практический опыт!
Мы узнали, что самостоятельное создание игр –это не такая простая задача и требует навыков и терпения.Понимать в теории - это хорошо, но лишь практика всё ставит на свои места.
Без этого модуля наш курс по программированию на Javaбыл бы неполным.
Только после самостоятельного создания программ можно говорить о получении базовых навыков в программировании.
Вспомним еще раз известную фразу: "Программистами не рождаются –программистами становятся!" Не стоит отчаиваться и опускать руки –если что-то не получается. Нужно понимать одну важную вещь, что через этот этап проходили все программисты. Как и в любом другом деле, для результатов в программировании нужно время и терпение. В этом модуле было важно именно пробовать писать и отлаживать программный код. Любая практика создания программного кода –это положительный результат, даже если эта практика не привела к конечному результату! Неудачная попытка –это тоже бесценный опыт, который со временем даст результаты.
Курс программирования на языке Java является базовым курсом по основам программирования. Он открывает дверь в интересный мир программирования!Увлечение программированием не имеет конечной точки –всегда есть что-то новое и еще неизученное. Информационные технологии развиваются очень быстро, и это развитие приносит много новых возможностей и направлений программирования.
Пусть этот курс станет искрой, которая разожжет интерес к программированию и положит старт для ваших будущих проектов!
