О программе

To read this text in English


Программа для игры в преферанс Python Pref (лицензия GNU GPL)


Python Pref (PyPref) - это вариант карточной игры преферанс, написанный на языке программирования Python.


Одно время Python Pref (PyPref) существовал только в версии для смартфонов под управлением Symbian OS. Теперь эта версия игры доступна для Windows, а также на устройствах, где установлен Python с графической средой Tkinter. Это могут быть как персональные компьютеры, так и различные КПК c процессором ARM-архитектуры, на которых установлена одна из операционных систем на базе Windows CE от Microsoft (Pocket PC, Windows Mobile и т. п.).


Игра поддерживает QVGA и VGA разрешения экранов (или размеры окон) и две ориентации игрового стола: книжную и альбомную.



О предыдущих версиях приложения


Версии 1.05 и 1.06 программы разработчиком (Александром aka amigo) были созданы исключительно для мобильных устройств. За основу были взяты алгоритмы kpref Азарного И. В. и проекта OpenPref (http://openpref.narod.ru), в котором принимало участие несколько человек.


Позднее была опубликована версия 2.0 для ПК и КПК. Она предусматривала сборки как для Windows, так и для Unix-подобных операционных систем.


Со всеми данными касательно предыдущих версий программы можно ознакомиться пройдя по этой ссылке.



О версии 2.1


К сожалению, в версии 2.0 программы было обнаружено несколько существенных ошибок, которые портили общее впечатление от приложения.


В связи с тем, что с автором PyPref связаться не удалось (на отправленные по e-mail письма ответа не последовало), почти все замеченные ошибки, не касающиеся логики принятия решений AI, были исправлены. Если бы автор был на связи, версию 2.1 (а также дальнейшие версии программы) можно было разместить на его странице в качестве обновления приложения. А так, пришлось создавать новый проект на sourceforge.net под альтернативным названием программы - Python Pref.


Отличия версии 2.1 от 2.0


В версии 2.1 было исправлено несколько нижеперечисленных критических ошибок (не связанных с алгоритмом принятия решений AI).


Ошибки, обнаруженные в версии 2.0:


  1. Вне зависимости от выбранной разновидности преферанса (сочи/ленинград/ростов) пулька рассчитывается по конвенции "Ленинград", где 1 очко пули равняется 20 вистам, когда как в сочинке и ростовке оно соответствует 10 вистам.
  2. Добавление вистов не по нарастающей в результате распасов в ростовке.
  3. При подсаде разыгрывающего в ленинградке и ростовке не соблюдается правило джентльменского виста, а также записывается неправильное общее количество вистов.
  4. При невозможности записать помощь игрокам в сочинке и ростовке ввиду закрытия их пуль записывается по 5 вистов на каждого вместо 3 (10 : 3 = приблизительно 3).
  5. В ленинградке при подсаде разыгрывающего в гору записывается не удвоенное количество очков.
  6. При выборе опции "Десятерная > Вистуется" и назначении 10-ной происходит проверка данной игры, и наоборот - при выборе "Проверяется" применяется вистование.
  7. При включенном вистовании десятерной компьютерные противники на этой игре никогда не вистуют - даже имея "железные" взятки. P. S. В коде была ошибка, которая приводила к двум пасам на десятерной.
  8. При выбранной опции "Полвиста" после назначения разыгрывающим шестерной игры и паса противника приложение зависает (контекстное меню не открывается). На семерной игре также нет возможности уйти "за свои" после паса игрока (доступны только стандартные опции - "Вист"/"Пас").
  9. Ошибка записи результатов выполненной десятерной игры: при включенной проверке десятерной и 10 взятках разыгрывающего игрок, сидящий по правую от него руку, получает 10 в гору (разыгрывающий при этом, как положено, пишет 10 в пулю) - неправильно срабатывает функция начисления штрафа согласно правилу "Второй вист ответственный".
  10. При включенной проверке десятерной и ремизе на этой игре в ленинградке и ростовке не соблюдается правило джентльменского виста.
  11. При включенной проверке десятерной и назначении этой игры компьютерным противником он сначала показывает свои карты, затем опять скрывает. Согласно же общепринятым правилам проверка десятерной должна производиться при открытых картах всех игроков.
  12. При значении "Нет" параметра "Возвратный" возврат виста по-прежнему возможен. P. S. Опция "Возвратный" (возврат виста на играх 6 и 7) в версии 2.1 была удалена, так как в современном преферансе правила "Уход за свои" (Пас-Полвиста) и "Возвратный вист" почти всегда применяются вместе.
  13. Вне зависимости от выбора "Да" или "Нет" опции "Пас для пользы" (P. S. Конвенция в версии 2.1 получила более привычное обозначение - "Пас-Пас-Вист".), возврат виста на играх старше семерной после паса оппонента всё равно остаётся возможным.
  14. После завершения партии (в том числе досрочно-принудительного), в которой была применена прогрессирующая распасовка с затруднённым (ужесточённым) выходом, в случае если после второго и более круга распасов выхода из них не было, при запуске новой пульки (без выхода из программы) минимально возможная игра для объявления становится равной 7 (или 8), а стоимость распасов не равняется установленому значению для первого круга распасовки, то есть сессия распасов предыдущей партии продолжается в новой.


Другие замеченные, но не исправленные недочёты:


  1. При выборе опции "Закончить" в процессе розыгрыша распасов иногда программа зависает, в результате чего приходится закрывать окно приложения и запускать его снова. P. S. Не удалось идентифицировать причину ошибки и конкретные моменты, когда она происходит.
  2. При закрытии окна программы (без использования опции "Выход") она остаётся в "Процессах". В связи с этим рекомендуется завершать работу приложения через пункт меню "Выход".
  3. Отсутствует возможность досрочного завершения розыгрыша посредством предложения количества взяток.


Изменения в версии 2.2


В версии 2.2 добавлен отдельный алгоритм вистования десятерной игры.


Изменения в версии 2.3



  1. Исправлена ошибка неправильной записи ремизов при двух вистующих и невыполнении ими коллективных обязательств.
  2. Запрещено изменение конвенций в процессе игры.
  3. Удалена опция "Выход" из окон "Пуля" и "О программе".


Изменения в версии 2.31


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


Изменения в версии 2.32



  1. Доработан алгоритм вистования десятерной игры.
  2. Ограничено количество монет, появляющихся после окончания пули (неограниченное количество монет приводило к временному зависанию и длительному ожиданию завершения процедуры).
  3. Уменьшен размер пульки по высоте (для того чтобы в книжном виде в конце сдачи был полностью виден счётчик взяток).


Изменения в версии 2.33


В версии 2.33 исправлено неправильное использование заявки "здесь".


Изменения в версии 2.34


Скорректирован алгоритм вистования десятерной игры.


* * *


В случае если Вы найдёте другие ошибки или недочёты в программе, просьба сообщить о них на e-mail preference.gixx at mail.ru либо создать тикет в этом разделе сайта sourceforge.net.


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