App Inventor/От 1 до 31
Данная глава посвящена основным этапам создания приложения «От 1 до 31». В начале предлагается некоторое описание и решение задачи, затем рассказывается о процессе создания приложения. Подробно раскрываются такие темы, как работа с экранами приложения и создание процедур.Также в тексте содержится некоторая информация о тестировании приложения.
Описание задачи
[править]Для начала предложим игроку загадать число от 1 до 31. Далее попросим загадавшего выполнить следующие действия:
- Посмотреть на предлагаемую таблицу
- Указать, есть ли на представленной таблице загаданное число
- Повторить первые два пункта на пяти разных таблицах
- Назвать загаданное число.
Таким образом, мы легко сможем определить какое число загадал игрок.
Алгоритм
[править]Данная идея построена на следующем предположении: Абсолютно любое число может быть представлено в виде суммы степеней числа 2. Соответственно, составив таблицы определенным образом, мы всегда сможем сказать, какое именно число загадал пользователь. Таким образом, с помощью n таблиц можно представить числа от 1 до .
Исходя из названия: сколько таблиц используется в приложении?
К сожалению, данный алгоритм не подразумевает "досрочного" ответа на поставленный вопрос, но при верно составленных таблицах вероятность верного ответа равняется 100%.
Исходя из идеи: каким образом также можно представить любое число?
Реализация приложения
[править]В данной программе загаданное число пользователя это то, что мы будем искать.
Создадим глобальную переменную result для хранения числа, загаданного игроком. Изначально присвоим переменной значение 0, а так как ноль не является допустимым загадываемым числом, переменная не будет хранить в себе число, которое мог бы загадать пользователь.
Создадим глобальную переменную flag для хранения информации о том, когда заканчиваются показываемые таблицы и выводится результат. Изначальное значение также 0.
Работа с экранами
[править]При проектировании приложения были учтены рекомендации из официальной документации App Inventor по ограничению количества экранов во избежание проблем с переполнением памяти.
Поэтому в игре используется два экрана (рекомендуемое количество < 10):
- Screen1 — главный экран приложения представляющий собой меню игры и указания, как играть.
- Screen2 — экран, содержащий весь контент приложения: таблицы, показываемые игроку, кнопки выбора, таблица результата.
Логика программы
[править]Пользователю показываются заранее подготовленные таблицы типа TableArrangment, имеющие внутри Label с заранее внесенными цифрами. В данном случае, для того чтобы закодировать числа от 1 до 31 достаточно пяти таблиц. Все таблицы кроме первой имеют атрибут Visible = False .
Как можно заметить, в левом верхнем углу таблицы всегда стоит степень 2, от до . Таким образом, результат вычисляется простым сложением степеней числа 2, где степень является значением переменной flag
Тестирование
[править]Текущая версия игры ориентирована на Android версии 6.1
Примечания
[править]- To31 // Первая версия программы. Автор: Захаров А.М.