extra(big)_en

Мудрые мысли

ссылка

Мудрые мысли — мини-игра, цель которой, разгадать цитату великого мыслителя своего времени. Игра переведена также на английский язык.

Идея

Я программист-самоучка. Пришла мне идея поработать с текстом на PHP. Изучал функции, ставил сам себе различные задачки. Одна из из таких задачек была — загнать рандомный текст в таблицу, где каждый символ занимал бы отдельную клетку. Задача не сложная. Трудность была только с русский языком и та была быстро решена.

Потом пришла идея создать мини-игру. Для это была написана функция, перемешивающая буквы а таблице по вертикали. Были составлены стили и client-side скрипт, позволяющий менять буквы местами. Первая версия игры насчитывала 24 фразы в каждом из веков. Постепенно добавились подсказки, но оставалось много проблем.

  • Люди просили отсортировать цитаты по возрастанию сложности
  • Я хотел перевести приложение на английский
  • Также хотелось создать сохранение уровней на сервер

Сортировка

У меня были две идеи как отсортировать цитаты. 1. Создать невидимый таймер и потом по среднему арифметическому времени раскидать уровни по сложности. 2. Написать функцию, которая учитывала бы различные параметры.

Я выбрал второй вариант. Функция выглядит вот так: 

$heavy = $s_count*40+$w_count*10-($num_sp*40+$q5*4+$q4*8+$q3*16+$q2*32+$q1*64)

Где $heavy — вес цитаты, по которому я буду сортировать; $s_count-$num_sp — количество буквенных символов в строке; $w_count— количество слов в строке; $q1-$q5 — количество слов содержащих соответственно от 1-й до 5-и букв. Коэффициенты были подобраны эксперементально. Функция работает замечательно! Длина цитаты не всегда имеет значение и сложность определяется 2-мя основными параметрами — длиной и сложностью слов.

Получение премиум доступаПеревод

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

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

Определение языка

Язык мог определиться 4-мя способами по возрастанию значения:

  • по умолчанию: русский(т.к. основная категория пользователей русскоязычная)
  • язык из заголовка, который отправляет браузер: HTTP_ACCEPT_LANGUAGE
  • язык уже записанный в COOKIEs ранее
  • язык полученный GET запросом: ‘?lang=[lang]’
Шаблоны

Я не стал изобретать и под шаблоны использовал обычные массивы в PHP документе. Массивы выглядят следующим образом: $ar[‘[title]’]= ‘[string]’;
Где title — специальный идентификатор текстовой строки. string — собственно строка на нужном языке.

Выдача документа на нужном языке

Вместо строк в документе размещены языковые функции [ec(‘[title]’) и re(‘[title]’)] которые либо выводят либо возвращают строку взятую по идентификатору [title] из языкового шаблона. Также эти функции способны в строке выводить необходимые переменные, для этого используются спецсимволы.

Премиум доступ

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

На сайте использовал API от оператора A1Pay. Есть способы безопасной транзакции. Для комфортного использования системы требуют получения формального аттестата в несколько несложных действий. Обещают расширять сервис и для транзакций с за рубежом (их способы оплаты и дополнительные языки).

На данный момент более 40% игры доступно бесплатно. Премиум режим дает доступ к оставшимся цитатам, более сложным и интересным. Также премиум режим ускоряет регенерацию подсказок втрое.

Стоит он копейки.

  • Сутки доступа — 3 рубля
  • Недельный абонемент — 14 рублей

Итог

итого у меня получилось создать:

  • 2 языка
  • 4 мира*языка
  • 228 уровней из которых 96 бесплатных
  • 25668 символов, из которых угадать необходимо 21894 символа
  • приблизительно 10 часов разминки мозга
  • уже более 400 человек сыгравших в бэта версию

Текущий прогресс можно сохранить на свой аккаунт. Вход осуществляется через openID сайты.

На мой взгляд, мной проделана работа полезная для новичка. Ссылки:

Приложение для ВКонтакте

Приложение было внедрено в соцсеть ВКонтакте. ссылка

В приложении есть дополнительное меню лучших игроков. Также покупка премиум доступа возможна с помощью внутренней валюты. Премиум можно получить за приглашение друзей. Наслаждайтесь!

Благодарю за внимание.

Мудрые мысли: 9 комментариев

  1. Очень интересный блог. Читаю уже полчаса.

    Мне вот интересен вам профессиональный путь. Нету поста об этом? Т.е. сколько и чему учился, в какой последовательности.

    1. Нет, к сожалению мой путь особо ни чем не примечателен и мне довольно стыдно об этом писать) Я стараюсь больше некие мысли излагать на этот сайт, нежели свою жизнь.

      А если по делу. Учился по стандартному образованию: школа, университет. Направление обучения: подъемно-транспортная техника, конструктор. Самостоятельно изучал крайне легкий язык программирования PHP. Теперь собственно работаю как раз в этом направлении.

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

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

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

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