- •Занятие 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();
- •Заключение
- •Итог занятия
Перемещать голову змейки в нужном направлении.
Удалять хвост змейки. Удаление хвоста равносильно записи нулевого значения в элемент массива, где находилось число, отвечающее за хвост змейки.
При таком подходе тело змейки будет автоматически проходить по нужному пути. Это и есть пример алгоритма(схемы, плана действий) для решения определенной задачи. Пока неизвестен алгоритм –бесполезно писать программный код!
Внимание!!!Далее предстоит самостоятельное создание игры Змейка на основе полученного задания и вспомогательной информации.
Итог занятия
На этом занятии мы:
Изучили работу с двумерными массивами и их использование при создании игр.
Ознакомились с техническим заданием по созданию игры Змейка.
Познакомились с рекомендуемыми алгоритмами для создания игры Змейка.
Занятие 2. "Постановка задания для разработки игры Морской бой"
На этом занятии мы ознакомимся с техническим заданием по разработке игры Морской бой: - рассмотрим три уровня сложности при создании игры; - поговорим об алгоритме создания игры Морской бой
Постановка задания по созданию игры Морской бой
Создайте компьютерную игру Морской бой, интерфейс которой изображен ниже (см. рис.1).
Рис. 1
Схема игры
Размеры двух игровых полей(компьютера и игрока) - 10x10 (10 клеток по ширине и 10 клеток по высоте).
Игровые поля сделайте в виде сетки из линий (см. рис. 2).
Рис. 2
Размеры одной клетки - 30x30 (30 пикселей по ширине и 30 пикселей по высоте).
Игра должна располагаться внутри окна - 900x600 (900 пикселей по ширине и 600пикселей по высоте).
В заголовке окна должна быть надпись: Игра "Морской бой" (см. рис. 3)
Рис. 3
Пользователь не должен иметь возможность изменять размеры окна по ширине или высоте.
Снизу от игровых полей должны располагаться две кнопки: Новая игра, Выход(см. рис. 4). При нажатии на кнопку Новая игра–игра начинается снова. При нажатии на кнопку Выход –происходит выход из игры с закрытием окна игрового поля.
Рис. 4
Строки двух игровых полей пронумеруйте от 1 до 10 сверху вниз (см. рис. 5)слева от игровых полей.
Рис. 5
Колонки двух игровых полей подпишите английскими буквами от A до Jсверху игровых полей (см. рис. 6).
Рис. 6
Игровое поле компьютера расположите- слева, а игровое поле игрока –справа. Сверху каждого из двух полей разместите подпись игрового поля (см. рис. 7).
Рис. 7
Вся игра должна располагаться на общем фоновом изображении.
Все ячейки игровых полей, в которые производились выстрелы, помечаются изображением с бомбой (см. рис. 8).
Рис. 8
Все палубы кораблей игрока, которые не подбиты отмечаются одним видом изображения (см. рис. 9).
Рис. 9
Все палубы кораблей игрока и компьютера, которые ранены отмечаются вторым видом изображения. А сверху помещается изображение бомбы (см. рис. 10).
Рис. 10
Все палубы убитых кораблей игрока и компьютера отмечаются третьим видом изображения. А сверху помещается изображение бомбы (см. рис. 11).
Рис. 11
В случае победы компьютера в центре игрового поля должно выводиться изображение с сообщением о победе компьютера (см. рис. 12).
Рис. 12
В случае победы игрока в центре игрового поля должно выводиться изображение с сообщением о победе игрока (см. рис. 13).
Рис. 13
В начале игры компьютер очищает два игровых поля и автоматически расставляет корабли компьютера и игрока. На каждом игровом поле располагает:
1корабль —ряд из 4 клеток ("четырёхпалубный")
2корабля —ряд из 3 клеток ("трёхпалубные")
3корабля —ряд из 2 клеток ("двухпалубные")
4корабля —1клетка ("однопалубные")
Палубы кораблей могут располагаться только вдоль прямой линии.
Между всеми кораблями должна быть минимум одна пустая клетка! В том числе и по диагонали! (см. рис. 14).
Рис. 14
В начале игры компьютер расставляет корабли на двух полях, но показывает только корабли игрока, а свои скрывает (см. рис. 15).
Рис. 15
Компьютер расставляет корабли в начале игры случайным образом! Для расстановки кораблей на двух игровых полях компьютер использует одинаковый алгоритм.
Компьютер должен вести игру по честным правилам!!!Все ходы компьютер производит "не подглядывая"в данные игрока!Компьютер лишь хранит данные игрока и выводит их на игровое поле.
После начала игры –первый ход всегда принадлежит игроку!При промахе ход переходит к другой стороне. При попадании ходы продолжаются. Игра продолжается до победы одной из сторон.
Управление игрой осуществляется только сиспользованием мыши–без клавиатуры! Игрок выбирает ячейку для выстрела наведением курсора мыши. При входе курсора мыши в область игрового поля компьютера –курсор должен изменяться на "крестик" (см. рис. 16),при выходе из игрового поля компьютера–обратно на"стрелочку" (обычный курсор).При наведении курсора мыши на ячейку игрового поля компьютера –ячейка должна выделяться красным цветом (см. рис. 16).
Выстрелосуществляется нажатием левой клавиши мыши в выбранную ячейку.
Рис. 16
Красным цветом должна выделяться ячейка, в которую еще не было сделано выстрела! (см. рис.17).
Рис. 17
При наведении курсора мыши на ячейки, в которых уже находятся бомбы–выделения красным цветом быть не должно!
Ячейка выделяется красным цветом до тех пор, пока курсор "крестик" не выходит за пределы ячейки.
