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

от автора

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


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

Переливания

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

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

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

Взвешивания

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

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

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

Коробки

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

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

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

P.s.Продолжение (про оставшиеся 3 класса задач) выложу через несколько дней, когда правильно подберу слова

Ссылка на проект:
Google Play
GitHub
ссылка на оригинал статьи https://habrahabr.ru/post/313488/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *