
- •Глава 12 графика
- •1. Общие сведения
- •2. Инициализация графической системы. Обработка ошибок. Переключение режимов
- •Initgraph (&gd, &gm,"путь к bgi-файлам");
- •3. Работа с окнами и координатами
- •4. Графические примитивы
- •1 Способ:
- •2 Способ:
- •5. Включение .Bgi-драйверов в .Exe-файл
- •Примеры решения задач Задача a
- •Задание для самостоятельной работы
- •Задача b
- •Задание для самостоятельной работы
- •Задача c
- •Задание на программирование Задача 1
- •Задача 2
- •Задача 3
- •Задача 4
- •Задача 5
- •Задача 6
- •Задача 7
- •Задача 8
- •Задача 9
- •Задача 14
- •Задача 15
- •Задача 16
- •Задача 17
- •Задача 29
- •Задача 37
- •Задача 39
- •Задача 40
Задача 14
Четыре жука, расположенные в вершинах квадрата со стороной a, одновременно начинают ползти по направлению к следующему по часовой стрелке жуку с постоянной скоростью v. Изобразите траектории жуков за первые t секунд после начала движения.
Указание: можно заменить траектории жуков ломаными - первые t секунд жуки ползут прямо (первое звено ломаной), затем поворачивают и еще t секунд ползут прямо (второе звено ломаной) и т.д.
Задача 15
Построить узор, образованный 30 вложенными квадратами. Стороны первого квадрата параллельны сторонам экрана и равны 100. Вершины каждого последующего квадрата - это точки на сторонах предыдущего квадрата, делящие эти стороны в отношении 1:1. Использовать звук.
Задача 16
На экране изображена окружность радиуса 20 с центром в точке (100,100). Необходимо предоставить возможность управления размером и положением окружности:
клавиша ">" увеличивает радиус на 5 точек;
клавиша "<" уменьшает радиус на 5 точек;
клавиши управления курсором "Ü", "Ý", "Þ", "ß" перемещают окружность по экрану.
Задача 17
Новобранцы выстроены в шеренгу. По команде "НАЛЕ-ВО" одни из них поворачиваются налево, а другие - направо. Это есть начальное положение шеренги.
Далее каждый новобранец действует следующим образом: увидев перед собой лицо соседа, он ровно через секунду поворачивается кругом. В конце концов повороты прекратятся.
Промоделировать повороты новобранцев, выдавая каждую смену состояний по нажатию клавиши "пробел".
Графическая интерпретация задачи:
поворот налево - вертикальный отрезок;
поворот направо - горизонтальный отрезок.
Пример начального положения:
< < > < > > > < > <
Графическое изображение начального положения:
Первая смена состояния:
Поворот кругом двух солдат, стоящих лицом друг к другу, означает, что "опадут" углы, выпуклые "вправо-вверх". Окончание поворотов означает, что сформировался левый нижний прямой угол.
Задача 18
Осуществить вращение треугольника в плоскости экрана вокруг центра тяжести этого треугольника.
Задача 19
На экране - символ "Х". Клавишами управления курсора можно перемещать его по экрану. Попытка выхода за границу экрана должна обозначаться звуковым сигналом. По нажатию клавиши "пробел" символ начинает перемещаться с оставлением за собой следа. Повторное нажатие "пробела" возвращает его в прежнее состояние.
Задача 20
Промоделировать движения подпрыгивающего мяча, брошенного с высоты H и прыгающего вдоль экрана слева направо (см. [9]).
Задача 21
На экране изображен прямоугольник. Необходимо предоставить возможность управления его размерами и положением:
клавиша ">" увеличивает ширину на 5 точек;
клавиша "<" уменьшает ширину на 5 точек;
клавиша "+" увеличивает высоту на 5 точек;
клавиша "-" уменьшает высоту на 5 точек;
клавиши управления курсором "Ü", "Ý", "Þ", "ß" перемещают прямоугольник по экрану.
Задача 22
Построить игру "Стрельба по бегущему кабану".
Условия игры:
"Кабан"
на уровне
пересекает экран за время T.
За это время нужно успеть сделать 5
выстрелов. Начальное положение наводки
ствола - левый нижний угол. Прицеливание
выполняется с помощью клавиш управления
курсором: "Ü",
"Ý",
"Þ",
"ß";
выстрел - клавиша "пробел".
Выстрел сбивает наводку ствола на
случайную величину, равную
В отдельном окне выдавать результат каждого выстрела и серии в целом.
Задача 23
Написать программу для игры в "Крестики-Нолики" на поле 3*3 для человека и машины.
Задача 24
Написать программу для игры в "Безумные Крестики-Нолики" на поле 3*3 для человека и машины.
Задача 25
Построить фрактальную кривую следующим способом. Пусть имеется отрезок AB, и точки C, D делят его на 3 равные части. Построим на отрезке CD равносторонний треугольник CDE и сотрем отрезок CD. Теперь применим эту же процедуру к каждому звену построенной ломаной ACEDB. Задавая глубину рекурсии, построить фрактальные кривые различных порядков.
Задача 26
"Волшебным
квадратом" порядка N
называют матрицу (N,
N),
заполненую первыми
натуральными числами так, что суммы
чисел, стоящих в любой строке, любом
столбце, а также на главной и побочной
диагоналях, равны одному и тому же числу
.
Реализовать игру человека и машины по заполнению "волшебного квадрата". Проигрывает тот, кто первым не сумеет сделать допустимый ход.
Задача 27
"Греко-латинским квадратом" порядка N называют матрицу (N, N), в каждом столбце, каждой строке и обеих диагоналях которого содержатся все целые числа от 1 до N.
Реализовать игру человека и машины по заполнению "Греко-латинского квадрата". Проигрывает тот, кто первым не сумеет сделать допустимый ход.
Задача 28
Реализовать игру "Отгадай слово", которая происходит следующим образом. Машина загадывает слово (случайным образом выбирает его из имеющегося списка слов) и выводит на экран первую и последнюю буквы слова и ч¸рточки вместо остальных букв. Играющий на каждом ходу пытается отгадать одну букву слова. Вед¸тся протокол игры и подсчитывается "коэффициент интеллекта"
где кнб - суммарное число названных букв;
куб - число угаданных букв;
нкнб - пероначольное число неизвестных букв.
Игра заканчивается, когда угадано слово или когда "коэффициент интеллекта" становится больше 2.