|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
26.02.2012, 23:36 | #1 |
Всё знать хотяка!
Пользователь
Регистрация: 21.04.2009
Сообщений: 67
|
Натолкните на алгоритм или "Ночной город своими руками"
Вопрос прост:
цель - сделать имитацию погружающегося в сон города. Т.е. допустим есть массивчик 5х10 из ноликов(на самом деле элементов около 2 тысяч, но это не суть))) - это окна, в которых нет света. Наступает вечер, эти окна начинают рандомно медленно зажигаться(нолики превращаются в единички). Потом всё быстрее, быстрее, пока почти весь "город" не будет гореть. А затем начинают медленно угасать, пока почти все не погаснут. Собственно вопрос знатокам - как лучше реализовать такой алгоритм? Имеющиеся данные - допустим есть переменная t, которая у нас тикает каждую секунду(или милисекунду, не суть). И заранее известно, с какого периода у нас вечер, с какого ночь и тд. Требования - Точность не особо важна(в том плане, что не обязательно расписывать режим дня каждого жильца нашего городка... в остальном всё должно быть более менее сносно). Важно, чтоб код был не особо большой. Чтобы применялись только сишные библиотеки(с С++ и его инструментами вероятнее всего будут проблемы). Короче, простота нужна. Подвопрос - действительно ли стоит ковырять функцию распределения вероятностей или можно сделать всё проще? Буду рад любым домыслам.)
Я вредный и нервный, но бдобр.
|
27.02.2012, 00:15 | #2 |
Форумчанин
Регистрация: 26.09.2011
Сообщений: 176
|
нужно бегать по массиву и рандомно зажигать или не зажигать огни, а вероятность зажигания должна увеличатся по мере приближения ночи, как только прошли определённый порог начинаем обратно выключать.
|
27.02.2012, 00:48 | #3 |
Всё знать хотяка!
Пользователь
Регистрация: 21.04.2009
Сообщений: 67
|
Согласен. Но... я туплю... как реализовать эту самую вероятность?
Я вредный и нервный, но бдобр.
|
27.02.2012, 01:04 | #4 |
Форумчанин
Регистрация: 26.09.2011
Сообщений: 176
|
Код:
|
27.02.2012, 01:19 | #5 |
Форумчанин
Регистрация: 17.12.2011
Сообщений: 111
|
Код:
Последний раз редактировалось ACE Valery; 27.02.2012 в 02:37. |
27.02.2012, 11:10 | #6 |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
Axrik, что Вам плохого сделал ТС, что Вы ему такое
Код:
Зачем, перед началом "периода угасания", принудительно зажигать ВСЕ окна? Последний раз редактировалось Vago; 27.02.2012 в 12:01. |
27.02.2012, 13:02 | #7 |
Всё знать хотяка!
Пользователь
Регистрация: 21.04.2009
Сообщений: 67
|
Axrik, много текста. Очень не люблю копаться в чужом коде перед сном(даже в маленьком отрывке)). Спасибо за старания тем не менее. Но прост я тут же схватился за подачку microbit'а(принцип "размер имеет значение" в этот раз протащил))), и вроде её хватило чтобы добиться успеха. Правда нужно подрегулировать около десяти дефайнов, чтобы добиться той скорости зажигания, которая бы меня устроила, но сейчас всё работает.
Вероятно ещё придётся вставить какой нибудь механизм проверки типа "сейчас середина ночи; если горит меньше 40-50% окон - повысить вероятность зажигания; если горит 70%, то понизить вероятность зажигания...". Щас побегу тестить это на реальном объекте, гепотетически это должно всех эстетически удовлетворить.) Vago, код приведённого для меня примера я не разбирал, но что тебя собственно в нём так ранило?)
Я вредный и нервный, но бдобр.
Последний раз редактировалось Karp_13; 27.02.2012 в 13:06. |
27.02.2012, 13:19 | #8 |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
В том фрагменте, который я выдернул - попытка внутри цикла со счётчиком поменять переменную цикла и, главноe, goto из цикла наверх, на повторный запуск цикла. Глобально - почти полное отсутствие техники программирования и неряшливость как в мыслях, так и в оформлении при, в общем-то, похоже, светлой голове.
|
27.02.2012, 19:48 | #9 |
Форумчанин
Регистрация: 17.12.2011
Сообщений: 111
|
Я понимаю политику большинства прогеров в отношении goto и сама если и использую, то не больше одного, но что ж поделать, свой код обычно пишу для себя и против готу ничего не имею
|
27.02.2012, 19:51 | #10 |
Форумчанин
Регистрация: 17.12.2011
Сообщений: 111
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Напечатать текст, удалив из него все цифры и знаки "+" или "–". Язык С++. | KaylasMKTY | Помощь студентам | 8 | 07.03.2010 21:35 |
MS Agent или помошник своими руками | Mixasik | Компоненты Delphi | 2 | 24.07.2009 15:06 |
"Hide Folder" своими руками (Delphi) | Air | Помощь студентам | 3 | 13.11.2008 03:38 |
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует | skobets | Общие вопросы C/C++ | 2 | 03.06.2008 06:51 |