Автокликер Clickermann :: Форум
Основной раздел => Предложения => Topic started by: Сергей on November 04, 2012, 12:14:46 PM
-
Собственно сабж.
break - выход из цикла
continue - переход к следующей итерации без завершения текущей
Намного удобней использования переменных-флагов и лишних условий.
-
Поддерживаю!
-
+1
-
и я поддерживаю, пусть будет больше питона в кликермане
-
Присоединяюсь к просьбе.
Еще можно было бы добавить
exit - выход из подпрограммы (не путать с break) иногда удобно использовать как одно из условий цикла, переходить не просто в конец цикла, а сразу к следующей подпрограмме (мне их удобнее называть процедурами или функциями, но ладно, привыкну).
И команда pause - пауза скрипта, удобно для отладки
-
И команда pause - пауза скрипта, удобно для отладки
пауза есть, если нажать на play после запуска скрипта
-
И команда pause - пауза скрипта, удобно для отладки
пауза есть, если нажать на play после запуска скрипта
В процессе отладки скрипта пауза должна быть нажатой строго после определенного действия, чтобы не гнать весь скрипт а проверить работу одного цикла или подпрограммы. Как правило время для ручного нажатия паузы исчисляется сотней миллисекунд. Оно вообще надо если можно просто вбить специальную команду? Сейчас можно и wait(999) написать, но это не интересно :)
-
Для отладки много чего не хватает. И пошагового выполнения и изменение скорости (замедление). Вывод значения выбранных переменных в реальном времени. Много можно придумать.
А пока пауза решается просто.
Вот прям с лёту пару вариантов
1
SUB(pause)
WHILE(ISKEYDOWN(#space)=0)
WAITMS (100)
END_CYC
WHILE(ISKEYDOWN(#space)=1)
WAITMS (100)
END_CYC
END_SUB
pause() // где нужна пауза ставим эту строку. Пробел - продолжить
2 с потоками
THREAD(pause, 1)
IF(ISKEYDOWN(#space)=1)
SETTHREAD (основной_скрипт, 1)
WHILE(ISKEYDOWN(#space)=0)
WAITMS (100)
END_CYC
END_IF
WAITMS (100)
END_THREAD
THREAD(основной_скрипт, 1)
// основной скрипт
SETTHREAD (основной_скрипт, 0) // где нужна пауза ставим эту строку. Пробел - продолжить
// основной скрипт
END_THREAD
-
Та тоже так делаю, но согласись, было бы удобно пошаговое исполнение и замедленное с выводом выбранных переменных, и тогда засорять скрипт отладочными логами будет не нужно почти.
Помню на спектруме в одном из вариантов был вшитый отладчик с режимом трассировки. Как же удобно было. Справа всегда выводилось состояние регистров и флагов. Можно было пошагово выполнять с показом строки. Можно замедленно или установить контрольную точку.
Короче отладчик бы не помешал. Только свой конечно, с особенностями, выводом return1/return2 показом области поиска и прочими вкусностями.
Во раскатал губу.
-
BREAK("message") - прерывает выполнение сценария диалоговым окном
DIALOGBOX("message", buttons, icon) - числовая функция; выводит диалоговое окно с кнопками
INPUTBOX("message", "default", [delay]) - строковая функция; выводит диалоговое окно для ввода строки.
Помоиму эти функции позволяют реализовать абсолютно любую пошаговость, какая только душе угодна! :)
Хотя на практике у меня таких задач пока не возникало.
Это всё не то. Множитель иногда использую. Можно для этой цели даже использовать параметр smart_delay из конфига, не засирая скрипт.
BREAK давно не работает если не в курсе.
DIALOGBOX, INPUTBOX это не удобно использовать для отладки. Опять же засорение скрипта.
А использование всех этих INPUTBOX в количестве больше 3 приведёт в бешенство. Можешь попробовать.
Я понимаю что почти всё можно заменить костылями, так пока и делаем. Но на костылях как здоровый не побегаешь.