2017-01-27 3 views
-3

Я хотел бы сделать учебный портал, где учащиеся будут изучать основы алгоритма. Я сделал алгоритм растрирования линии в JavaScript, и я хотел бы «отлаживать» или «замедлять» алгоритм, потому что он показывает, что происходит во время алгоритма и показывает за ним работу по математике. К сожалению, я не могу найти способ, как это сделать. Когда я отлаживаю свой .js, он работает, но он работает так быстро, что пользователь не может его увидеть. Мне нужно что-то, что остановит алгоритм на несколько секунд, а затем продолжит. Я попробовал функцию setTimeout, но он не работает, как я ожидал. Я попытался сделать sleep function, но он замораживает весь алгоритм. Я много читал об этом и не нашел ответа. В худшем случае добавьте кнопку, и пользователь нажмет кнопку, а затем продолжит (я могу думать о решении, но на самом деле еще не пробовал его). Here is basic моего кода: вы щелкаете двумя точками, а затем запускаете алгоритм. Он печатает значения переменных в холсте и окрашивает пиксели (на холсте), которые вычисляются для цикла. Я хотел бы «замедлить» цикл для ученика, чтобы увидеть, в какой строке находится алгоритм и как он решает, какой пиксель он цвет следующий. функция Highlight() показывает, где находится алгоритм, и какие значения в данный момент находятся в нем - это не важно, мне просто нужно приостановить его там на несколько секунд, а затем продолжить. Большое спасибоКак «замедлить» алгоритм или как сделать паузы во время запуска алгоритмов

ответ

0

Я думаю, что setTimeout() требует функции без круглых скобок в качестве первого аргумента. Вы не можете позвонить Highlight(x). Вместо этого вам нужно сделать setTimeout(function(){Highlight(x)},1000).

Смежные вопросы