Плюшка номер раз
Больше всего настораживало отношение к именитой фирме. То что Виндоус ругают все кому не лень – это Мудman знал. Но этот «прыщ», похоже, конкретно нашёл глюк, при чём в таком месте, в которое ни кто никогда не заглядывал, хотя оно лежит на самом виду…
-- Ёшкин кот! -- Ругнулся Мудman ещё раз и продолжил чтение.
Наконец, дойдя до конца, где была приведена пошаговая инструкция, Мудman со страхом и недоверием стал выполнять приведённые действия. На удивление всё получилось. Игрушка ожила в DOS-окне. И даже играть в неё было можно…
Когда пальцы перестали гнуться, а спину заломило, Мудman посмотрел на часы и ахнул:
-- Бог мой! Я же за этой хренью уже четыре часа сижу! А ведь только начал набирать очки! Видимо этот «прыщ» вставил внутрь 25-й кадр, не иначе… Но как же всё-таки добраться до ПОБЕДЫ? Может ещё раз инструкцию почитать? Вроде там что-то было про выигрышную стратегию…
Мудman покосился на текст инструкции. И со словами: «Ну кто так пишет! Кто так пишет? А!» , вздохнул и снова, как последний дурак, стал читать инструкцию. «Не дай Бог увидит кто, -- засмеёт!»
Да, инструкции нынче были не в чести. Предполагалось, что при запуске программа будет квадратной, а единственная кнопка внутри окна должна иметь надпись «Пуск» или на худой конец «Ok». При нажатии этой кнопки у программы всегда было лишь два варианта: либо она работала сама, не задавая лишних вопросов Юзеру, что, впрочем, случалось очень редко; либо она висла и её обрывали натренированным движением Ctrl+Alt+Del , которое у каждого компошника уже прописано в генотипе.
Дурацкая «Инструкция» неизвестного автора начиналась тоже по дурацки с забытого слова:
Здравствуйте!
Ну-ка, припомните, друзья, сколько лет минуло с тех пор, как вы держали в руках программируемый калькулятор и журнал "Техника молодёжи"? А в том журнале были игровые программки с описанием. Их можно было набрать собственноручно со страницы журнала и, читая попутно рассказ, насладиться не только мыслью писателя, но и программиста. Я решил возродить эту старую традицию. Считайте это пробным шаром. (Пробным, поскольку сюжет здесь пока отсутствует. Но если всё получится, как задумано, то обещаю: за мной не заржавеет!)
Тетрис с призами и карманАми
ОПИСАНИЕ
От классической игры "в стакан", выполненной по бесконечному варианту, данную версию отличает конечность. Как в шахматах, вы можете достичь ПОБЕДЫ, объявив мат противнику, так и здесь, игра успешно завершается, когда вы наберёте 1 000 000 .
Вам помогут ПРИЗЫ, которые даются за минимальное число оставшихся в стакане клеток от сокращения полных строк и максимальное число этих самых сокращённых строк. Для каждого уровня свои условия достижения приза (см. ПРИЛОЖЕНИЕ А в конце).
Размер приза зависит от уровня. Сначала приз 10 000 . На каждом следующем уровне сумма приза увеличивается на 10 000 .
Число полученных призов отражается в статистике на поле и влияет на условия получения призов. После получения приза и выдачи экрана сообщения о нём вы возвращаетесь к начальному состоянию, но при этом сохраняете набранные очки. Конечно, для получения приза вы можете сократить и большее количество строк, а в стакане оставить меньше клеток.
КАРМАНЫ
Кроме призов на каждом следующем уровне добавляется "карман", это ячейка памяти внутри Тетриса, которая может временно сохранить фигуру, отражающуюся в поле для следующей. При этом номер кармана окрашивается в цвет фигуры. Поэтому, запомнив какие фигуры в какой цвет выкрашены, вы без труда сможете определять в каком кармане что лежит. Если карман пуст, то он бесцветный (только в самом начале). Обмен фигур производится нажатием цифровых клавиш от 0 до 9.
При этом фигура, которая должна появиться следующей, уходит в карман, а вместо неё берётся из кармана. Если же карман на момент обмена был пуст, то следующей становится любая из выбранных произвольно без участия карманов.
Максимальное количество карманов 10 шт.
На девятом уровне открывается старший карман. Дальше увеличение уровня приводит лишь к увеличению скорости, а карманы уже не добавляются.
УВЕЛИЧЕНИЕ УРОВНЯ
Увеличивать уровень нужно самостоятельно клавишей "стрелка вверх". Сбрасывается уровень до нулевого после получения приза. На старших уровнях игра идёт быстрее.
КАК УПРАВЛЯТЬ ФИГУРАМИ
Переворот фигуры "стрелка вниз", "стрелки вправо-влево" перемещают фигуру по горизонтали. Досрочный выход клавиша "Esc". Переход от экрана сообщения к продолжению игры клавиша "пробел". Во время игры клавиша "пробел" сбрасывает фигуру на дно стакана. А "Табуляция" принудительно смещает фигуру на одну строчку ниже. Удобно, чтобы подоткнуть образовавшиеся с боков дыры.
ТАБЛИЦА РЕКОРДОВ
Программа сохраняет таблицу рекордов с именами игроков в файле "c:\dos\tetris.rel" на диске "С:", если такого файла в текущий момент нет, то он создаётся. Если нет каталога DOS, то он тоже создаётся. Если вообще нет диска "С:" ? Тогда выходите из игры по "Esc", когда на экране выдается сообщение "Конец". Результаты записаны не будут.
ОЧКИ
За каждую уложенную фигуру начисляется 40 очков. За каждую сокращенную строку -- 130 очков.
Размер стакана 13 х 20 (верхние строки можно не считать, поскольку там играть практически не возможно). Следовательно, один "стакан" это :
13 * 20 = 260 клеток
260 / 4 = 65 фигур
За каждую фигуру 40 очков, за каждую строчку 130, итого заполнив и сократив один "стакан" вы получите -- 2600 очков за заполнение и 2600 очков за сокращение = 5200 очков.
По-простому, за каждую заполненную клетку 10 очков, плюс еще 10 очков за нее же, когда она сократится.
Если вы, как "супермен", будете сокращать строки со скоростью 1 штука в секунду, то и в этом случае, чтобы достичь миллиона привычным порядком вам понадобится 3 846 секунд, что составит чуть больше часа. Если же ваша скорость не "суперменская", например 1 строка в 10 секунд (что гораздо ближе к реальности), то для достижения ПОБЕДЫ вам понадобиться более 10 часов. А это уже проблематично. Я думаю, что очень немногие, будут способны добраться до конца игры, игнорируя все нововведения. Хотя играть без "карманов" и "призов" по старому вам ни что не мешает. Только вот выиграть так будет очень и очень трудно.
ВЫИГРЫШНАЯ СТРАТЕГИЯ
Для тех, кто не желает вникать в тонкости расчетов и пользоваться "карманами", но не откажется от приза от 10 000 и выше, нужно стараться оставить в "стакане" как можно меньше заполненных клеток, и при этом сократить, как можно больше строк. Тогда согласно ПРИЛОЖЕНИЯ А вы получите приз. Если вы будете играть на нулевом (самом простом начальном уровне), то вам потребуется около 100 призов по 10 000 каждый. Если же вы уйдете на уровни выше, то сумма приза увеличится (но увеличится и жесткость условия для его достижения) и вы доберетесь до конца быстрее.
Однако, после получения каждого приза, условия ужесточаются и заработать приз становится все труднее и труднее. Например, получив 10-тый приз на нулевом уровне, заработав на одних призах 100 000 очков, 11-тый приз на том же нулевом уровне вы получите уже при условии только полной пустоты в "стакане" и хотя бы 11 сокращенных строках.
Не понятно только, если вы способны на это, то почему вы не ушли на 10 уровень и не постарались заработать на одном призе 110 000 очков сразу? Перекрыв, таким образом, 11 призов начального уровня! Да. Скорость на 10 уровне выше. Но не настолько, чтобы невозможно было играть...
Для тех, кто знает, что на клавиатуре есть другие клавиши, кроме стрелок и даже способен нажимать их не как попало, нужно все же вспомнить про "карманы" и постараться укладывать в "стакан" не что Бог пошлёт, а выбирая из "карманов" нужные себе фигурки. Правда, для этого в "карманы" нужно сначала эти фигурки положить. Об этом читай выше в разделе про "карманы".
Наконец, для тех, кто предпочитает один раз подумать, а после в четко заданной последовательности выполнить намеченное и заработать на этом огромный куш, нужно отыскать на клавиатуре клавишу "Pause". Нажимая её, вы приостановите на любой срок "сборочный цех своего стакана" и продолжите в любой момент, найдя нужное вам решение для имеющегося в "карманах" запаса фигур!
Вот тут вам и понадобятся простые рассуждения, приведенные мною ниже.
Во-первых, очевидно, что каждая фигурка добавляет в "стакан" по четыре клетки за раз. С другой стороны, также очевидно, что каждая сокращенная строка уносит с собой 13 клеток.
Получаем две последовательности чисел:
4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60, 64 ...
и
13, 26, 39, 52, 65, 78, 91, 104, 117 ...
Несложно заметить, что эти две последовательности пересекаются первый раз на числе 52. Это говорит о том, что ПУСТЫМ "стакан" можно оставить только в том случае, если число сокращенных уже строк будет равно 4. Второй раз эти последовательности совпадут на числе 104. Значит, число сокращенных строк будет равно 8 ... и т.д. -- см.числа из первой последовательности.
Таким образом, достичь пустоты в стакане (самого жесткого условия получения приза) можно лишь, когда число сокращённых строк кратно 4.
В этот момент находим клавишу "Pause", останавливаем производство нашего "сборочного цеха" и решаем задачу аналогичную головоломке с названием "Пентамино". То есть, из содержимого карманов составляем мысленно (или на бумажке) план сборки, чтобы в итоге сократить все строки и ни оставить в "стакане" ни каких лишних "запчастей".
После этого снова "пускаем свой конвейер" нажатием любой клавиши и воплощаем в реальном масштабе времени свой замысел. И получаем пустой "стакан" и заслуженный приз.
Заметьте, что при большом количестве заранее сокращенных строк (перед решением задачи "очистить стакан"), условие получения приза выполняется для уровней уходящих далеко вверх! Так при 100 сокращенных строках и пустом "стакане" вы можете рассчитывать на приз аж до 99 уровня включительно (при условии, что ваш приз первый), а это сразу 990 000 одним махом !!!
Вспомните теперь, что уровень вы выбираете сами! Да. Стрелкой вверх! Теперь, когда последняя запланированная вами фигурка падает на дно стакана, что мешает вам увеличивать по ходу игры свой уровень и тем самым переходить от маленьких призов к большим?! -- Ничего!
А если вы сумеете набрать чуть меньше миллиона (чтобы игра продолжилась около критической отметки), то следующий крупный куш, превзошедший по сумме миллион, весь останется ваш. И таким образом вы сможете набрать еще больше очков и удивить всех своим рекордом!
Победы вам. Ура!
ПРИЛОЖЕНИЕ А:
УСЛОВИЯ ПОЛУЧЕНИЯ ПРИЗОВ
Для тех, кто умеет считать, формулы очень простые:
Остаток = 10 - Уровень - Призы
Строки = Уровень + Призы + 1
Размер приза = (Уровень + 1) * 10 000
Не забывайте, что условия получения приза -- два, и перед полным сокращением "стакана" нужно ещё сократить строки.
ПРИЛОЖЕНИЕ Б:
Чтобы взять Тетрис с этой странички, нужно применить хитрость. Картинку в формате GIF сохранить из своего браузера. А потом открыть её в графическом редакторе и сохранить в формате BMP. Не следует «укорачивать путь» и сохранять в формате BMP сразу из браузера. Это как раз тот случай, когда «тише едешь, дальше будешь». И не пользуйтесь для этого встроенным в Виндоус редактором Microsoft Paint . Моя версия 5.1 упрямо «корёжит» файлы при сохранении в GIF-формате. При обратном преобразовании в BMP-формат получается лишь «видимое сходство». А на самом деле совсем не то, что было изначально. Камень в огород Билла: «Тщательнее надо! Общим видом овладели, теперь подробности не надо пропускать…» Впрочем, справедливости ради стоит отметить, что в другом графическом редакторе той же фирмы, а именно Microsoft Photo Editor версии 3.0.2.3 – всё проходит нормально. Что прямое преобразование, что обратное: в результате получаешь ровно то же самое, что подавал на вход, вплоть до байта.
Теперь диктую по шагам.
1. Создайте пустую папку. Сохраните в неё картинку с этой странички в файл с именем POKETS.GIF , затем откройте «в правильном» графическом редакторе и сохраните в формате BMP . Параметры цветности не меняйте, они должны быть, как и в формате GIF -- 256 цветов. У вас получится файл POKETS.BMP .
2. В этой же папке создайте в Блокноте два простых текстовых файла: POKETS.BAT и TEMP.TMP . Содержимое файлов смотри ниже внутри блоков, ограниченных горизонтальными линиями. Сами линии в содержимое не входят.
Содержимое файла POKETS.BAT
--------------------------
@ECHO OFF
DEBUG POKETS.BMP <TEMP.TMP
REN POKETS.BMP POKETS.EXE
--------------------------
Содержимое файла TEMP.TMP
--------------------------
RCX
9FAA
W 540
Q
--------------------------
3. Запустите на исполнение POKETS.BAT .
В результате вместо файла POKETS.BMP у вас появится POKETS.EXE , длинной в 40874 байта. Это и есть "Тетрис с призами и карманАми". Никакой установки он не требует. Никаких дополнительных файлов для своей работы тоже. Для контроля приведу CRC32 полученную при архивировании файла WinRAR-ом 3.41 = 2EE04B4A .
P.S. Прошу считать Описание новой версии Тетриса «ТЕХНИЧЕСКИМ ЗАДАНИЕМ», а программу POKETS.EXE , написанную для DOS-окна -- макетом. Если кто реализует данную версию для Windows раньше меня, просьба указать меня в качестве Автора идеи и не забыть поделиться со мной своими плюшками.
Всего доброго.
10:18:43 08.01.2010
Свидетельство о публикации №210010801121