Материал из Скретч Вики

Значок «важно».png Внимание! Статья не предназначена для новичка! Она содержит сложную информацию.


Начиная со Скретч 2.0, пользователи могут создавать облачные переменные. Проблема облачных переменных в том, что они могут хранить только лишь числа. Ко всему прочему они могут хранить ограниченное количество знаков, из-за чего пользователи просят, чтобы ввели возможность сохранять текстовые данные.[1]

Однако, существует обходной путь, чтобы создавать такие переменные, и множество пользователей создают такие пути сами. Это руководство описывает создание облачного списка.

Кодирование информации

Чтобы сохранять строки в нашем «списке», мы должны эти строки закодировать так, чтобы на выходе получилось число. Для начала создадим новый блок.

  определить зашифровать (строка)

В этот блок нужно поместить код, который бы шифровал строку в числа. Также нам понадобится и облачная переменная.

  задать [шифрование v] значение (1)
  задать [выход v] значение ()

А теперь соединим всё, чтобы получилась нужная конструкция. Нам нужно, чтобы шифровалась каждая буква, поэтому нужно поставить блок повторения, который пройдётся по каждой букве нужной строки и зашифрует её.

  определить зашифровать (строка)
    задать [шифрование v] значение (1)
    повторить (длина (строка)) // проходит через всю строку
      изменить [шифрование v] на (1)
    end

Этот блок — лишь половина дела. Нам же нужно кое-что получше. Создадим два списка, в которых будут нужные буквы и соответствующие им числа, допустим, тут будет весь алфавит и немного пунктуации (следует использовать не более 99 символов). Далее создадим цикл внутри цикла. Он будет искать двухзначное число и выписывать его в конечный список.

  задать [поискБуквы v] значение (1)
    повторить (длина списка [буквы v])
      если <(элемент (поискБуквы) из [буквы v]) = (элемент (шифрование) из (строка))>, то
        если <(длина (поискБуквы)) = (1)>, то
          задать [выход v] значение (слить (выход) и (слить (0) и (поискБуквы))
        иначе
          задать [выход v] значение (слить (выход) и (поискБуквы))
        end
      изменить [поискБуквы v] на (1)
      end
    end

Примечания

  1. Наиболее часто создаваемые темы для предложений