|
Модераторы: Sardar, Aliance |
|
svinuga |
|
||||||||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 18.4.2018 Репутация: нет Всего: нет |
Преамбула
Наверное, нет такого программиста, который не хотел бы написать популярную игру. Извините, сразу разочарую - сегодня мы не будем писать игру, мы будем её именно делать - возьмём готовую на Javascript (благо их, красивых и бесплатных сто-пятьсот), и довернём код игры так, чтобы по результатам игрок получал бонус в несколько сатоши. Зачем ? - очевидно, что игра, за которую платят, интереснее чем точно такая же игра, за которую - нет. - с морально-психологической точки зрения игрок теперь не время убивает - он деньги зарабатывает. - на страничку игры, как на источник сатоши, появятся линки (но об чуть этом позже), которые приведут новых посетителей/игроков. Малая же сатошечка - бонус легко отбивается рекламой. Насторожившихся при слове "сатоши", попрошу вернуться к корням и скрепам: Биткоин на Википедии https://bitcoin.org/ru/ Остальные наверняка спросят: "Ну да, несколько сатоши игроку переслать, а комиссию сети Биткоин кто платить будет?!" Верно. Минимальная комиссия биткоиновой транзакции будет больше тех десятков/сотен сатоши, которые можно безболезненно предложить игроку, а время передачи денег будет таким, что запоздалый бонус игрока скорее разочарует, чем мотивирует. Теория Для решения проблем передачи небольших сумм существуют так называемые криптовалютные микроплатёжки. Появились они в первую очередь для обслуживания "bitcoin faucets", по-русски - "фосетов" или "крантиков". Как это работает: Плательщик (владелец крантика) кладет на свой счет некоторую сумму в криптовалюте. Потом он создает кран (faucet), или приложение (app) (терминология варьируются от системы к системе), и получает секретный ключ. Потом с этим ключом через API (например, такой API) скрипт с сайта плательщика говорит микроплатёжке что-то типа: "Я - такой-то (вот мой секретный ключ), приказываю заплатить такому-то биткойн-адресу столько-то сатоши." Конечно, никакой реальной транзакции сети Биткоин в этот момент не происходит. Сатоши не покидают микроплатёжку, они просто переходят со счёта плательщика на счёт получателя. Зато мгновенно, бесплатно (небольшая комиссия берётся с плательщика при вводе денег в систему), и наглядно - получатель всегда может убедиться что его счёт пополнился. Настоящая же биткон-транзакция случится автоматически, когда сумма на счету получателя станет достаточно солидной, чтобы эту транзакцию пережить (примерно 20 000 сатоши). Всё просто, правда ? Ещё одна проблемка - для вызовов к API микроплатёжки нужны серверные скрипты, чтобы не "светить" секретный ключ. Но и это ограничение мы сейчас обойдём - сделаем игру, работающую исключительно на клиенте. Для этого понадобится ещё один сервис : Remote Faucets ("удалённые крантики" ? - не знаю как красиво перевести) - там можно сконфигурировать этот самый удалённый крантик, передав секретный ключ микроплатёжке в "доверительное управление", а в замен получить HTML/Javascript, позволяющий осуществить платёж прямо на клиенте. Теория кончилась, давайте делать игру. Сразу оговорюсь: все ресурсы ниже - англоязычные, русских аналогов мне найти не удалось. Но и читать там особо нечего, если умеете программировать на Javascript, то и с конфигурацией крантиков справитесь легко. Игра В этом примере давайте использовать BlockRain - добротный классический Тетрис на jQuery. Подходящих игр сотни, если не тысячи, а может быть у Вас и своя есть. В коде выбранной игры надо надо найти место, где игра заканчивается, то самое "Game Over". В BlockRain очень удобно, берётся <DIV>:
Запускается вот так:
Микроплатёжка Микроплатёжку мы будем использовать опосредованно, через Remote Faucets, а там поддерживается три разных. Давайте выберем cryptoo.me. Преимущество этой - не надо сразу пополнять баланс (то, из чего будут платиться бонусы игрокам) "из крамана". Можно зарегистрироваться, найти в меню сверху Deposits,скопировать оттуда Bitcoin address (это тот самый адрес, куда надо переводить средства для пополнения баланса), а потом с этим адресом прогуляться по списку крантиков cryptoo.me, и получить сатоши с них. Как раз на эксперименты хватит. Теперь займёмся нашими крантиками. Пусть в игре у нас будет три разных бонуса, соответственно - три крантика в My Faucets. Имена ("Faucet name") придумайте сами, хоть "Тетрис Бонус 1"..."Тетрис Бонус 3", а вот Faucet URL должна указывать на страничку с игрой. На основании этой информации и создастся список крантиков, откуда (в том числе) придут игроки - собиратели сатоши. Секретные ключи ("API keys") нам понадобятся на следующем этапе. Remote Faucet/Удалённый крантик Вот на этом этапе. Опять создаём три крантика (теперь "удалённых крантиков"), используя API keys. Имена и URL можно оставить теми же. Остальные параметры конфигурации расписывать нет смысла - там всё просто. Для каждого созданного удалённого крантика нам понадобится Faucet ID. Код На страничке с игрой добавьте ещё один <DIV>, в нём будет показываться крантик - бонус.
Теперь немножко нашего любимого Javascript'а:
Всё. Как работает можно посмотреть вот тут. . В статье использованы материалы Creating Remote Faucet и Game Bonuses Если остались вопросы - не стесняйтесь ;) |
||||||||
|
|||||||||
_zorn_ |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 21.8.2007 Репутация: 1 Всего: 12 |
Ну да, только для затеи либо ни один не подойдет, либо надо допиливать так что проще заного написать В остальном наворотил какой то херни (извините). Какие то микроплатежи. Я тебе открою один секрет (но только ты его никому не рассказывай ). Ты в своей системе можешь иметь "баланс" у пользователей. Реальных транзакций не будет. А когда вывод (а вывод ограничен минимумом), тогда уже с кошеля и спишется. А "баланс" это тупо цифра в базе. И клиент счастлив и ниче платить не надо пока не наберет достаточно ) |
|||
|
||||
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |