Можно ли получить доступ к внутреннему счетчику блока Scratch Repeat?

Я предполагаю, что блок Repeat() в Scratch имеет какой-то внутренний счетчик, который увеличивается или уменьшается в начале или конце каждого блока.

Можно ли каким-либо образом получить доступ к значению этого счетчика?

Я понимаю, что это можно сделать, чтобы иметь доступный счетчик , но меня это интересует только для возможной аналогичной реализации на другом языке, который я помогаю разрабатывать.


person Adám    schedule 09.02.2016    source источник
comment
Не из Scratch, но если вы разрабатываете язык, вы, конечно, можете сделать его доступным. Я также рекомендую взглянуть на Snap!, язык, основанный на Scratch; в частности, импортируйте библиотеку инструментов и посмотрите оттуда блок повторения - он идет со счетчиком.   -  person Scimonster    schedule 10.02.2016


Ответы (2)


Нет, но переменные — ваш друг:

set counter to 0
repeat times
  change counter by 1
  ...
end

Должно быть достаточно описательным :)

Теперь вам даже не нужно смотреть на «внутренний счетчик»!

person Florrie    schedule 10.02.2016
comment
Но... я спрашивал про внутренний счетчик! - person Adám; 16.02.2016
comment
@NBZ Какая разница? Зачем вам нужно использовать внутренний счетчик? - person Florrie; 18.02.2016
comment
Вы, должно быть, пропустили мою заметку под горизонтальной линейкой. Сейчас я увеличил размер шрифта. - person Adám; 18.02.2016

Ну типа...

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

Он был удален из списка блоков в ранней бета-версии Scratch 2.0, и мало кто о нем знает, но вот рабочий пример на веб-сайте Scratch: Для каждого v в числе. Обратите внимание, что он не использует %m.list внутри, поэтому вам нужно изменить JSON проекта на что-то вроде ScratchEdit или текстовый редактор, чтобы выбрать переменную, отличную от v.

person wizzwizz4    schedule 15.02.2016
comment
Это не отвечает на мой вопрос. Кажется, что правильный ответ - Нет, нельзя!. - person Adám; 16.02.2016
comment
@NBZ Это повтор, только со способом доступа к внутренней переменной. Я думаю, что это почти то же самое. (Но нет, это не строго отвечает на вопрос!) - person wizzwizz4; 16.02.2016