Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Абрамов С.А., Гнездилова Г.Г., Капустина Е.Н., Селюн М.И. Задачи по программированию [pdf]

.pdf
Скачиваний:
736
Добавлен:
02.05.2014
Размер:
6.04 Mб
Скачать

а) с помощью датчика случайных чисел; б) под управлением с клавиатуры - для этого должны

использоваться клавиши «стрелка вверх», «стрелка вниз», «стрелка вправо» и «стрелка влево», вызывающие перемещение фигуры в соответствующем направлении на 5 пиксел.

966. Получить звуковой мультфильм «Танцующий НЛО». НЛО строить из отдельных символов так, как показано на рис. 104. Очередное положение НЛО на экране определять с помощью датчика случайных чисел. Результатом обращения к датчику должны быть номера строки и столбца экрана, с которыми следует совместить левый верхний угол прямоугольника размером З× 4 символа, объемлющего НЛО. Каждый раз, когда номер полученного таким образом столбца окажется кратным 12, НЛО должен издавать звуковой сигнал.

Рис. 104 967. В рисованных мультфильмах иллюзия движения создается

последовательной сменой кадров, каждый из которых фиксирует очередное положение движущегося объекта.

Используя этот принцип, получить мультфильм, показывающий: а) идущего человечка; б) бегущего человечка;

в) человечка, выполняющего приседания; г) человечка, выполняющего сигнализацию флажком.

Для построения отдельных кадров мультфильма воспользоваться фигурками, описанными в рассказе А. Конан Дойля «Пляшущие человечки». Некоторые из этих фигурок даны на рис. 105.

Рис. 105 968. Аналогично предыдущей задаче получить спортивный

мультфильм:

а) о метании диска; б) о беге с барьерами;

в) о подтягивании на перекладине; г) о прыжках в длину; д) о гребле; е) о поднятии штанги, ж) теннис.

Построение отдельных кадров выполнить на основе олимпийской символики.

969.Получить звуковой мультфильм «Человечек, танцующий под музыку». Танец может заключаться в выполнении самых простых движений, например, притоптывании ногой или приседании, в такт мелодии, воспроизводимой по звукогенератору.

970.Аналогично предыдущей задаче получить звуковой мультфильм «Человечек, играющий на гитаре». Игра на гитаре может изображаться, например с помощью перемещения правой руки по струнам гитары вверх и вниз. Мультфильм должен сопровождаться воспроизведением популярной мелодии.

971.Изобразить на экране доску Гальтона (см. задачу 751) с движущимися по ней шариками. Одновременно по доске должно двигаться несколько шариков. Закончившие движение шарики

остаются в нижней части доски. Использовать датчик случайных чисел для выбора пути шарика при прохождении через препятствие.

§ 33. Игры*)

*) Разработка и реализация игровых программ должна вестись и с учетом графических и звуковых возможностей, предоставляемых конкретным компьютером. При наличии алфавитно-цифрового дисплея игровые ситуации и ходы отображаются, как правило, с помощью чисел, букв и псевдографики. При наличии графического дисплеяиллюстрируются графически. Так, например, при игре в «Ним» (задача 1012) кучки спичек могут заменяться натуральными числами, если дисплей алфавитно-цифровой, или быть нарисованными, если дисплей графический. Игра «угадывание дробей» (задача 984) при работе на алфавитно-цифровом дисплее сводится к обмену текстовыми сообщениями: играющий вводит число, программа сообщает, верно ли указана дробь. При работе с графическим дисплеем оценка правильности введенной дроби может выполняться, например, с помощью стрелки, которая летит по направлению к аэростату и «прокалывает»

его, если дробь названа правильно, или пролетает мимо в противном случае. При наличии звукогенератора игры следует сопровождать характерными звуковыми сигналами. Так, например, в предыдущей игре такими сигналами могут быть свист летящей стрелки или звук лопнувшего аэростата.

Игровые программы, которые предлагается составить в этом разделе, можно условно разделить на три группы. В задачах с 972 по 996 рассматриваются программы, основное назначение которыхподдержка необходимой игровой обстановки. Играющему предлагается исходная ситуация, порождаемая, как правило, с помощью датчика случайных чисел, все его ходы контролируются: если ход сделан по правилам игры, ситуация изменяется (например, в задачах 972-975 смена игровой ситуации означает смену положений цветных шаров на игровой доске, а в задаче 983 - обмен местами

четырех или двух букв), в противном случае выдается соответствующее сообщение, ситуация остается неизменной. Программа также обязана отслеживать достижение целевой ситуации, например, угадано ли задуманное число (задача 986), расставлены ли требуемым образом буквы (задача 983), перемещены ли все диски (задача 978) и т. д.

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

над двух-, трех- и т. д. значными числами. В программе обучения работе с клавиатурой (задача 1000) - с переходом от отдельных букв и цифр к словам и фразам, а также с уменьшением времени, выделяемого для набора на клавиатуре того или иного слова и т. п.

Каждая из программ третьей группы (задачи 1007-1013) является равноправным партнером в той или иной игре, например, в шахматы, «ним», «100 спичек» и др. Помимо всех действий, выполняемых программами первой группы, эти программы должны делать игровые ходы.

972. «Семь лунок». Вдоль доски расположено 7 лунок, в которых лежат 3 черных и 3 белых шара так, как показано на рис. 106. Передвинуть черные шары на место белых, а белые - на место черных. Шар можно передвинуть либо в соседнюю с ним пустую лунку, либо в пустую лунку, находящуюся непосредственно за ближайшим шаром.

Рис. 106

Рис. 107

973.«Прыгающие шарики». Эта игра похожа на предыдущую. Исходная позиция - 8 лунок, в которых расставлены 4 черных и 3 белых шара (рис. 107). Поменять местами черные и белые шары. В отличие от предыдущей игры черные шары можно передвигать только вправо, а белые - только влево.

974.Вдоль доски расположены лунки и в каждой лунке лежит шар черного или белого цвета (пример приведен на рис. 108, а). Одним ходом разрешается менять местами два любых шара. Добиться того, чтобы сначала шли белые шары, а за ними

-черные (рис. рис. 108, б). Если общее число лунок равно n, то для решения задачи достаточно сделать не более [n/2] ходов.

а

б

Рис. 108