| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Моделирование: черепаха и заяц |
| Автор: Niakita 17.4.2012, 16:51 |
| (Моделирование: черепаха и заяц). В этой задаче мы воссоздадим один из истинно великих моментов истории, а именно, классическую гонку черепахи и зайца. Вы будете использовать генерацию случайных чисел для разработки модели этого памятного события. Наши соперники начинают гонку в первой клетке из 70. Каждая клетка представляет собой возможную позицию вдоль трассы гонки. Первый из соперников, достигший или миновавший клетку 70, вознаграждается ведром моркови и салата. Трасса вьется по склону скользкой горы, так что соперникам случается падать на землю. Имеются часы, которые отбивают такт раз в секунду. С каждым тактом ваша программа должна устанавливать позицию животных. Начните движение печатью ГОНГ !!! И ОНИ ПОШЛИ !!! Затем на каждом такте (т.е. при каждом повторении цикла) печатайте 70-позиционную строку, показывающую букву Ч в позиции черепахи и букву 3 в позиции зайца. Может случиться, что оба животных окажутся на одной и той же клетке. В этом случае черепаха кусает зайца и ваша программа должна печатать ОХ!, начиная с этой позиции. Все печатаемые позиции, отличающиеся от Ч, 3 или ОХ!, должны быть пробелами. После печати каждой строки проверяйте, достигло или миновало животное клетку 70. Если да, то печатайте, кто победитель, и заканчивайте моделирование. Если победила черепаха, печатайте ПОБЕДИЛА ЧЕРЕПАХА!!! УРА!!! Если победил заяц, печатайте: Победил заяц. Эх. Если оба животных победили одновременно, вы можете отдать предпочтение черепахе или напечатать: Равный счет. Если ни одно животное не победило, повторяйте цикл моделирования для следующего отрезка времени. ------------------------------------------------------------ Какую функцию времени использовать для отсчёта? Как примерно это будет выглядеть? |
| Автор: baldina 17.4.2012, 17:01 | ||
| надо после каждого хода делать задержку в 1сек в windows это функция Sleep(milliseconds); т.е. основной цикл программы будет примерно такой
|
| Автор: Niakita 20.4.2012, 16:12 | ||||
Не могу понять то что выделено жирным шрифтом. (ход мыслей) процент времени равен 50% -> черепаха перемещается на три клетки вправо процент времени равен 20% -> черепаха перемещается на 6 клеток влево процент времени равен 30% -> черепаха перемещается на одну клетку вправо Дальше всё. Если следовать моим мыслям то возникает вопрос - процент времени от чего? (то есть что брать за 100% времени?) ну и дальше совсем немогу понять куда прикрутить вот это:
если следовать моей логике то: когда черепаха проползла половину отведённого на гонку времени (процент времени равен 50% -> черепаха перемещается на три клетки вправо) должно наступить событие (то есть нужно начать вырабатывать случайные числа) Смущает факт того, что при таких рассуждениях при наступлении одно события черепаха у меня может - быстро ползать, Скользить или Медленно ползать, хотя должна делать что то одно, в данном случае - Быстро ползать ((процент времени равен 50% -> черепаха перемещается на три клетки вправо) ). Думаю где то не там свернул. Помогите разобраться. |
| Автор: qwerty233 20.4.2012, 21:12 |
| Там же всё написано! Генерируете случайное число от 1 до 10. Если число <= 5 сдвигаете черепаху на 3 позиции в массиве вправо. Если было получено 6 или 7 сдвигаете на 6 позиций влево и т.д. Для зайца тоже самое. |
| Автор: asmdzen 20.4.2012, 21:14 |
процент от общего времени гонки, т.е. просто вероятность того что они будут идти с этой скоростью. При заходе в stepIt() генерируешь случайное число от 1 до 10 как говорится в инструкции, если выпало значение от 1 до 5 для черепахи проходишь 3 клетки вправо ... , для зайца от 1 до 2 ничего не делаешь, от 2 до 4 -> 9 клеток вправо и.т.д. |