Пасьянс «Тысячелистник»

Настольная игра «Пасьянс тысячелистник».

© copyleft http://www.script-coding.info/.

Автор программы.

Правила игры

Вначале рассмотрим вариант игры в 36 карт. Сдаются 36 карт, кучками по три карты. Цель игры — собрать по мастям все карты на четырёх посадочных местах внизу (на каждом посадочном месте — своя масть, карты перетаскиваются мышкой). Снимать и класть на посадочное место можно только верхнюю карту из любой кучки. Когда верхняя карта какой-либо кучки убрана, можно снимать вторую, потом последнюю. Перед началом игры нужно выбрать стратегию: с каких карт начинать собирать масти — с тузов, королей, шестёрок и т.п. Как только первая карта снята на какое-либо из посадочных мест, стратегия определена. Карты на посадочные места можно снимать только подряд, т.е. на короля можно класть туза такой же масти, на него — шестёрку, на неё — семёрку и т.д. Можно и наоборот: на короля класть даму, на неё — валета, на него — десятку и т.д. Эта часть стратегии оказывается определённой, когда вы первый раз снимаете вторую карту на одно из посадочных мест.

Карты можно перекладывать между кучками (карты перетаскиваются мышкой). Правила перекладывания:

  1. В кучке не может быть больше трёх карт.
  2. Если последняя карта в кучке снята на посадочное место, кучка исчезает навсегда.
  3. Перекладывать между кучками можно только на такую же по достоинству карту: туз на туза, король на короля и т.д.

Игра заканчивается, когда все карты оказываются собранными по мастям на четырёх посадочных местах. Программа подсчитывает количество ходов: чем ходов меньше, тем лучше.

Вариант игры в 48 карт отличается в основном тем, что после короля идёт двойка, а тузов нет.

Пасьянс получается не всегда! Есть расклады, которые разложить невозможно. Кроме того, игру легко завести в тупик неверными перекладываниями. И главное, нужно правильно выбрать стратегию в начале игры. Пасьянс развивает внимательность и логическое мышление; когда разберётесь, что к чему — обязательно войдёте во вкус.

Работа программы

Пункты меню в основном вполне интуитивны, поэтому далее — лишь несколько замечаний.

Пункт меню «Игра» - «Перемешать карты» позволяет сделать пересдачу карт, не трогая уже разложенные карты на посадочных местах. Этот приём позволит вам в любой момент выйти из тупика и разложить пасьянс в любом случае, даже при самом неудачном раскладе. Программа подсчитывает количество перемешиваний: чем их было меньше, тем лучше. Очень часто пасьянс можно разложить вообще без перемешиваний, если в начале выбрать правильную стратегию.

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

Двойной щелчок по карте приводит к попытке автоматически перетащить карту на первое подходящее посадочное место. Если такого не нашлось, ничего не происходит.

Нажатие и удержание правой кнопки мыши на карте подсвечивает все карты того же достоинства. Это не считается ходом и удобно для поиска карт, особенно при определении стратегии.

Вы можете добавить в папку /pics/packs любое количество папок со своими колодами, и они станут доступны в меню «Выбор колоды». Карты в формате GIF должны иметь предопределённые названия и могут быть теоретически любого размера, но с соблюдением пропорции ширины и высоты. Колоду «Standard» нельзя удалять или переименовывать.

Вы можете добавить в папку /langs любое количество своих языковых файлов с названиями milfoil_??_??.qm, созданных на основе (по образу и подобию) файла milfoil_ru_RU.ts, и они станут доступны в меню «Выбор языка».

При выходе программа запоминает выбор языка, выбор колоды, размеры и положение окна.

Чтобы обнулить таблицу рекордов, удалите файл /data/scores.dat.

Программа тестировалась под Windows XP и OpenSUSE 11 в среде Gnome на версии Python 2.5. Программа представляет из себя скрипт Python, использующий модуль PyQt4. Таким образом, для работы скрипта необходим интерпретатор Python версии 2.5 и установленный модуль PyQt4 (версия самой библиотеки Qt необходима не ниже 4.4.0). Разрешение экрана желательно не менее 1024 х 768.


Приятной игры!