Pull to refresh

Лень двигатель прогресса. Генератор задач. Часть 1

Reading time 3 min
Views 4.8K
За время работы преподавателем математики в начальных классах, возникла необходимость часто придумывать однотипные задачи, чтобы набить руку. Вот тут лень и знания пришли на помощь!



Расскажу о своем опыте разработки приложения генератора задач для начальных классов.

Переливания



Задача состоит в том, что при помощи трех склянок отмерить определенное количество воды. При этом можно наливать воду из источника (наливать доверху сосуда, а не на глаз) и сливать в сток всю склянку. Основная механика задачи строиться на переливании воды из одного сосуда в другой, наливая доверху.

Весь фокус состоит в том, что если есть две склянки и их объём разной чётности (1 и 3, 2 и 5, 1 и 6 и так далее), то обладая третьим сосудом (складируя туда нужный объем воды), можно налить любой объем.

Потому создаем механику на основе OnMouseDown (при нажатии на склянку она подсвечивается, а дальше нажать на сток/исток, чтобы слить/набрать воды или на другую склянку, чтобы перелить туда воду). При этом нужно сделать так, чтобы емкости были объёмов разной четности.


Взвешивания


Так как задачи составляются для детей, то и персонажи должны быть им близки. Поэтому на весах вместе с гирьками находятся котики (маленький и большой).


Генерация довольно простая: на верхней левой чаше ставим большого котика и нескольких маленьких, на верхней правой гирю с их весом. На нижней левой ставим нескольких (или одного) маленьких котиков и на правую гирю с их весом.

Задача получилось очень простой, но подходящей для «первой встречи». Так что усложним задачу. На обеих левых чашах поставим по одному большому котику и нескольких (но не одинаковое количество для разных весов) маленьких. Справа, как и раньше, вес всех котов на левой чаше.

Коробки



На самом деле это скрытая реклама принцип Дирихле: нужно вытащить из коробки столько шариков, чтобы гарантированно попался хотя бы один шарик заданного цвета, если внутри некоторое (известное) шариков и известно, как распределен цвет между ними.

Генерация оказалась проще, чем сделать подходящую анимацию вытаскивания шариков:

  • Генерируем распределение цветов шариков
  • Красим шарики в ящике в соответствии с распределением цветов
  • Выбираем цвет искомого шарика и подсчитываем нужное количество


Upd


Дописал то, чего не было утром

Логические высказывания




Суть данной задачи в том, чтобы найти указанный предмет в коробках с надписями, при условии что только одна из них правильная.

Формулу для этой задачи подбирал вручную, потому меняются только предметы в коробках и то, что ищем. Но для того, чтобы это было сложнее заметить, коробки меняются местами (грубо говоря к каждой коробке заранее прикреплена своя формула, но место коробки не закреплено и может быть одно из трех). В данном случае примем, что персик, тыква и слива это s1,s2 и s3 соответственно. Тогда на первой коробке s1, на второй s2 или s1, а на третьей не s1.

Как можно заметить, правдивой может быть только надпись с не s1. На том и держится весь алгоритм.

Спички




Цель: переложить одну спичку, чтобы уравнение стало верным.

Это самая интересная и важная для меня задача. Когда то с другом мы составили таблицу «переходов спичек». Посмотрели, какие цифры можно получить из других цифр, убрав или добавив одну спичку


Алгоритм теперь не представляет больших проблем: создаем случайное равенство (a+b=c) до тех пор, пока в нем не будет пары чисел, которые можно изменить добавлением и удалением спички (по таблице замен). После на экран выводим изменённые числа, выложенные из спичек.

Числовой криптекс




Задача прокрутить колеса криптекса так, чтобы получилось верное равенство.

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

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

Статистика и применение




Не знаю, как по меркам хабра, но такое распространение только благодаря нахождению приложения в каталоге приложений (без рекламы, постиков в вк и прочего) говорит о том, что приложения такого рода интересны людям. Пусть они и уступают в графике и привлекательным персонажам мультфильмов в целом.

Ссылка на проект:
Google Play
GitHub
Tags:
Hubs:
+1
Comments 8
Comments Comments 8

Articles