Prince of Persia [NES], Генератор паролей на PHP ;) |
Здравствуйте, гость ( Вход | Регистрация )
Prince of Persia [NES], Генератор паролей на PHP ;) |
19.9.2013, 1:13
Сообщение
#1
|
|||
Администратор Группа: Главные администраторы Сообщений: 14349 Регистрация: 12.10.2007 Из: Twilight Zone Пользователь №: 1 |
А помните в свое время была такая замечательная игра на Dendy, как Prince of Persia? Кто из нас не пытался подбирать пароли к различным уровням? Помнится даже журнал Великий Дракон опубликовал статью с названием вроде "секреты паролей принца" или схожим. Однако алгоритм генерации паролей так и не был найден. Что ж ... вот он, спустя 19 лет такна открыта Скрипт принимает на входе два аргумента - уровень и оставшееся игровое время
Код <?php if ($argc != 3) { echo "Usage: " . $argv[0] . ' <level> <time>'; die(); } $plevel = intval($argv[1])-1; $ptime = intval($argv[2]); echo "Level: " . ($plevel+1) . "\r\n"; echo "Time: " . $ptime . "\r\n"; $r1 = rand(0,9); $r2 = rand(0,9); $pass[0] = (intval($ptime / 10) + $r1) % 10; $pass[3] = (intval($ptime % 10) + $r2) % 10; $pass[1] = (intval($plevel & 3) + $r1) % 10; $pass[7] = (intval($plevel / 4) + $r2) % 10; $pass[2] = $r1; $pass[5] = $r2; $sum = $pass[0] + $pass[1] + $pass[2] + $pass[3]; $sum = $sum + ($sum % 10) + $pass[5]; $sum = $sum + intval($sum / 10) + $pass[7]; $pass[4] = $sum % 10; $pass[6] = intval($sum / 10); echo "Password: " . $pass[0].$pass[1].$pass[2].$pass[3].$pass[4].$pass[5].$pass[6].$pass[7] . "\r\n"; ?> Пример. Уровень 1. 99 минут - 56608121 p.s. Сам алгоритм был взять мной из замечательной статьи [NES] Пишем редактор уровней для Prince of Persia с Хабра и переписан с bash'а на PHP. Вот кстати ссылки на эту статью: p.s. Ссылка, по которой можно загрузить архив с редактором, небольшой документацией по игре и исходному коду патча.
Прикрепленные файлы
-------------------- |
||
|
|||
Текстовая версия | Сейчас: 30.1.2025, 9:56 | |