Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Моделирование: черепаха и заяц, Какую функцию времени использовать? 
:(
    Опции темы
Niakita
Дата 17.4.2012, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 112
Регистрация: 22.12.2010

Репутация: нет
Всего: нет



(Моделирование: черепаха и заяц).
В этой задаче мы воссоздадим один из истинно великих моментов истории, а именно, 
классическую гонку черепахи и зайца. Вы будете использовать генерацию 
случайных чисел для разработки модели этого памятного события. 
Наши соперники начинают гонку в первой клетке из 70. Каждая 
клетка представляет собой возможную позицию вдоль трассы гонки.
Первый из соперников, достигший или миновавший клетку 70, 
вознаграждается ведром моркови и салата. Трасса вьется по склону 
скользкой горы, так что соперникам случается падать на землю. 
Имеются часы, которые отбивают такт раз в секунду. С каждым 
тактом ваша программа должна устанавливать позицию животных. 

Начните движение печатью 
ГОНГ !!!
И ОНИ ПОШЛИ !!!
Затем на каждом такте (т.е. при каждом повторении цикла) 
печатайте 70-позиционную строку, показывающую букву Ч в позиции 
черепахи и букву 3 в позиции зайца. Может случиться, что оба 
животных окажутся на одной и той же клетке. В этом случае 
черепаха кусает зайца и ваша программа должна печатать ОХ!, начиная с этой позиции. 
Все печатаемые позиции, отличающиеся от Ч, 3 или ОХ!, должны быть пробелами. 
После печати каждой строки проверяйте, достигло или миновало 
животное клетку 70. Если да, то печатайте, кто победитель, и 
заканчивайте моделирование. Если победила черепаха, печатайте 
ПОБЕДИЛА ЧЕРЕПАХА!!! УРА!!! Если победил заяц, печатайте: 
Победил заяц. Эх. Если оба животных победили одновременно, вы 
можете отдать предпочтение черепахе или напечатать: Равный счет. 
Если ни одно животное не победило, повторяйте цикл 
моделирования для следующего отрезка времени.


------------------------------------------------------------
Какую функцию времени использовать для отсчёта?
Как примерно это будет выглядеть?
PM MAIL   Вверх
baldina
Дата 17.4.2012, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 15
Всего: 101



надо после каждого хода делать задержку в 1сек
в windows это функция Sleep(milliseconds);

т.е. основной цикл программы будет примерно такой

Код

do {
  stepIt (); // тут делается ход, черепахой и зайцем
  Sleep (1000); // ждем 1 сек
} while (! reached the end()); // тут проверяем, не достиг ли кто-нить позиции 70

PM MAIL   Вверх
Niakita
Дата 20.4.2012, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 112
Регистрация: 22.12.2010

Репутация: нет
Всего: нет



Цитата

Имеются часы, которые отбивают такт раз в секунду. С каждым 
тактом ваша программа должна устанавливать позицию животных согласно  следующим правилам:

user posted image

Используйте переменные для отслеживания позиций животного (позиции с номерами 1-70). Каждое животное стартует с позиции 1 («стартовые ворота»). Если животное скользит налево и должно оказаться перед клеткой 1, движение начинается заново с клетки 1.
Используйте проценты в приведенной таблице, вырабатывая случайные целые числа i в диапазоне от 1 до 10 включительно. Для черепахи при i от 0 до 5 — быстрое ползанье, при i от б до 7 — скольжение, при i от 8 до 10 — медленное ползанье. Аналогичный прием используйте для движения зайца.



Не могу понять то что выделено жирным шрифтом.
(ход мыслей)
процент времени равен 50% -> черепаха перемещается на три клетки вправо
процент времени равен 20% -> черепаха перемещается на 6 клеток влево
процент времени равен 30% -> черепаха перемещается на одну клетку вправо

Дальше всё.

Если следовать моим мыслям то возникает вопрос - процент времени от чего? (то есть что брать за 100% времени?)

ну и дальше совсем немогу понять куда прикрутить вот это: 
Цитата

Используйте проценты в приведенной таблице, вырабатывая случайные целые числа i в диапазоне от 1 до 10 включительно. Для черепахи при i от 0 до 5 — быстрое ползанье, при i от б до 7 — скольжение, при i от 8 до 10 — медленное ползанье.


если следовать моей логике то: 
когда черепаха проползла половину отведённого на гонку времени (процент времени равен 50% -> черепаха перемещается на три клетки вправо)  должно наступить событие (то есть нужно начать вырабатывать случайные числа)

Смущает факт того, что при таких рассуждениях при наступлении одно события черепаха у меня может - быстро ползать, Скользить или Медленно ползать, хотя должна делать что то одно, в данном случае - Быстро ползать ((процент времени равен 50% -> черепаха перемещается на три клетки вправо) ).

Думаю где то не там свернул.
Помогите разобраться.


PM MAIL   Вверх
qwerty233
Дата 20.4.2012, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 3.10.2010

Репутация: нет
Всего: нет



Там же всё написано! Генерируете случайное число от 1 до 10. Если число <= 5 сдвигаете черепаху на 3 позиции в массиве вправо. Если было получено 6 или 7 сдвигаете на 6 позиций влево и т.д. Для зайца тоже самое.
PM MAIL   Вверх
asmdzen
Дата 20.4.2012, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



**


Профиль
Группа: Участник
Сообщений: 345
Регистрация: 28.11.2010

Репутация: 3
Всего: 5



Цитата(Niakita @  20.4.2012,  16:12 Найти цитируемый пост)
процент времени от чего?

процент от общего времени гонки, т.е. просто вероятность того что они будут идти с этой скоростью.
При заходе в stepIt() генерируешь случайное число от 1 до 10 как говорится в инструкции, если выпало значение от 1 до 5 для черепахи проходишь 3 клетки вправо ... , для зайца от 1 до 2 ничего не делаешь, от 2 до 4 -> 9 клеток вправо и.т.д.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0629 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.