Основы программирования. Летающие Объекты. Лабораторная работа №10

Содержание

Слайд 2

Задача сквозная Делаем логику для игры. В игре есть вертикальная карта

Задача сквозная

Делаем логику для игры.
В игре есть вертикальная карта – разрез

земли (смотри SuperMario и подобные игры).
На этой карте есть элементы двух типов – «воздух» = 0 и «земля» = 1
Есть точка входа в карту – на картинке это красный прямоугольник.
И точка выхода – зеленый прямоугольник.
Ниже приведено отображение возможного состояния игры.
Слайд 3

Структура для хранения игры // индексы входа и выхода struct Position

Структура для хранения игры

// индексы входа и выхода
struct Position {
int i,

j;
};
// Уровень игры
struct Level {
int map[10][10]; // карта уровня
// 0 – воздух
// 1 – земля
int n; // количество строк
int m; // количество столбцов
struct Position entry; // вход
struct Position exit; // выход
};
Слайд 4

Размеры игрового поля и одного элемента

Размеры игрового поля и одного элемента

Слайд 5

Действующий Херой

Действующий Херой

Слайд 6

Действующий Херой (2) Задача Героя – добраться до выхода. С вашей помощью

Действующий Херой (2)

Задача Героя – добраться до выхода. С вашей помощью

Слайд 7

Действующий Херой (3) Задача Героя – добраться до выхода. С вашей помощью

Действующий Херой (3)

Задача Героя – добраться до выхода. С вашей помощью

Слайд 8

Действующий Херой (4) Задача Героя – добраться до выхода. С вашей помощью

Действующий Херой (4)

Задача Героя – добраться до выхода. С вашей помощью

Слайд 9

Летающее нечто

Летающее нечто

Слайд 10

Летающее нечто (2)

Летающее нечто (2)

Слайд 11

Летающее нечто (3)

Летающее нечто (3)

Слайд 12

Собственно отрисовка всего

Собственно отрисовка всего

Слайд 13

Собственно отрисовка всего (2)

Собственно отрисовка всего (2)

Слайд 14

Собственно отрисовка всего (3)

Собственно отрисовка всего (3)

Слайд 15

Задача 1. Запустить игру и разобраться в исходниках Файл с исходными

Задача 1. Запустить игру и разобраться в исходниках

Файл с исходными текстами

игры предоставлен (на флешке).
Нужно используя его собрать работающую версию.
После получения работающей версии нужно разобраться в исходниках
Слайд 16

Задача 2. Добавить возможности в игру Подключить через нажатие клавиш одну

Задача 2. Добавить возможности в игру

Подключить через нажатие клавиш одну из

ранее реализованных возможностей редактирования карты:
Добавить элемент земли в заданный столбец
Подсыпать земли в низину
Удалить «землю» из заданной горки
Срыть самую высокую горку
Сохранить состояние игры в файле
Слайд 17

Задача 3. Добавить возможности в игру Добавить к игре одну или

Задача 3. Добавить возможности в игру

Добавить к игре одну или несколько

возможностей из следующих:
На игровом поле не одно здоровье, а много (массив!)
На игровом поле не одно оружие, а много (массив!)
Попадание оружия в героя делает ему плохо. Через какое то количество шагов он умирает и игра заканчивается*
Попадание здоровья в героя делает ему хорошо. *
После прохождения одного уровня, автоматически загружается второй**
Герой не проваливается под землю, а ходит по ней***
Слайд 18

Домашнее задание №10 Домашняя работа по лабораторной работе №10 включает в

Домашнее задание №10

Домашняя работа по лабораторной работе №10 включает в себя
Реализация

домашней работы №9 в варианте GUI. Нужно визуально отобразить операции над массивами. Разные значения элементов отображаются ра
Подготовить отчет (со стандартным содержанием - титульный лист, задание, распечатка, блоксхемы методов (не надо делать, если взялись делать свою игру!))
Слайд 19

Домашнее задание №9 - варианты !!! Вариант 1: В массиве все

Домашнее задание №9 - варианты

!!!

Вариант 1:
В массиве все элементы, стоящие выше

максимального элемента, заменить на максимальный элемент первого столбца.
Вариант 2:
В массиве все элементы, стоящие выше максимального элемента, заменить на минимальный элемент последней строки.
Вариант 3:
В массиве все элементы, стоящие выше и левее минимального элемента, заменить на среднее арифметическое минимального и максимального элементов.
Вариант 4:
В массиве все элементы, стоящие ниже и левее максимального элемента, заменить на среднее арифметическое минимального и максимального элементов последнего столбца.
Вариант 5:
В массиве все элементы, стоящие ниже и левее максимального элемента, заменить на минимальный элемент.

Вариант 6:
В массиве все нечетные элементы, стоящие ниже минимального элемента массива и стоящие слева от максимального элемента массива, заменить на 0.
Вариант 7:
В массиве все четные элементы, стоящие снизу от максимального элемента массива, заменить на максимальный элемент столбца, в котором они расположены.
Вариант 8:
В массиве все нечетные элементы, стоящие сверху от минимального элемента массива, заменить на максимальный элемент строки, в которой они расположены.
Вариант 9:
В массиве все элементы, имеющие четное значение суммы индексов, заменить на минимальный элемент массива.
Вариант 10:
Обнулить элементы в тех столбцах, в которых встречается хотя бы два одинаковых элемента.
Альтернативные варианты – смотри следующий слайд!