Моя 8-летняя дочь учится программировать и с удовольствием создает проекты с помощью Code.org. Теперь она хочет разработать программу, которая создает вавилонскую числовую диаграмму с числами от 1 до 1000, но ни в одной из известных мне визуальных программных сред нет возможности отобразить такую вещь. Я смотрел на Hopscotch, Tynker, Scratch, пока безрезультатно. Она еще не печатает, поэтому переход на текстовую систему пока невозможен, поэтому я надеюсь, что кто-то еще знает хорошее решение.
Существует ли визуальный язык программирования с большим/настраиваемым разрешением сцены?
Ответы (6)
Snap! — это блочный язык программирования, основанный на Scratch. Он позволяет настроить размер сцены:
Щелчок! также добавляет интересные функции функционального программирования, такие как анонимные функции и вложенные списки.
Существует инструмент для импорта проектов Scratch: https://djdolphin.github.io/Snapin8r2/.
При отображении такой диаграммы в Scratch есть две трудности.
1) Размер экрана слишком мал.
2) Нет очевидного способа отобразить основные символы вавилонских чисел.
Маленький размер экрана будет проблемой в любой среде разработки, будь то блочная или текстовая. Даже используя весь дисплей с разрешением 1366 x 768 пикселей, у нее будет только 30-пиксельный квадрат для каждого числа. Разбиение диаграммы на части (например, 10 страниц по 100 чисел в каждой) или отображение одного числа на основе пользовательского ввода — два возможных решения проблемы с размером экрана.
Оба этих связанных проекта (меньшая диаграмма или преобразователь чисел) возможны в Scratch. Вашей дочери нужно будет создать спрайт-рендерер, который сможет рисовать символы на сцене. Спрайт рендерера может либо иметь костюмы вавилонских символов и использовать блок печати для создания комбинаций, либо спрайт может рисовать символы пером. В этом проекте есть несколько примеров спрайтов рендерера и способов их использования.
Вавилоняне использовали основание 60. Похоже, что каждое число состоит из двух уникальных спрайтов, повторяющихся и организованы в парадигме с основанием 10.
Возможно, вы захотите рассмотреть анимированный счетчик с помощью Scratch.
- На каждом такте часов появляется еще один правый спрайт «единицы», и все исчезают на 10-м такте).
- На каждом 10-м такте появляется еще один левый спрайт «десятки» (и все исчезают на 60-м такте).
- Затем на 60-м тике цифра слева от левого появляется или обновляется на 60-м месте.
- Чтобы получить 1000 по основанию 60, вам нужно всего две цифры.
Где-то еще на экране текстовое поле, содержащее десятичное число, отслеживает тики.
Вы можете оживить маленьких вавилонян, едущих на колесницах от зиккурата к зиккурату. (Извините перед любыми вавилонянами, если я создаю стереотипы.)
Звучит весело, удачи.
Реализовать его в Scratch не составит труда. Но это большой проект в 8!
- размер экрана: по 4 спрайта на номер, 1000 номеров, 4000 символов на экране сложно. Но в любом случае это уродливая диаграмма для статического отображения. Вы можете использовать динамические характеристики компьютерного дисплея, чтобы масштабировать спрайты очень маленькими (поместив их все в одну неразборчивую таблицу) или достаточно большими, но неполными, и использовать клавиши со стрелками для прокрутки. Это урок пользовательского интерфейса: у компьютеров нет дисплеев размером с обеденный стол, но их дисплеи динамические, так что используйте это.
Преобразование — это небольшая работа.
- сначала получите набор изображений для чисел 1-9 и 10-60.
создаем два спрайта - первый с костюмами для 1-9 изображений; следующий за 10-60.
чтобы показать правильное изображение, используйте костюм переключения.
Я рекомендую вам начать с меньших чисел, сначала до 9, затем до 59. После этого общим решением будет использовать штампование, затем сдвинуть спрайты влево, сменить костюмы и снова штамповать.
для вычисления правильных значений с учетом ввода X:
- единицы = X модуль 10
X '= X / 10-единиц
если ваш номер до 59, то все; X' - номер десятки костюма. Если не:
- десятки = X' модуль 6
X'' = X'/10-единиц
Начните снова с X ''. Если вам нужно универсальное решение, отметьте спрайты, сдвиньте их влево и вычислите. В противном случае используйте X'' для расчета правильных костюмов двух новых спрайтов.
Pure Data – это язык визуального программирования с открытым исходным кодом, который поддерживает все основные операционные системы.
Этот вопрос старый, но все еще интересный.
Я думаю, что ваша дочь может использовать царапины для достижения цели, используя действие «следующий костюм», связанное со спрайтом.
Вавилоняне использовали основание 60, что означает, что нам нужна пара из 2 спрайтов для представления чисел 0-9 и 10, 20, 30, 40, 50, (6) 0. Затем мы продолжаем добавлять эти пары впереди, когда число становится больше 59.
Я разработал POC в течение 30 минут, включая время, которое я потратил на вырезание/сохранение/импорт костюмов.
Я использую эту переменную, чтобы показать число вавилонян. Код прост. В конце концов, одна сложная вещь — это временная синхронизация между разными спрайтами. Чтобы упростить задачу, мне пришлось вручную «настраивать» ранний щелчок, добавляя звук.
Вы можете просмотреть мой опубликованный проект здесь. https://scratch.mit.edu/projects/154836328/
Снимки проекта Scratch Костюм