Разделы презентаций


Основы программирования Лабораторная работа №9

Содержание

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

Слайды и текст этой презентации

Слайд 1Основы программирования Лабораторная работа №9
Структуры
Работа с файлами.
Текстовое меню.
(и это всё с

FOR!)

Власенко О.Ф.

Основы программирования Лабораторная работа №9СтруктурыРабота с файлами.Текстовое меню.(и это всё с FOR!)Власенко О.Ф.

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

разрез земли (смотри SuperMario и подобные игры).
На этой карте есть

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

Ниже приведено отображение возможного состояния игры.
Задача сквознаяДелаем логику для игры.В игре есть вертикальная карта – разрез земли (смотри SuperMario и подобные игры).На

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

i, j;
};

// Уровень игры
struct Level {
int map[10][10]; // карта уровня
//

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

Слайд 4Инициализация структуры
void main()
{
struct Level g = {
{
{0, 0, 0,

0, 0},
{1, 0, 0, 1, 1},
{1, 1, 1,

1, 1}
},
3,
5,
{0, 0},
{0, 4}
};


}
Инициализация структурыvoid main(){	struct Level g = { 		{			{0, 0, 0, 0, 0}, 			{1, 0, 0, 1, 1},

Слайд 5Вывод состояния игры
void main()
{
struct Level g = {
{
{0, 0,

0, 0, 0},
{1, 0, 0, 1, 1},
{1, 1,

1, 1, 1}
},
3,
5,
{0, 0},
{0, 4}
};

printLevel(&g);
{
int x;
scanf("%d", &x);
}
}
Вывод состояния игрыvoid main(){	struct Level g = { 		{			{0, 0, 0, 0, 0}, 			{1, 0, 0, 1,

Слайд 6Вывод состояния игры (2)
// вывод массива в консоль
void printLevel(struct Level

* level) {

for (int i = 0; i < level->n;

i++) {
for (int j = 0; j < level->m; j++) {
printf("%5d ", level->map[i][j]);
}
printf("\n");
}
printf("\n");

printf("Entry i = %d; j = %d\n", level->entry.i, level->entry.j);
printf("Exit i = %d; j = %d\n\n", level->exit.i, level->exit.j);
}

Слайд 7Файл с состоянием игры - формат файла
Формат файла с состоянием

игры:

N M
N строк по M элементов в каждой
I_входа J_входа
I_выхода J_выхода

Пример

файла – смотри на следующем слайде.
Файл с состоянием игры - формат файлаФормат файла с состоянием игры:N MN строк по M элементов в

Слайд 8Файл с состоянием игры - пример
Ниже приведено содержимое файла, который

хранит состояние, приведенное на картинке справа.

6 8
0 0 0 0

0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 1 1 0 0 0 0 1
1 1 1 1 1 1 1 1
3 0
3 7


Файл с состоянием игры - примерНиже приведено содержимое файла, который хранит состояние, приведенное на картинке справа.6 80

Слайд 9Загрузка состояния игры – вызов функции
void main() {
struct Level g

= {
{ {0, 0, 0, 0, 0},
{1, 0,

0, 1, 1},
{1, 1, 1, 1, 1}
},
3,
5,
{0, 0},
{0, 4}
};
printLevel(&g);

loadLevel(&g);
printLevel(&g);
{
int x;
scanf("%d", &x);
}
}
Загрузка состояния игры – вызов функцииvoid main() {	struct Level g = { 		{ 	{0, 0, 0, 0,

Слайд 10Загрузка состояния игры – функция!
char filename[] = "d:\\Temp\\Files\\Lab9\\1.txt";

int loadLevel(struct Level

* level) {
FILE *fin = fopen(filename, "rt");

if (fin == NULL)

{
printf("File %s is not opened", filename);
return 0;
}

fscanf(fin, "%d", &level->n);
fscanf(fin, "%d", &level->m);

for (int i = 0; i < level->n; i++) {
for (int j = 0; j < level->m; j++) {
fscanf(fin, "%d", &level->map[i][j]);
}
}

fscanf(fin, "%d", &level->entry.i);
fscanf(fin, "%d", &level->entry.j);

fscanf(fin, "%d", &level->exit.i);
fscanf(fin, "%d", &level->exit.j);

fclose(fin);
return 1;
}

Слайд 11Задача 1 – собрать весь код!
Из кусков кода выше –

соберите работающую программу, которая выдает на экран (см скриншот!)

Задача 1 – собрать весь код!Из кусков кода выше – соберите работающую программу, которая выдает на экран

Слайд 12Задача 2 – Добавить элемент земли в заданный столбец (функция)

Задача 2 – Добавить элемент земли в заданный столбец (функция)

Слайд 13Задача 2 – Добавить элемент земли в заданный столбец (вызов)

Задача 2 – Добавить элемент земли в заданный столбец (вызов)

Слайд 14Задача 3 – Сделать меню для выбора действий (1)

Задача 3 – Сделать меню для выбора действий (1)

Слайд 15Задача 3 – Сделать меню для выбора действий (2)

Задача 3 – Сделать меню для выбора действий (2)

Слайд 16Задача 3 – Сделать меню для выбора действий (3)

Задача 3 – Сделать меню для выбора действий (3)

Слайд 17Задача 4 – удалить «землю» из заданной горки
Создайте функцию, которая

будет удалять верхний элемент «земля» из заданной высокой горки (т.е.

из столбца, индекс которого задан)
Задача 4 – удалить «землю» из заданной горкиСоздайте функцию, которая будет удалять верхний элемент «земля» из заданной

Слайд 18Задача 5 – срыть самую высокую горку
Создайте функцию, которая будет

удалять верхний элемент «земля» из самой высокой горки (т.е. из

столбца, где больше всего «земли»)
Задача 5 – срыть самую высокую горкуСоздайте функцию, которая будет удалять верхний элемент «земля» из самой высокой

Слайд 19Задача 6 – подсыпать земли в низину
Создайте функцию, которая будет

добавлять сверху элемент «земля» в самую низкую часть(т.е. в столбец,

где меньше всего «земли»)
Задача 6 – подсыпать земли в низинуСоздайте функцию, которая будет добавлять сверху элемент «земля» в самую низкую

Слайд 20Задача 7 – Сохранить состояние игры в файле
Создайте функцию, которая

будет сохранять в файл состояние игры – в формате, аналогичном

входному файлу.
Задача 7 – Сохранить состояние игры в файлеСоздайте функцию, которая будет сохранять в файл состояние игры –

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

(Делается

по материалам классной работы)
Создать структуру для хранения двухмерного массива
Реализовать загрузку

массива из файла в структуру
Реализовать необходимый набор действий
Реализовать сохранения массива из структуры в файл – структура выходного файла аналогична структуре входного
Подготовить отчет (со стандартным содержанием - титульный лист, задание, распечатка, блоксхемы методов)

ОБЯЗАТЕЛЬНО использовать в домашней работе:
Структуры для хранения массива
Файлы для входа и выхода
Цикл FOR

Домашнее заданиеДомашняя работа по лабораторной работе №9 включает в себя(Делается по материалам классной работы)Создать структуру для хранения

Слайд 22Домашнее задание - варианты
!!!
Вариант 1:
В массиве все элементы, стоящие выше

максимального элемента, заменить на максимальный элемент первого столбца.
 
Вариант 2:
В массиве

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

Вариант 6:
В массиве все нечетные элементы, стоящие ниже минимального элемента массива и стоящие слева от максимального элемента массива, заменить на 0.
 
Вариант 7:
В массиве все четные элементы, стоящие снизу от максимального элемента массива, заменить на максимальный элемент столбца, в котором они расположены.

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

Альтернативные варианты – смотри следующий слайд!

Домашнее задание - варианты!!!Вариант 1:В массиве все элементы, стоящие выше максимального элемента, заменить на максимальный элемент первого

Слайд 23Домашнее задание – альтернативные варианты
!!!!
Выберите себе игру, которую вы хотели

бы реализовать.
Игра должна быть такой, чтобы наилучшая ее реализация была

на основе двухмерного массива.

Реализуйте основной алгоритм из этой игры.

Вдохновение можно получить изучая этот документ:
https://docs.google.com/document/d/1tHW6VXBzvQb8nYH_AVJS3KDsoXh00K7GO2ZF6LZeBS8/edit?usp=sharing

Домашнее задание – альтернативные варианты!!!!Выберите себе игру, которую вы хотели бы реализовать.Игра должна быть такой, чтобы наилучшая

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика