Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #64, АПРЕЛЬ 2004 г.

Рубрика X-Puzzle

Иван Скляров

Xakep, номер #064, стр. 064-158-1


(Sklyarov@real.xakep.ru)

«ПРОЙДИСЬ ДЕБАГГЕРОМ ПО СВОИМ МОЗГАМ!»

Не стесняйся присылать мне свои ответы, даже если ты смог ответить всего на один пазл, я с интересом почитаю твои оригинальные решения. Ну, а имена героев, которые первыми правильно ответят на все вопросы, конечно же, будут опубликованы в журнале, чем прославятся на всю Россию (и не только) и навечно войдут в историю Х. Приз за нами не заржавеет ;).

Но помни: в большинстве случаев вариант ответа засчитывается как правильный, только если к нему приложено подробное и ВЕРНОЕ объяснение, почему выбран именно этот вариант, а не какой-либо другой.

Судя по ответам, в прошлом выпуске X-Puzzle самым сложным оказался пазл под названием «Для самых маленьких» :). Выросли, что ли, все? ;) Мало кто вспомнил логотип старых версий XSpider’а, а в изображении глаза почему-то многие увидели программу ACDSee %). В условии задачи ведь было сказано назвать ХАКЕРСКИЕ проги, а не утилиты для сексуально озабоченных, впрочем, одно другому не мешает, наверное :).

Итак, первый приз забирает некто Димон (diman_mail@mtu-net.ru). Он не только один из первых прислал свои ответы, но и полнее и правильнее всех ответил.

Второй приз уходит к SparkLone (sparklone@mail.ru). SparkLone пишет: «живите счастливо, не пинайте ламеров... их отстреливать надо». Нет, я не дам отстреливать дорогих ламеров, я их обожаю и признаюсь честно, даже люблю. Ламеры — это очень милые, добрые и пушистые существа, они всегда так невинно улыбаются, а когда им начинаешь чесать животик, они падают на спину, поднимают лапки кверху и довольно урчат. Я уже не представляю себе жизни без ламеров.

Последний приз с болью в сердце должен отдать человеку из трех букв: ifs (ifs@inbox.ru).

Многие из тех, кто отгадал пазл «Как же это расшифровывается?» упрекали меня за то, что нехорошо, мол, не уметь печатать слепым методом. А кто сказал, что я не умею? Умею, честно, даже зуб могу дать! [ушел к соседу за зубом]

Кто меньше?

Ниже приведены несколько примеров программ, которые выводят точные копии самих себя (подробности смотри в январском выпуске X-Puzzle).

Хорошее решение в 142 символа прислал Олег Владимирович (olegmaster@mail.ru) по номинации Pascal/Delphi:

var s:string;begin s:='var s:string;begin

s:=;write(copy(s,1,22),#39,s,#39,copy(s,23,49))end.';write(copy(s,1,22),#39,s,#39,copy(s,23,49))end.

Прога должна быть записана в одну строку, например в файл self.pas. Для компиляции в Delphi7 можно использовать такую командную строку: dcc32 -CC self.pas.

А это типичное решение для Perl в 27 символов, присланное Алексеем (yoman@nm.ru):

open(h,'a.pl');print@m=<h>;

Компилить: perl a.pl

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

И для разнообразия еще одно решение на PHP, присланное Александром Барычевым (ab@cmg.ru):

<?readfile(trim(strtr($PHP_SELF,"/"," ")))?>

Программа выводит сама себя благодаря переменной окружения $PHP_SELF (в ней находится путь скрипта). Чтобы увидеть работу программы, достаточно открыть ее урл в браузере.

Содержание  Вперед на стр. 064-158-2
<<< НАЗАД ||| ГЛАВНАЯ