2 / 2 / 0
Регистрация: 15.10.2012
Сообщений: 17
|
|
1 | |
Конфликт модулей crt и GraphABC12.06.2013, 15:36. Показов 15314. Ответов 18
Метки нет Все метки)
(
Всем привет.
Пишу небольшую программку с использованием графического модуля. Понадобилось использовать функцию delay(), поэтому также подключил модуль crt. В итоге, программа не запускается. Удаляю модуль crt и всё работает. Можно ли исправить? Если да, то как?
0
|
|
12.06.2013, 15:36 | |
Ответы с готовыми решениями:
18
Два окна uses crt и graphABC Переход между модулями graphabc и crt Как совместить окна CRT и GraphABC?
|
Почетный модератор
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
|
||||||
12.06.2013, 16:09 | 2 | |||||
Destiner, вы помните, что программы с использованием crt надо запускать, используя Shift+F9?
потому что вот программка с crt и delay у меня работает )
0
|
2 / 2 / 0
Регистрация: 15.10.2012
Сообщений: 17
|
|
16.06.2013, 00:29 [ТС] | 4 |
Так. Знаю, что надо запускать через Shift+F9, об этом даже сам компилятор пишет.
Ваша программа у меня тоже работает, а вот моя — нет. Точнее она выполняется, и через 5-10 секунд завершается, при этом ни окна GraphABC, ни консоли программа не открывает. Sleep подходит. Он чем-то отличается от Delay? Я о нём даже и не знал, везде delay используют. Я же не просто так crt добавлял, он мне нужен был для delay. Ну, теперь уже не важно. Но вообще, интересно, конечно, почему не работает. Учитывая, что программа выше работает, дело, видимо, в моих косяках. Надо будет подумать, хотя идей нет.
0
|
Почетный модератор
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
|
|
16.06.2013, 00:40 | 5 |
Destiner, нну, если можете код выложить (хотя бы часть) то и мы охотно поломаем голову )
sleep - процедура из общих; Делает паузу на ms миллисекунд delay - процедура модуля crt; Осуществляет задержку на ms миллисекунд. "везде" delay (это турбо и free паскаль), "везде" sleep (это pascalABC и pascalABC.NET)
1
|
2 / 2 / 0
Регистрация: 15.10.2012
Сообщений: 17
|
||||||
16.06.2013, 11:06 [ТС] | 7 | |||||
Вот полный код, который у меня компилируется без проблем. Вообще, по-моему мнению, его очень трудно понять, ну если что, могу ответить на вопросы. Некоторые строчки прокомментировал.
Вообще, я делал симулятор вот этого. Программа требует 2 текстовых файла. Я их прикрепил. Их можно изменять, тоже всё работает.
2
|
Почетный модератор
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
|
|
16.06.2013, 11:16 | 8 |
Destiner, ваш проект у меня работает и с вариантом sleep и с вариантом delay
(у меня Pabc.NET версия 1.8 сборка 496)
0
|
2 / 2 / 0
Регистрация: 15.10.2012
Сообщений: 17
|
|
16.06.2013, 11:47 [ТС] | 9 |
У меня была версия 1.8 сборка 500+ (не помню точнее). Поставил 2.1 (т.е. новейшую версию) программа ведёт себя так же.
Версия 1.8 (515) тоже ничего не изменила. От администратора запускать не помогает. Ну, раз проблема только с моей стороны, тут мало чем уже поможешь =) Спасибо за помощь, буду пользоваться sleep()
0
|
Почетный модератор
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
|
|
16.06.2013, 11:52 | 10 |
...не знаю, имеет ли это значение: у меня Windows XP...
в любом случае, удачи! спасибо за программу )
1
|
1 / 1 / 1
Регистрация: 31.05.2013
Сообщений: 40
|
|
16.06.2013, 12:07 | 11 |
Прикольная штука, но вот у меня она заканчивается в один прекрасный момент (всегда один и тот же)
0
|
2 / 2 / 0
Регистрация: 15.10.2012
Сообщений: 17
|
|
16.06.2013, 12:28 [ТС] | 12 |
В settings можно изменить число шагов на любое натуральное число. Да и вообще там много чего изменить можно =)
0
|
1 / 1 / 1
Регистрация: 31.05.2013
Сообщений: 40
|
|
16.06.2013, 13:04 | 13 |
упс, не подумал)))
Добавлено через 2 минуты круто))) а чтобы случайное заполнение было в начале, и задержка по-больше??? крутая заставочка получается))) Добавлено через 8 минут странно, изменяю пресет и прога останавливается раньше чем должна, а если убираю его, то вовсе все клетки пустые(((
0
|
2 / 2 / 0
Регистрация: 15.10.2012
Сообщений: 17
|
||||||
16.06.2013, 13:20 [ТС] | 14 | |||||
По поводу изменения пресета, там надо аккуратно. Вообще его менять не очень удобно, хочу сделать создание пресетов через GUI, чтобы он рисовал сетку, а ты тыкал на клеточки, где нужно добавить жизнь. И в конце всё это сохранять в txt, который уже будет использовать основная программа.
Ну, это позже. Добавлено через 24 секунды А вот версия по твоему запросу.
0
|
2 / 2 / 0
Регистрация: 15.10.2012
Сообщений: 17
|
|
16.06.2013, 13:21 [ТС] | 15 |
Тут нужен только файл settings. Он изменён, поэтому прилагаю к сообщению.
Вот тут с настройками аккуратно. В той версии у нас был только один глайдер, и даже если рисовать поле 650 на 300, тормозит не сильно. Тут на первых порах создаётся много живых клеток и пока большинство не умрёт (а большинство всегда умирает), будет некрасиво отрисовываться полинейно. Я отрегулировал настройки, чтобы это торможение было минимальным, но коэффициент можно ставить и 0.8, например, тогда почти все клетки будут живыми. Поле тоже можно расширять, но именно расширение поля порождает лаги. Моя эмуляция пока слабо оптимизирована, т. к. никогда не запускал больше одного глайдера на поле. Потом возможно сделаю что-нибудь с этим.
0
|
1 / 1 / 1
Регистрация: 31.05.2013
Сообщений: 40
|
|
16.06.2013, 13:27 | 16 |
Всё, разобрался (перечитал правила), написал StartPositionRandom и всё покатило + вставил sleep(100), сижу разглядываю))))
0
|
Почетный модератор
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
|
|
16.06.2013, 13:31 | 17 |
Destiner, да, у меня тоже сразу же возникла мысль создать стартовую процедуру, в которой пользователь сам сможет поместить клетки на плоскость )
0
|
1 / 1 / 1
Регистрация: 31.05.2013
Сообщений: 40
|
|
16.06.2013, 13:35 | 18 |
И нужно тогда дописать условия окончания игры и желательно сразу с перезапуском)))) Чтобы она НИКОГДА не кончалась))))
0
|
2 / 2 / 0
Регистрация: 15.10.2012
Сообщений: 17
|
||||||
16.06.2013, 15:06 [ТС] | 19 | |||||
Да, но это довольно проблематично. Вы наверное уже заметили, что почти всегда остаётся несколько вращающихся фигурок 3 на 1. То есть, если просто написать
Можно конечно сделать сравнение, например, с двумя предыдущими поколениями. Но и это поможет не всегда. Во-первых, есть фигурки, у которых цикл повтора 8 (возможно есть и больше). Во-вторых, ещё проще, если остался хоть один глайдер, он будет вечно двигаться по диагонали и там уже придётся записывать 50+ предыдущих поколений. P. S. Я конечно, уже давно думал, что программу нужно как минимум останавливать, если поколения повторяются, но сделать это оказалось не так просто.
0
|
16.06.2013, 15:06 | |
16.06.2013, 15:06 | |
Помогаю со студенческими работами здесь
19
Меню для готовой программы, как совместить CRT и GraphABC Откомпилировать программу, где были использованы модули CRT и GraphABC Выход из программы через ESC в graphabc без модуля crt
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |