Велике оновлення мови програмування РАВЛИК

Трохи більше місяця тому я випустив власну текстову мову програмування — РАВЛИК. Навіщо? Пояснив в цьому дописі. Якщо коротко - мені, як вчителю інформатики в початковій школі, не вистачало інструментів для переходу від програмування блоками до програмування текстом з підтримкою української мови.

За цей час я отримав багато цінних відгуків від колег і користувачів, і втілив низку змін, щоб зробити РАВЛИКА ще потужнішим, надійнішим та дружнім до наймолодших програмістів.

Новий функціонал і поліпшення “ззовні”

Перше доповнення, що одразу впаде в око користувачу - додано кнопку збереження малюнка та кнопку виклику довідки

Кнопка “Зберегти малюнок” експортує зображення користувача у форматі PNG.

А щоб не шукати список доступних команд у Посібнику, я додав модальне вікно “Довідка” з повним переліком всіх інструкцій і їхнім коротким описом — тепер підгледіти потрібну команду можна в один клік.

По-друге, додав три прості, але корисні команди:

  • підняти — вимкнути малювання, щоб перемісти равлика без сліду;

  • опустити — знову опустити равлика і малювати;

  • очистити — швидко стерти все полотно, не видаляючи код.

По-третє, щоб всі команди були уніфікованими, команду з попередньої версії “повтори” замінено на “повторити” — тепер ці інструкції звучать у тому ж імперативному стилі, що й інші команди.

Також, за порадою колег я видалив автоматичне зникнення помилок через 5 секунд. Тепер повідомлення залишаються на екрані доти, доки користувач не натисне ✖, — діти встигнуть уважно прочитати текст помилки й зрозуміти, що потрібно виправити.

Усі ці зміни також знайшли відображення в оновленому Посібнику: додано окремий розділ про нові команди, блок про збереження малюнка, докладні інструкції до Довідки та проаналізовано випадки з помилками.

Глибше під “капотом”: внутрішні поліпшення

Щоб зробити роботу РАВЛИКА надійною та безпечною, я реалізував низку механізмів захисту та обмежень:

  1. Перевірка Canvas API
    При завантаженні сторінки скрипт перевіряє підтримку елементу <canvas> та його контексту. Якщо браузер не відповідає вимогам, користувач отримає alert із порадою оновити браузер або спробувати інший.

  2. Ліміти на код та виконання

    • Максимальна довжина коду — 10 000 символів;

    • Час виконання — не більше 5 сек (через Promise.race з таймаутом);

    • Глибина вкладених циклів — до 20 рівнів;

    • Макс. повторень у циклі — до 1 000 разів.

    Якщо хоч один з цих лімітів порушено, інтерпретатор зупиняє виконання і виводить чітке повідомлення про причину.

  3. Межі полотна
    Canvas обмежений розмірами 3000×3000 пікселів, щоб запобігти надмірному навантаженню браузера.

  4. Якщо Равлику пропонують вийти за межі полотна, рух блокується з повідомленням “Равлик не може вийти за межі поля!”.

  5. Інші дрібні, але не менш важливі зміни.

Висновок

Сподіваюсь, описані зміни підуть на користь проєкту. Нові команди, збереження малюнка, зручна довідка, повідомлення про помилки та розширені технічні моменти зроблять його безпечнішим і приємнішим у використанні.

Нова версія РАВЛИКА доступна за посиланням https://ravlykonline.github.io/new/index.html.

Запрошую всіх тестувати оновлену версію, гортати Посібник і ділитися враженнями — разом зробимо РАВЛИК ще кращим!

Поділись своїми ідеями в новій публікації.
Ми чекаємо саме на твій довгочит!
Артем
Артем@artem

Намагається збагнути світ

6.3KПрочитань
8Автори
55Читачі
Підтримати
На Друкарні з 15 квітня

Більше від автора

Вам також сподобається

Коментарі (0)

Підтримайте автора першим.
Напишіть коментар!

Вам також сподобається