Приложение "Лисий хвост" или история одного подарка

Я люблю подарки-сюрпризы, как получать, так и дарить. Это была средина февраля 2018 года. Приближался день рождение Андрея. Сам подарок я уже купила, где-то за неделю-полторы, но предвкушение праздника не давало покоя настолько, что хотелось подарить что-то ещё, как-то оформить, чтобы было с душой, а не просто "Вот, купила, держи!"

Самое главное за деньги не купишь. А мы с сестрой с детства любили готовить подарки своими руками, для мамы, для друг дружки. Хотелось что-то особенное, чтобы можно было растянуть удовольствие от получения подарка.

Мы давно не ходили в квест-комнаты, но мне очень нравится идея распутывания загадки по ниточке. Подобная идея есть в книге Дэна Брауна, где главную героиню отец учил решать сложные загадки с детства. Он прятал подарок, а после оставлял по дому записки где его искать, но в очередном месте находилась ещё одна записка. И так, пока не будет найден в тайном месте главный сюрприз.

В то время я работала с ReactNative (мне до сих пор нравится эта библиотека, как и идея что ты можешь сам(!) написать любое приложение для обоих платформ!). Хотелось сделать что-то с её помощью.

Итак, была идея спрятать подарок, сделать много записок и куда бы тут влепить ReactNative? Начать с главного экрана-поздравления, что подарок там? Нет, это можно сделать и на словах. Нужен был какой-то повод, герой, который бы, допустим, спрятал подарок? Да, отличная идея! Мне нужен хитрый, но милый персонаж. Лисёнок.

Я неплохо рисую и сделать несколько скетчей для выбора нужного персонажа не составило труда. Но нужен был сюжет. И места для запрятывания записок. Хотелось задействовать всю квартиру, поэтому я начала с мест, куда можно спрятать что-нибудь:

1 стул
2 лампа
3 гранат
4 кубок
5 туалетная бумага
6 вытяжной шкаф
7 яйца в холодильнике
8 гнездо голубя
9 мороженица
10 весы
11 кондиционер
12 фото
13 сапоги

Позже, когда был готов сюжет, этот список стал таким отсортированным, но вначале это был просто набор хороших мест.

Далее нужен был логический сюжет, по которому строился бы весь ход поисков с учетом тайных мест. Завязка: некий лисёнок приходит и прячет подарок до тех пор, пока не отгадаешь все его загадки. Хотелось совместить лисёночье приложение на телефоне с реальным миром. Я решила разбить его на экраны, где переход на следующий экран будет только после ввода правильного кода, который нужно найти в спрятанном месте. Позже, когда тексты были готовы, я подумала, что загадка, очевидная для меня, может показаться гораздо сложнее. И остаться неразрешённой. Легко было представить, как я хожу за именинником и подсказываю... это перечеркивало бы всю идею приложения (зачем оно, если есть я?) и убивало бы антураж "игры", который я всегда очень высоко ценю в квест-комнатах. Поэтому я решила добавить систему подсказок: по три штуки для каждую. Первая была бы только намёком, вторая - чуть более явно подсказывала, а третья практически выдавала бы готовый ответ. Но чем больше ты берешь подсказок, тем меньше в конце подарка тебе достанется)) Благо, это бегко было сделать ^_^

Финальный текcт очень большой, поэтому чтобы не прерывать чтение размещён в конце.

Итак, у меня был сюжет, оставалось нарисовать персонажа для каждой странички. Я выбрала несколько разных поз для каждого скрина, а также для записок, которые нужно будет распечатать. Карандашные скетчи получились довольно грубые, но я видела за ними идею:




Отрисовав их на планшете, получилось достаточно неплохо. На это ушли одни выходные.








В оффлайноый реквизит вошла небольшая старинная поваренная книга "Лисья еда", содержащая три рецепта, которые нужно было "приготовить". На самом деле это и интересные истории, и указание на три места для одной загадки.




Один из ответов я спрятала в самодельном яйце из фольги на балконе, в голубином гнезде. Там была записка с надписью молоком, хотелось чтобы нужно было нагреть её и увидеть проступившие буквы, но молоко итак выделялось на фоне бумаги, что прочесть не состаляло труда =/


Хотелось сделать все загадки максимально разнообразными. И была одна штука, которую просто не успела реализовать: QR-код, который можно было бы тоже поместить в приложение, но решила оставить как есть. На телефоне всегда есть специальный считыватель и распознаватель кодов.

И конечно само приложение. Исходники можно смотреть у меня на github, а также запустить и поиграться))

Оно было написано за несколько послеработных вечеров. Главным компонентом там является страница. Так как почти все страницы очень похожи друг на друга: есть текст с картинкой, поле для ввода текста с кнопкой-переходом и несколько подсказок, то на React-е это было ооочень легко сделать. Глобальный счетчик подсказок. Никаких баз данных, авторизации или локал сторэджа. Приложение максимально простое, но хорошо масштабируемое. Можно добавить еще хоть 50, хоть 100500 страниц. Из интересного: я добавила тестовые данные в качестве ключей-ответов, чтобы каждый раз не вводить полные ответы. Они работают наряду с правильными ответами, и в одной загадке именно он сработал, котогда нужно было посчитать количество лампочек в квартире)) Совпадение, которое помогло избежать ненужной запарки.

Само приложение выглядит так:




В итоге получилось всё очень здоровски! Подарок был найден =) Хитрый Хвост доволен ^_^

За использованные подсказки я получила почти половину кусочков подарка, которым был целый килограмм шоколада!

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


Ну и обещанный финальный текст:

Доброе утро!
Позволь отрекоммендоваться -  Хитрый Хвост. Не то, чтобы я был очень хитрый, но определенно с хвостом =)
Мне тут сорока на своем хвосте принесла весточку, что у тебя день рождение. И я подумал, что это отличный повод поживиться! Благо, на подарки у меня отменный нюх! И найти твой подарочек не составило особо труда. Так что, как видишь, я тут как тут! И подарочек твой перепрятал. хе-хе-хе))) Ты скажешь, что это нечестно, и это твой подарок! Но... я же его первый нашел ^_^ Значит мой! Ладно, ладно, дам тебе шанс. Не такой уж я и воришка, как ты обо мне подумал! Просто мне скучно... со мной давно никто не играл. Сыграешь одну партейку?

Сыграть - Не буду!
====================================

Не хочешь - как хочешь, я не в обиде. Теперь с чистой совестью заберу свой подарочек и буду таков ))) хе-хе-хе))

- Ладно, сыграю, хитрюга.

Ну значит так, практиковался я давеча в стихосложении и сочинил. Слушай:

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

И как-то в дом явилась
Еще одна машина,
Ее боялись стулья,
И прятались на стол.

Когда ты станешь страшным,
Как белая машина,
Тебе откроет тайну
Один из седоков.

СТРАШНАЯ ТАЙНА: ОН МНЕ НЕ БРАТ
====================================

Вот как новость... даже не знаю, как ты будешь теперь сидеть на этом стуле. Я бы на твоем месте задумался насчет этих двоих... Ну ладно. Как тебе мой стихотворный слог?)) Почти Пушкин? Считаешь? Только аккуратнее выбирай мне похвалы, а то сам знаешь, подарочек всё ещё у меня. И я тебя не проверил на нюх. Это была только разминка. А ну, скажи, сколько светил в твоем маленьком мирке?
Дам тебе три подсказки, если что. Только смотри, пользуйся ими аккуратно. С каждой подсказкой я заберу кусочек твоего подарка себе.
Подсказка 1:
Лампочек сколько.
Подсказка 2:
Ну лампочек у тебя, таких чтобы блым - и горят, или не горят, если не блым. В общем, считай все, что на своих местах. И если включить, то могли бы светить =)
Подсказка 3:
Все - значит все, даже если надо заглянуть в самое темное место, особенно на кухне. Думай и ищи. Циферку вводи!


2 + 16 +1 + 5 + 2 = 26
====================================

Да и я столько же насчитал. 16 в зале, одна в прихожей, 2 в ванной да еще 5 на кухне. Надо же, и про холодильник с микроволновкой не забыл )) С математикой у тебя действительно всё хорошо, тут тебя не проведешь. Тогда вот как тебе по зубам детская загадка:

На макушке корона,
Толстая кожа,
С шариком схож,
На кого он похож!

Подсказка 1

Висит он на ветке и с яблоком схож,
Но красен, как рак, и, как бык, толстокож,
И доверху полон рубиновых бус —
Прозрачных, и сочных, и сладких на вкус.

Подсказка 2

Что за плод — шкатулочка с секретом!
Семена — стекляшки на вид,
Все прозрачные, все розового цвета,
Потрясешь, как странно, не звенит.

Подсказка 3

Поищи плод у себя,
Сунь глаза туда - сюда.

====================================
Вах-вах-вах, да ты хитер!
Хвост Хитрюги ты утер!

Мо-ло-деЦ! Держи за это кубок! Крепко держи, двумя руками! Самый большой!

====================================
ТУТ МОГЛА БЫ БЫТЬ ВАША РЕКЛАМА

Да, совсем забыл сказать, пока ты там воображал себя с кубком в руках, я сходил в ваш нужник. Ну и... как бы это, по своим делам. Зверек я маленький, много не наследил, я бы и сам за собой поухаживал, но у меня лапки ^_^ Не мог бы ты прибраться за мной?

Подсказка 1
Я немножко накакал >_<

Подсказка 2
И хотел бумагой всё-превсё вытереть, но у меня лапки  =(

ХИТРОЛИСЬЯ КАКАШКА

====================================
Ой, спасибо! Чувствую себя уже как дома. За мой ухаживают ^_^ Надеюсь, ты это не только из корысти делаешь? что подарок хочешь получить? Ну если ты и правда такой добрый, как о тебе говорят, а о тебе говорят! Уж поверь мне =) то может быть ты меня покормишь? Ась? Со вчерашнего дня во рту курочки не было... есть так хочется... Приготовь мне что-нибудь из той поваренной книги, что у вас на кухне в шкафу. А там глядишь, я поем и подобрею и все на свете секреты тебе расскажу ^_^ Сытый Хвост - довольный Хвост!

Подсказка 1
Спрашиваешь где книга-то? Ну я же сказал, что на кухне в шкафу. Где же ей ещё быть?

Подсказка 2
Не в этом шкафу, тут только посуда. Для книги должен быть отдельный шкаф!

Подсказка 3
Посмотри повыше. Повыше и правее. Немудрено в стольких шкафах-то запутаться!

Старинная поваренная книга

ЛИСЬЯ ЕДА

Содержание:
Рецепт 1
Старинная похлебка из чешской деревни под Аустерлицом
Рецепт 2
Рито: голубиная запеканка
Рецепт 2
Французский щербет

Рецепт 1
Старинная похлебка из чешской деревни под Аустерлицом
В народе поговаривают, что это блюдо было изобретено жителями деревни задолго до знаменитой битвы Наполеона, но только в 1805 году оно стало популярно как никогда. Стоял холодный ноябрь, французская армия расположилась к югу от деревни, недалеко от Второго Лисьего леса. У них были повозки с провизией и неплохая конница. Несмотря на военное время, солдаты любили захаживать к местным жителям в поисках не столько пищи, сколько ради удовольствия общения с молоденькими дамами.

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

Французам этот обряд крайне кравился и они, развлекаясь, вставали спозаранку, брали свои свежие французские яйца и шли к местным колодцам. Ну а лисы тут как тут. К каждому колодцу из Второго леса был прорыт туннель, и с началом прихода холодов, когда вода в колодце замерзала, мы брали взаймы сено у людей и складывали их на дне колодец в виде гнёзд. Таким образом яйца сами складывались в одну кучку, из которой варилась замечательная похлебка!

Будете в тех краях, непременно попробуйте это вкуснейшее блюдо!

Ингридиенты:
- куриные яйца
- вода
- специи

Приготовление:
Разбейте яйца в кипящую воду, добавьте специй и варите похлебку до готовности. При подаче на стол, украсьте кусочком жареной ножкой курочки. Приятного аппетита!


Рецепт 2
Рито: голубиная запеканка
История этого блюда уходит корнями к тем прадавним временам, когда еще не было на земле людей, а из главенствующих родов на планете были большие птицы Рито и небольшие, но хитрые лисы Лисы. Они делили между собой землю и воздух, что творилось в океане им было не интересно и потому они не знали о народах, населявших водную часть.

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

Но после смены климата на планете Рито практически исчезли с лица Земли, что чуть было не привело рецепт к забвению, если бы не смелый поступок одной Хитрой Лапы. Этот лис решил украсть несколько птенцов Рито и вырастить их у себя. Это было не сложно, так как все крупные животные начали вымирать на планете, и взрослые Рито тоже погибали. Хитрая Лапа нашел трех птенцов в одном из гнезд, у них не было родителей и он решил скрыть их в своей норе. Естественно живя под землей, этит птенчики не могли летать, равно как и не могли вырасти достаточно больших размеров. С каждым новым поколением они становились все меньше и меньше, пока не стали размером с голубя. Так собственно благодаря селекции Хитрой Лапы и появились на планете новый вид птиц - голуби. Позже, они снова научились летать, но их размеры и в особенности их яйца так и остались малы.

Оригинальный рецепт запеканки по-прежнему состоит из одного яйца. А сам рецепт заключается в следующем: положить голубиное яйцо на сковороду и запечь. Подавать к столу горячим.


Рецепт 2
Французский щербет
Новомодное блюдо родом из Бордо. Не каждый лис оценит его вкус, но каждый, попробовав раз, запомнит его на всю жизнь. Говорят, рецепт был привезел из Америки, но к нам на стол он попал через Францию, когда люди запасались продуктами в больших холодильниках, где морозная свежесть придавала новый вкус старым блюдам.

Готовить его можно из любых фруктов и ягод, которые будут у вас под рукой. За основую можно также взять травы и корнеплоды, а так же мелко-нарезанную телятину, курятину или свинину. Далее помещаем ваш главный ингридиент в мороженицу, ждем некоторое время и щербет готов!

Подавать холодным и на вытянутых лапках! Bon appétit!


ИСКУССТВО КОРМЛЕНИЯ ЛИСЫ
====================================

М-м-м-мммм-м-ммм... ням-ням как вкусно! Ну прям кулинар!
Спасибо за роскошные блюда! Давненько не едал я таких вкусностей! ^_^

*поет*
Счастье лисье
Счастье есть,
Сладко спать и вкусно есть!..

Хррр-рр-рр-р-ррр...

Ой! Мамочки-лисёночки! Я кажется встать не могу, даже на другой бочок перевернуться не могу. Ой-ой, кажется весу набрал...
А посмотри, сколько там лишних килограмм у меня?
Мой идеальный вес = 27.6 фунтов!

Подсказка 1
Посмотри на весы

Подсказка 2
Ещё надо посчитать сколько лишних килограммов, а не фунтов. Что-то я тоже в них путаюсь.

показания весов: 13.72 кг

1.2
====================================

Уффф... 1.2 килограмма на мой-то рост... ох объелся - так объелся! Аж дурно! А не откроешь ли окошечко, любезный друг? Подышать охота. Ан нет, лучше закрой и включи увлажнитель, от него тоже прохлада идет. Или лучше кондиционер.

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

Подсказка 1
На улице такая холодина, что я бы все-таки кондиционер включил.

Подсказка 2
Кажется, он сломался, не проверишь ли что с ним?

ОСВЕЖАЮЩАЯ ПРОХЛАДА

====================================

Спасибо, ты настоящий друг! Мне уже значительно лучше.
Признаться, мне ещё никогда не было так хорошо! ...хоть песни пой...

..Хитрый Хвост - довольный хвост,
Твой подарочек унёс,
В феврале явился спрос
И утёр лисёнок нос!..

Ну ладно, не буду мучать больше тебя испытаниями, только вот просьбочка будет одна... Пока я такой счастливый и довольный, может ты меня сфотографируешь на память? Только чтобы красиво вышло, я хочу маме фотокарточку послать в Тёмный лес. Вот она порадуется! ^_^

Подсказка 1
Хочу очень качественное фото, чтобы как в фотоателье.

Подсказка 2
Поищи, может у тебя есть хороший фотоаппарат, где я был бы во всей красе ^_^

====================================
Спасибо за снимок!
Я отлично получился! Красавец - нет слов! У моей мамы очень много подруг, будет кому меня в пример ставить ^_^

Ну все, мне пора, счастливенько оставаться! Я пошёл =)
Ах, да, твой подарочек... ну я уже вышел, так что одевайся-обувайся, жду тебя возле подъезда.
Да, смотри там холодно. Не замерзни.

Подсказка 1
Ты точно тепло одет?

Подсказка 2
И обут?

====================================
А знаешь, не люблю я этих долгих прощаний, вот решил записочкой тебе все рассказать. Как мне у тебя понравилось, что, пожалуй, приду в следующем году на день рождение! А если не позовешь, то держи ушки востро на свои подарки, может чегось и не досчитаться =) хе-хе-хе)))

А пока не поминай лихом! Будь здоров!

Ну и это... спрятал я его. Хорошо спрятал. Так, чтобы только ТЫ смог его найти. Дам подсказку: где деньги лежат.
Ну всё, я пошёл. Не найдешь подарочек - не расстраивайся, я через год снова зайду)))

Чмоки, амиго!





Комментарии

Популярные сообщения из этого блога

Стайлгайд и компонентная разработка

Прогноз погоды в консоли

Погружение в React Native: навигация, работа оффлайн, пуш нотификации