29.07.2009
СОКОБАН
МЕНЮ
Начало
Головоломка Эйнштейна


Любопытная головоломка

"Einstein - это логическая головоломка написанная по мотивам старой досовской игры Sherlock, которая в свою очередь была написана по мотивам задачи Эйнштейна. Эйнштейн утверждал что только 2% людей обладают интеллектом достаточным для ее решения. Цель игры - узнать расположение всех фишек, пользуясь подсказками и логикой.

Текущей версией является Einstein 2.0. В этой версии добавлена поддержка звука, сделана интернационализация, переделана система работы с ресурсами для возможности добавления пользовательской графики, правила игры теперь можно посмотреть прямо из программы."

(С сайта Flowix, на котором можно найти Einstein 2.0)



"Классная игрушка, пол года на работе в нее игрался. Всем советую."

(Из интернетовских форумов)


Где-то в ноябре 2007 мне случайно попалась эта игрушка (Einstein 2.0). Она, действительно, оказалась очень прилипчивой. Вряд ли можно серьезно относиться к "утверждению Эйнштейна" - конечно, простейшие логические умозаключения при решении приходится делать, но ... набор таких умозаключений не так уж и велик. Игра требует внимательности, особенно ее компьютерная реализация, где неосторожное нажатие на кнопку мыши сразу ведет к проигрышу.

Поиграв в Einstein 2.0, быстро обнаруживаешь, что не все исходные позиции равноценны - некоторые очень просты, а некоторые заставляют надолго задуматься. В своей реализации игры я предлагаю один из вариантов решения этой проблемы.

Дополнительно введена возможность использования своих собственных позиций. Для этого набор правил задается в виде текстового файла для не перемешанной позиции:

   A0 A1 A2 A3 A4 A5 
   B0 B1 B2 B3 B4 B5
   C0 C1 C2 C3 C4 C5
   D0 D1 D2 D3 D4 D5
   E0 E1 E2 E3 E4 E5
   F0 F1 F2 F3 F4 F5
Формат правил прозрачен - достаточно посмотреть файлы с расширением .EIN
После перемешивания получаем большой набор, в общем, равноценных позиций. Дополнительно перемешиваются и правила. В конце текстового файла после слова ein записаны зашифрованные данные по лучшим 10 результатам игры. Достаточно оставить только часть до слова ein, чтобы обнулить таблицу результатов.

В версии 1.0 оставлены лазейки для "обмана", но это "фича", а не "баг".

В подсказке к игре нет информации об еще одной возможности использования программы. Нажатие на CTRL+V приводит к удалению лишних правил (кроме открытых ячеек), если таковые имеются - эту возможность можно использовать при "ручном" создании набора правил. Но при этом нужно помнить, что количество "горизонтальных" правил не должно превышать 24, а количество "вертикальных" - 19.

Сделаю еще одно замечание. Программа написана без использования исходных текстов программы Einstein 2.0, хотя эти тексты у меня имеются. Из ресурсов программы Einstein 2.0 я воспользовался только звуком бьющегося стекла. Я не знаю алгоритма получения правил игры Einstein 2.0, хотя, если я не ошибаюсь, в этой программе использована случайная генерация правил с последующим удалением лишних. В моей программе также идет случайная генерация правил, но вряд ли она совпадает с генерацией Einstein 2.0. Достаточно прозрачная структура файлов *.SAV позволила читать правила из этих файлов, что и включено в мою игру.

В целом, хочу выразить свою благодарность создателю игры Einstein 2.0.

ВНИМАНИЕ, версия 1.01

В версии 1.0 была обнаружена досадная ошибка, которая иногда приводила к неправильному чтению данных из файла *.ein. На чтении позиции эта ошибка не сказывалась, нарушалась таблица Top10 с лучшими результатам. В версии 1.01 эта ошибка исправлена (надеюсь :-)).

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

Сайт управляется системой uCoz