OKTOLOM |
Смерть - это только начало. Я часть той силы, что вечно хочет зла, и вечно совершает благо. И. Гёте. |
msoftcon Заголовочный файл msoftcon.h и файл msoftcon.cpp Моделирование: черепаха и заяц(исходный код на С++) В этой задаче мы воссоздадим один из истинно великих моментов истории, а именно, классическую гонку черепахи и зайца. Вы будете использовать генерацию случайных чисел для разработки модели этого памятного события. Наши соперники начинают гонку в первой клетке из 70. Каждая клетка представляет собой возможную позицию вдоль трассы гонки. Первый из соперников, достигший или миновавший клетку 70, вознаграждается ведром моркови и салата. Трасса вьется по склону скользкой горы, так что соперникам случается падать на землю. Имеются часы, которые отбивают такт раз в секунду. С каждым тактом ваша программа должна устанавливать позицию животных согласно следующим правилам: Животное Тип движения Процент времени Перемещение Черепаха Быстрое ползанье 50% 3 клетки вправо Скольжение 20% 6 клеток влево Медленное ползанье 30% 1 клетка вправо Заяц Cон 20% движения нет Большой прыжок 20% 9 клеток вправо Сильное скольжение 10% 12 клеток влево Маленький прыжок 30% 1 клетка вправо Маленькое скольжение 20% 2 клетки влево Используйте переменные для. отслеживания позиций животного (позиций с номера- ми 1-70). Каждое животное стартует с позиции 1 («стартовые ворота»). Если животное скользит налево и должно оказаться перед клеткой 1, движение начинается заново с клетки 1, Используйте проценты в приведенной таблице, вырабатывая случайные целые числа i в диапазоне от 1 до 10 включительно. Для черепахи при i от 0 до 5 — быстрое ползанье, при i от 6 до 7 — скольжение, при i от 8 до 10 -— медленное ползанье. Аналогичный прием используйте для движения зайца. Начните движение печатью "ГОНГ !!! И ОНИ ПОШЛИ !!!" Затем на каждом такте (т.е. при каждом повторении цикла) печатайте 70-позищюнную строку, показывающую букву Ч в позиции черепахи и букву 3 в позиции зайца. Может случиться, что оба животных окажутся на одной и той же клетке. В этом случае черепаха кусает зайца и ваша программа должна печатать "ОХ!!!" , начиная с этой позиции. Все печатаемые позиции, отличающиеся от Ч, 3 или "ОХ!!!" , должны быть пробелами. После печати каждой строки проверяйте, достигло или миновало животное клетку 70. Если да, то печатайте, кто победитель, и заканчивайте моделирование. Если победила черепаха, печатайте «ПОБЕДИЛА ЧЕРЕПАХА!!! УРА!!!» Если победил заяц, печатайте: Победил заяц. Эх. Если оба животных победили одновременно, вы можете отдать предпочтение черепахе или напечатать: Равный счет. Если ни одно животное не победило, повторяйте цикл моделирования для следующего отрезка времени. Если вы готовы запустить программу на выполнение, пригласите группу болельщиков. Вы будете изумлены реакцией вашей аудитории! Блуждание по лабиринту (исходный код на С++) В двумерном массиве # представляют собой стены лабиринта, а точки представляют собой возможные пути по лабиринту. Движение возможно только по тем позициям в массиве, которые содержат точки. Существует простой алгоритм прохождения лабиринта, который гарантирует нахождение выхода (если он существует). Если выхода нет, вы возвращаетесь опять к исходной позиции. Положите вашу правую руку на стену справа и начните двигаться вперед. Никогда не отрывайте руку от стены. Если лабиринт поворачивает направо, следуйте за стеной направо. В конечном счете, вы дойдете до выхода из лабиринта. Могут быть пути короче выбранного вами, но, следуя этому алгоритму, вы гарантированно выйдете из лабиринта. Напишите рекурсивную функцию mazeTraverse для прохождения через лабиринт. Функция должна получать в качестве аргумента двумерный массив символов 12 на 12, представляющий лабиринт, и начальную позицию в лабиринте. Функция mazeTraverse пытается найти путь к выходу из лабиринта, она должна помечать символом * каждую клетку этого пути. Функция должна отображать лабиринт после каждого перемещения так, чтобы пользователь мог наблюдать решение задачи.
|