Пасьянс «Солитер»
Солитер (также — «Свободная ячейка») — наш третий пасьянс.
Ваша задача в игре — разложить карты в последовательности от туза до короля. Пасьянс удачно сочетает высокую сложность (намного сложнее «Косынки»), полную информацию и мизерный процент комбинаций, которые невозможно сложить. Пасьянс рекомендуется раскладывать онлайн в перерывах между работой, а также играть бесплатно в Солитера дома.
О «Солитере» говорит Пол Алфилл

Пол Алфилл написал оригинальную версию "Свободной ячейки". Он работал в "PLATO computer system" в Университете Иллинойса в середине 70-ых годов. Все последующие версии игры, включая версию Microsoft, обязаны своим существованием его оригинальной версии. Все, что Вы видите в нашей онлайн версии "Солитера", было когда-то реализовано на старых компьютерах, которые были намного менее мощными, чем те, что мы имеем сегодня. Приводим часть телефонного интервью с отцом и основателем этого пасьянса.

Давайте поговорим об игре «Солитер». Когда это все началось?
Я помню как ребенком, читал о некоторых пасьянсах и одной из этих игр была игра, которая была подобно шахматам. В ней Вы могли видеть все карты сразу. Это была игра, основанная на стратегии, а не на удаче, которую обычно Вы имеете с нераскрытыми картами, как например при игре в пасьянсе Паук.
Я возился с этой игрой довольно много, когда был маленький и я играл ее картами. Мне всегда не нравилось после того, как пасьянс сходился перемешивать карты. Перетасовка колоды меня всегда сильно утомляла.

Так эта была игра-прародитель «Солитера»?
Ну нет, это был, конечно, Солитер. Очевидно, что перед тем, как кто-то напишет игру на компьютере кто-то где-то изначально сыграет в неё настоящими картами.

Многие источники говорят о старых книгах, в которых был упомянут пасьянс "Свободная ячейка", но все же ключевую роль отводят именно Вам.
Скорее всего, это верно. Как называется эти книги, о которых они говорят? Я бы очень хотел узнать названия этих книг, в которых кто-то видел "Свободную ячейку" :). Я уверен, что это название придумал именно я.

Я, вероятно, читал одну их этих книг ребенком, а затем по памяти играл в карты. Но когда у меня появилась возможность в Университете Иллинойса программировать, я фактически написал сам эту игру на компьютере. Это было, конечно, не для широкого круга, а просто для моего собственного удобства, чтобы я мог играть в Солитера и не перемешивать карты после игры.

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

Что интересно, так это то, что для стандартная игра 8x4, которую имеет Microsoft, почти всегда сходится. Но если Вы положите игры определенным образом, то пасьянс не сойдется. Можете поместить карты на столе от туза до двойки - и этот вариант точно не сойдется.

Возвращаясь к Вашей оригинальной версии...
Ну, когда я его программировал, ограничение было действительно серьезное - экран. PLATO имел 512x512 пикселей, поэтому все на экране было максимально консервативно. Четыре колонки с десятью клетками - все что показывалось на экране, но и этого было достаточно, чтобы пасьянс сходился и Вы побеждали.

Так другой ключевой компонент игры является понятием "полоса побед" и это было важным элементом игры, которую Вы определенно добавили с помощью компьютера.
Это было легко сделать. Я не мог сохранять процентное соотношение побед и поражений в раздачах, но я мог считать количество побед подряд. Это сделало, можно сказать, онлайн "Солитер" очень состязательным и захватывающим.
Да, фактор "Полоса побед" имел огромный успех и был одним из реальных захватывающих факторов игры
У меня было преимущество, ведь я все мог видеть на центральном компьютере. Таким образом, Вы не могли обмануть меня так легко. Это все еще было сделано для того, чтобы смотреть, не завис ли компьютер во время игры, не случилось ли там что-нибудь, не зависла ли программа.

Говорят, там были монстры по "Полосам побед", которые набирали 1000 и более побед в подряд. Но также говорят, что это были хакеры, которые могли взламывать вашу игру
Один из них Гари Джонсон. Насколько я знаю, он был студентом-физиком в другом учреждении, таким образом, он не был у меня в поле зрения, хотя я не думаю что он мог взломать игру.

Теперь, кажется очевидным, что есть люди, которые очень хороши в игре "Солитер".
Я думал, что оставил достаточно бит для "Полосы побед" (приблизительно 4000 побед). Хотя теперь мне очевидно, что я не знаю, чтобы произошло после достижения такого результата.

Давайте поговорим о внедрении "Солитера". Как он был написан?
Это было написано на процедурном языке TUTOR, действительно сделанном на простых инструкциях. У него не было локальных переменных, все переменные были глобальными. И всего Вы могли использовать 64 переменные. Но эти переменные можно было дробить на более мелкие биты и получать большее количество переменных.
У этого языка не было рекурсивных вызовов процедур, поэтому мне приходилось писать игру в одной большой петле. Другой особенностью, которая была утомительна для меня - это сбор всех карт в конце игры, когда Ваши шаги становятся очевидными. Когда на столе уже все карты открыты и отсортированы. Я решал эту проблему таким образом: я всегда просчитывал один шаг вперед. Кстати, это помогало сказать игроку, когда у него не было ни одного хода и пасьянс "Солитер", очевидно, не сходился.


Вы помните пиковое время, сколько людей играли в игру одновременно?
О, да, я помню такие моменты. Но точно сказать не могу, может 100 или 150 человек одновременно играли. Они тратили машинное время на развлечения, но только то машинное время, которое не использовалось.


Вы писали все это сами или Вам помогали студенты?
Я сам был студентом-медиком :)


А я думал, что Вы были преподавателем информатики или что-то такое.
Нет, нет, нет, я - анестезиолог в больнице общего профиля Массачусетса и я тогда был студентом-медиком. Но я изучал программирование, чтобы помочь платить за колледж, и таким образом, я делал это в течение многих лет. Я был знаком с тем, как программировать. И эта игра была написана вместо изучения медицины.

Насколько большой была программа? Сколько дискового пространства это использовало?
В те дни ЭВМ ограничивали количество дискового пространства. Также использовался большой формат слов - 60 бит было слово. Я обычно использовал разбивал их на на 6 битов каждый, чтобы в эти 6 бит помещалось число от 0 до 63. Этого хватало, чтобы вписать в них всю колоду.
Целая программа вписывалась в три блока, которые были каждый по 320 слов (2400 современных 8-битных байтов). Таким образом, это было около 6Kb.

Весь пасьянс "Солитер" помещался в 6 килобайт? Круто. А Вы все еще играете в него?
Я должен сказать, что каждый раз, когда я возвращаюсь к игре, то провожу за ней довольно много времени. Потом делаю перерывы, иногда месяцами, но затем наслаждаюсь им снова. Я все еще помню, почему я так хотел в него играть! Это вам не Косынка.


Да, много людей во всем мире очень благодарно из него. Спасибо.