Свободная ячейка

Поделись знанием:
(перенаправлено с «Солитер (пасьянс)»)
Перейти к: навигация, поиск

«Свободная ячейка»[1] (англ. FreeCell) — карточный пасьянс. Поскольку пасьянс относительно новый и известен исключительно по компьютерным реализациям, устоявшегося русского названия нет. В Windows XP игра некорректно названа «Солите́р» (этот пасьянс отличается от «Свободной ячейки» одним правилом).[2]

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





Правила

  • Используется стандартная колода карт (52 карты).
  • Раскладывается вся колода в 8 колонок, лицом вверх. Таким образом, будет четыре колонки по 7 карт и ещё четыре — по 6.
  • Также есть 4 ячейки, именуемых «домом», и 4 «свободных» ячейки. На момент начала игры все они пусты.
  • Разрешено перекладывать одну карту из колонки или свободной ячейки:
    • в любую другую колонку — на следующую по старшинству карту другого цвета (например, чёрного валета — только на красную даму).
    • либо на свободную ячейку, если она пуста (таким образом, каждая из свободных ячеек может хранить только одну карту);
    • либо в пустую колонку — без ограничений;
    • либо в «дом» — карты одной масти, начиная с туза и заканчивая королём.
  • Пасьянс сходится, если удаётся переместить всю колоду в «дом».

Если нужно перенести стопку карт, это можно сделать только по одной, используя пустые колонки и свободные ячейки. Имея n свободных ячеек и m пустых колонок, можно перенести в другое место <math>(n+1) \cdot 2^m</math> сложенных по порядку карт,[3][4] такие комбинации называются «суперходы» (англ. supermoves). Компьютерные версии обычно показывают суперход во всех деталях; играющие с настоящей колодой просто переносят стопку, убедившись, что карты действительно сложены по порядку, а пустых ячеек достаточно.

Варианты правил

Марсель

Используется одна колода в 52 карты, как и в стандартных правилах.

Карты раскладываются картинкой вверх в 7 столбцов по 7 карт. Оставшиеся три карты кладутся в низ любых столбцов (одного или нескольких) по выбору раскладывающего.

Свободных ячеек можно использовать только три (а не четыре, как в стандартных правилах).

Упорядоченную серию карт (в нисходящем порядке, с чередованием цветов) можно перемещать целиком, независимо от количества свободных ячеек и пустых столбцов.

Цель игры та же, что в стандартных правилах: собрать карты в масть на тузах в базовом ряду.

Солитер

Игра отличается от «Свободной ячейки» одним правилом: карты в колонках выкладываются по масти, по одной за ход. Например, В♡ — только на Д♡.[2]

Солитер намного сложнее «Свободной ячейки», высок процент неразрешимых комбинаций, поэтому есть и упрощённые варианты.

Солитер 6×6

Вариант пасьянса для колоды в 36 карт.[5]

Колода раскладывается в 6 столбцов по 6 карт. Используются три свободных ячейки. Правила аналогичны стандартным для «Солитера»: карты в столбцах можно перекладывать в нисходящем порядке по масти, по одной за ход (например, трефовую десятку можно положить на трефового валета). Цель пасьянса — собрать карты на базовые тузы в восходящем порядке (6, 7, 8, 9, 10, В, Д, К). Существует вариант со сбором карт на базовые в нисходящем порядке (К, Д, В, 10, 9, 8, 7, 6).

Солитер с одной и двумя мастями

В этом варианте пасьянса используется половина стандартной колоды в 52 карты[6]. Из неё выбирают какие-нибудь две масти (26 карт). Их раскладывают в 6 столбцов: четыре столбца по 4 карты и два по 5 карт.

Используются две свободные ячейки. В базовом ряду, естественно, есть только два места для тузов.

Перекладывать карты между столбцами можно по масти в нисходящем порядке, по одной. В базовый ряд собираются карты по масти в восходящем порядке.

Существует также вариант пасьянса с одной мастью (13 карт). Их раскладывают в 5 столбцов (три по 3 карты и два по 2 карты). Используется одна свободная ячейка и одно базовое место для единственного туза.

Этот вариант пасьянса при правильной игре сходится всегда. Один из наиболее трудных раскладов — упорядоченная в восходящем порядке колода (1-й горизонтальный ряд — Т, 2, 3, 4, 5; 2-й — 6, 7, 8, 9, 10; 3-й — В, Д, К). Эта задача решается за 23 хода[7].

История

Предтечами «Свободной ячейки» можно считать пасьянсы «Восьмёрка» и «Сорок разбойников» (он же «Наполеон на острове святой Елены»).[8] В 1968 году М. Гарднер опубликовал пасьянс под авторством некоего Бейкера, однако в нём карты складывались по масти. Журнал «Наука и жизнь» мгновенно перепечатал пасьянс,[2] окрестив его «Солитером», периодически предлагал решить головоломные расклады.

Изобретатель «Свободной ячейки» Пол Олфилл (Paul Alfille), будучи ещё ребёнком, жаловался, что большинство пасьянсов оставляли колоду отсортированной по масти; чтобы начать новую игру, требовалось долгая и тщательная перетасовка. Установив правило «чёрный-красный», Олфилл улучшил состояние колоды (даже если пасьянс решён, позиция становится очевидной задолго до того, как будут сложены все карты, и часть колоды складывается по масти, а часть — поочерёдно).[9] Игра оказалась довольно сложной, но неразрешимые комбинации практически не выпадали.

Впоследствии, в 1978 году, Олфилл реализовал свою игру в рамках системы программированного обучения PLATO на языке программирования TUTOR. Благодаря высокому (по тем временам) разрешению PLATO — 512×512 — удалось нарисовать разборчивые изображения мастей, несмотря на монохромный монитор.

В дальнейшем Джим Хорн (Jim Horne) реализовал «Свободную ячейку» для DOS (в текстовом виде), в 1992 — для Windows.[8][10] Неизвестно, где Хорн узнал о «Свободной ячейке» — вероятно, будучи студентом, имел дело с PLATO. Компания Microsoft включила игру в пакет Microsoft Entertainment Pack, позднее — в Win32s. Впрочем, «Свободная ячейка» оставалась малоизвестной, пока не оказалась в стандартной поставке Windows 95. В дальнейшем игру включали во все версии Windows вплоть до Seven. Из Windows 8 игру выбросили; она (вместе с четырьмя другими пасьянсами) доступна из магазина программ.

Только после появления Microsoft FreeCell изобретение Олфилла стали включать в книги о карточных играх.[8]

Реализации

Microsoft

Солитер
Компонент Windows
Тип

Игра

Поставляется с

957

Состояние поддержки

Поддерживается

Связанные компоненты

Косынка, Паук

Реализация Джима Хорна, опубликованная под именем Microsoft FreeCell, считается классической. Сторонние разработчики обычно делают в своих программах генератор раскладов, совместимый с нумерацией Microsoft.[8][11]

Теоретическое количество раскладов в пасьянсе — 52! или 8,06·1067. Если расклады с переставленными колонками и переименованными мастями считать одинаковыми, то число раскладов будет равно 1,75·1064. В MS FreeCell представлено лишь 32000 раскладов, генерирующихся 15-битным датчиком псевдослучайных чисел; встроенная справка заявляла:

Считается (хотя и не доказано), что данный пасьянс сходится при любом раскладе.

В общем случае это неверно: в качестве «пасхального яйца» в игре можно задать явно неразрешимые расклады −1 и −2. Чтобы проверить 32000 раскладов Microsoft, в интернете появился краудсорсинг-проект, проверяющий, действительно ли все расклады разрешимы. В проекте были задействованы более чем 100 заядлых картёжников; к 1995 году только расклад № 11982 не поддался ни одному участнику. Несмотря на то, что задача NP-полна по количеству карт[12], к середине 2000-х годов удалось реализовать достаточно быстрый полный перебор и показать, что для этого расклада решения действительно нет.

В Windows XP количество раскладов увеличено до 1 миллиона, первые 32000 раскладов были теми же. Помимо расклада 11982, решение не существует для раскладов 146692, 186216, 455889, 495505, 512118, 517776 и 781948.

В версии Microsoft суперходы реализованы, но не полностью: если колонок больше одной или нет свободных ячеек, программа может и не заметить суперход.[8] Например, имея одну пустую ячейку и две колонки, можно перенести восемь карт;[13] MS FreeCell перенесёт только четыре.

Существует способ быстрого выигрыша: нажимаем одновременно клавиши Shift+Ctrl+F10, в полученном окне выбираем: «Прервать» — выиграть, «Повтор» — проиграть, «Пропустить» — отмена.

Другие виды

  • Aisleriot — набор пасьянсов.
  • KPat — набор пасьянсов в составе KDE Games.

Вероятность победы

По современным данным, вероятность выпадения разрешимой комбинации оценивается более чем в 99,99 % — одна неразрешимая комбинация на 78 000 разрешимых. Без свободных ячеек сходится всего 0,2 % раскладов. Чтобы любой расклад гарантированно сошёлся, нужно не менее семи свободных ячеек.[8]

Если упростить правила и разрешить перемещать упорядоченную стопку целиком, не используя свободных ячеек, разрешимы все 1 млн раскладов Microsoft — но потенциально неразрешимые также остались.[8] Поскольку шансы на плохой расклад и без этого крайне малы, такое упрощение считается сомнительным.

См. также

Напишите отзыв о статье "Свободная ячейка"

Примечания

  1. Название в Windows 95
  2. 1 2 3 Мартин Гарднер [publ.lib.ru/ARCHIVES/N/%27%27Nauka_i_jizn%27%27%27/_%27%27Nauka_i_jizn%27%27%27_1968_.html#6811 Комбинаторные задачи] // Наука и жизнь : журнал / Перевод Б. Колтового. — 1968. — № 11. — С. 114.
  3. Доказательство. База индукции: без колонок, на одних ячейках можно перенести n+1 карту. Шаг индукции: переносим (n+1)·2m карт на (m+1)-ю колонку, используя оставшиеся m колонок и ячейки; затем ещё (n+1)·2m в конечную позицию; наконец, содержимое (m+1)-й колонки в конечную позицию.
  4. [www.solitairecentral.com/articles/FreecellPowerMovesExplained.html Freecell PowerMoves Explained]
  5. [publ.lib.ru/ARCHIVES/N/%27%27Nauka_i_jizn%27%27%27/_%27%27Nauka_i_jizn%27%27%27_1976_.html#7611 «Наука и жизнь», 1976, № 11, с. 101.]
  6. [publ.lib.ru/ARCHIVES/N/%27%27Nauka_i_jizn%27%27%27/_%27%27Nauka_i_jizn%27%27%27_1978_.html#7802 «Наука и жизнь», 1978, № 2, с. 97.]
  7. [publ.lib.ru/ARCHIVES/N/%27%27Nauka_i_jizn%27%27%27/_%27%27Nauka_i_jizn%27%27%27_1978_.html#7807 «Наука и жизнь», 1978, № 7, с. 143.]
  8. 1 2 3 4 5 6 7 [www.solitairelaboratory.com/fcfaq.html FreeCell FAQ] (англ.)
  9. [www.freecell.net/f/c/alfille.html Interview with Paul Alfille] (англ.)
  10. Microsoft FreeCell, «О программе»
  11. [www.solitairelaboratory.com/mshuffle.txt Джим Хорн. Алгоритм перетасовки карт Microsoft] (англ.)
  12. [www.informatik.uni-freiburg.de/~ki/papers/helmert-aij03.ps.gz Malte Helmert, Complexity results for standard benchmark domains in planning, Artificial Intelligence Journal 143(2):219-262, 2003]; в файле с. 44—49 (англ.)
  13. Свободна 1 ячейка и 2 колонки, однако переместить цепочку из 8 карт не получается, см. видео: www.youtube.com/watch?v=ZfZN5RRW9aM.

Отрывок, характеризующий Свободная ячейка

Была ростепель, грязь, холод, реки взломало, дороги сделались непроездны; по нескольку дней не выдавали ни лошадям ни людям провианта. Так как подвоз сделался невозможен, то люди рассыпались по заброшенным пустынным деревням отыскивать картофель, но уже и того находили мало. Всё было съедено, и все жители разбежались; те, которые оставались, были хуже нищих, и отнимать у них уж было нечего, и даже мало – жалостливые солдаты часто вместо того, чтобы пользоваться от них, отдавали им свое последнее.
Павлоградский полк в делах потерял только двух раненых; но от голоду и болезней потерял почти половину людей. В госпиталях умирали так верно, что солдаты, больные лихорадкой и опухолью, происходившими от дурной пищи, предпочитали нести службу, через силу волоча ноги во фронте, чем отправляться в больницы. С открытием весны солдаты стали находить показывавшееся из земли растение, похожее на спаржу, которое они называли почему то машкин сладкий корень, и рассыпались по лугам и полям, отыскивая этот машкин сладкий корень (который был очень горек), саблями выкапывали его и ели, несмотря на приказания не есть этого вредного растения.
Весною между солдатами открылась новая болезнь, опухоль рук, ног и лица, причину которой медики полагали в употреблении этого корня. Но несмотря на запрещение, павлоградские солдаты эскадрона Денисова ели преимущественно машкин сладкий корень, потому что уже вторую неделю растягивали последние сухари, выдавали только по полфунта на человека, а картофель в последнюю посылку привезли мерзлый и проросший. Лошади питались тоже вторую неделю соломенными крышами с домов, были безобразно худы и покрыты еще зимнею, клоками сбившеюся шерстью.
Несмотря на такое бедствие, солдаты и офицеры жили точно так же, как и всегда; так же и теперь, хотя и с бледными и опухлыми лицами и в оборванных мундирах, гусары строились к расчетам, ходили на уборку, чистили лошадей, амуницию, таскали вместо корма солому с крыш и ходили обедать к котлам, от которых вставали голодные, подшучивая над своею гадкой пищей и своим голодом. Также как и всегда, в свободное от службы время солдаты жгли костры, парились голые у огней, курили, отбирали и пекли проросший, прелый картофель и рассказывали и слушали рассказы или о Потемкинских и Суворовских походах, или сказки об Алеше пройдохе, и о поповом батраке Миколке.
Офицеры так же, как и обыкновенно, жили по двое, по трое, в раскрытых полуразоренных домах. Старшие заботились о приобретении соломы и картофеля, вообще о средствах пропитания людей, младшие занимались, как всегда, кто картами (денег было много, хотя провианта и не было), кто невинными играми – в свайку и городки. Об общем ходе дел говорили мало, частью оттого, что ничего положительного не знали, частью оттого, что смутно чувствовали, что общее дело войны шло плохо.
Ростов жил, попрежнему, с Денисовым, и дружеская связь их, со времени их отпуска, стала еще теснее. Денисов никогда не говорил про домашних Ростова, но по нежной дружбе, которую командир оказывал своему офицеру, Ростов чувствовал, что несчастная любовь старого гусара к Наташе участвовала в этом усилении дружбы. Денисов видимо старался как можно реже подвергать Ростова опасностям, берег его и после дела особенно радостно встречал его целым и невредимым. На одной из своих командировок Ростов нашел в заброшенной разоренной деревне, куда он приехал за провиантом, семейство старика поляка и его дочери, с грудным ребенком. Они были раздеты, голодны, и не могли уйти, и не имели средств выехать. Ростов привез их в свою стоянку, поместил в своей квартире, и несколько недель, пока старик оправлялся, содержал их. Товарищ Ростова, разговорившись о женщинах, стал смеяться Ростову, говоря, что он всех хитрее, и что ему бы не грех познакомить товарищей с спасенной им хорошенькой полькой. Ростов принял шутку за оскорбление и, вспыхнув, наговорил офицеру таких неприятных вещей, что Денисов с трудом мог удержать обоих от дуэли. Когда офицер ушел и Денисов, сам не знавший отношений Ростова к польке, стал упрекать его за вспыльчивость, Ростов сказал ему:
– Как же ты хочешь… Она мне, как сестра, и я не могу тебе описать, как это обидно мне было… потому что… ну, оттого…
Денисов ударил его по плечу, и быстро стал ходить по комнате, не глядя на Ростова, что он делывал в минуты душевного волнения.
– Экая дуг'ацкая ваша пог'ода Г'остовская, – проговорил он, и Ростов заметил слезы на глазах Денисова.


В апреле месяце войска оживились известием о приезде государя к армии. Ростову не удалось попасть на смотр который делал государь в Бартенштейне: павлоградцы стояли на аванпостах, далеко впереди Бартенштейна.
Они стояли биваками. Денисов с Ростовым жили в вырытой для них солдатами землянке, покрытой сучьями и дерном. Землянка была устроена следующим, вошедшим тогда в моду, способом: прорывалась канава в полтора аршина ширины, два – глубины и три с половиной длины. С одного конца канавы делались ступеньки, и это был сход, крыльцо; сама канава была комната, в которой у счастливых, как у эскадронного командира, в дальней, противуположной ступеням стороне, лежала на кольях, доска – это был стол. С обеих сторон вдоль канавы была снята на аршин земля, и это были две кровати и диваны. Крыша устраивалась так, что в середине можно было стоять, а на кровати даже можно было сидеть, ежели подвинуться ближе к столу. У Денисова, жившего роскошно, потому что солдаты его эскадрона любили его, была еще доска в фронтоне крыши, и в этой доске было разбитое, но склеенное стекло. Когда было очень холодно, то к ступеням (в приемную, как называл Денисов эту часть балагана), приносили на железном загнутом листе жар из солдатских костров, и делалось так тепло, что офицеры, которых много всегда бывало у Денисова и Ростова, сидели в одних рубашках.
В апреле месяце Ростов был дежурным. В 8 м часу утра, вернувшись домой, после бессонной ночи, он велел принести жару, переменил измокшее от дождя белье, помолился Богу, напился чаю, согрелся, убрал в порядок вещи в своем уголке и на столе, и с обветрившимся, горевшим лицом, в одной рубашке, лег на спину, заложив руки под голову. Он приятно размышлял о том, что на днях должен выйти ему следующий чин за последнюю рекогносцировку, и ожидал куда то вышедшего Денисова. Ростову хотелось поговорить с ним.
За шалашом послышался перекатывающийся крик Денисова, очевидно разгорячившегося. Ростов подвинулся к окну посмотреть, с кем он имел дело, и увидал вахмистра Топчеенко.
– Я тебе пг'иказывал не пускать их жг'ать этот ког'ень, машкин какой то! – кричал Денисов. – Ведь я сам видел, Лазаг'чук с поля тащил.
– Я приказывал, ваше высокоблагородие, не слушают, – отвечал вахмистр.
Ростов опять лег на свою кровать и с удовольствием подумал: «пускай его теперь возится, хлопочет, я свое дело отделал и лежу – отлично!» Из за стенки он слышал, что, кроме вахмистра, еще говорил Лаврушка, этот бойкий плутоватый лакей Денисова. Лаврушка что то рассказывал о каких то подводах, сухарях и быках, которых он видел, ездивши за провизией.
За балаганом послышался опять удаляющийся крик Денисова и слова: «Седлай! Второй взвод!»
«Куда это собрались?» подумал Ростов.
Через пять минут Денисов вошел в балаган, влез с грязными ногами на кровать, сердито выкурил трубку, раскидал все свои вещи, надел нагайку и саблю и стал выходить из землянки. На вопрос Ростова, куда? он сердито и неопределенно отвечал, что есть дело.
– Суди меня там Бог и великий государь! – сказал Денисов, выходя; и Ростов услыхал, как за балаганом зашлепали по грязи ноги нескольких лошадей. Ростов не позаботился даже узнать, куда поехал Денисов. Угревшись в своем угле, он заснул и перед вечером только вышел из балагана. Денисов еще не возвращался. Вечер разгулялся; около соседней землянки два офицера с юнкером играли в свайку, с смехом засаживая редьки в рыхлую грязную землю. Ростов присоединился к ним. В середине игры офицеры увидали подъезжавшие к ним повозки: человек 15 гусар на худых лошадях следовали за ними. Повозки, конвоируемые гусарами, подъехали к коновязям, и толпа гусар окружила их.
– Ну вот Денисов всё тужил, – сказал Ростов, – вот и провиант прибыл.
– И то! – сказали офицеры. – То то радешеньки солдаты! – Немного позади гусар ехал Денисов, сопутствуемый двумя пехотными офицерами, с которыми он о чем то разговаривал. Ростов пошел к нему навстречу.
– Я вас предупреждаю, ротмистр, – говорил один из офицеров, худой, маленький ростом и видимо озлобленный.
– Ведь сказал, что не отдам, – отвечал Денисов.
– Вы будете отвечать, ротмистр, это буйство, – у своих транспорты отбивать! Наши два дня не ели.
– А мои две недели не ели, – отвечал Денисов.
– Это разбой, ответите, милостивый государь! – возвышая голос, повторил пехотный офицер.
– Да вы что ко мне пристали? А? – крикнул Денисов, вдруг разгорячась, – отвечать буду я, а не вы, а вы тут не жужжите, пока целы. Марш! – крикнул он на офицеров.
– Хорошо же! – не робея и не отъезжая, кричал маленький офицер, – разбойничать, так я вам…
– К чог'ту марш скорым шагом, пока цел. – И Денисов повернул лошадь к офицеру.
– Хорошо, хорошо, – проговорил офицер с угрозой, и, повернув лошадь, поехал прочь рысью, трясясь на седле.
– Собака на забог'е, живая собака на забог'е, – сказал Денисов ему вслед – высшую насмешку кавалериста над верховым пехотным, и, подъехав к Ростову, расхохотался.
– Отбил у пехоты, отбил силой транспорт! – сказал он. – Что ж, не с голоду же издыхать людям?
Повозки, которые подъехали к гусарам были назначены в пехотный полк, но, известившись через Лаврушку, что этот транспорт идет один, Денисов с гусарами силой отбил его. Солдатам раздали сухарей в волю, поделились даже с другими эскадронами.
На другой день, полковой командир позвал к себе Денисова и сказал ему, закрыв раскрытыми пальцами глаза: «Я на это смотрю вот так, я ничего не знаю и дела не начну; но советую съездить в штаб и там, в провиантском ведомстве уладить это дело, и, если возможно, расписаться, что получили столько то провианту; в противном случае, требованье записано на пехотный полк: дело поднимется и может кончиться дурно».
Денисов прямо от полкового командира поехал в штаб, с искренним желанием исполнить его совет. Вечером он возвратился в свою землянку в таком положении, в котором Ростов еще никогда не видал своего друга. Денисов не мог говорить и задыхался. Когда Ростов спрашивал его, что с ним, он только хриплым и слабым голосом произносил непонятные ругательства и угрозы…
Испуганный положением Денисова, Ростов предлагал ему раздеться, выпить воды и послал за лекарем.