# Підручник з &kajongg;

Wolfgang
Rohdewald
wolfgang@rohdewald.de
Юрій
Чорноіван

    yurchor@ukr.net

Переклад українською
11 травня 2011 року
&kappversion;

Цей розділ довідки присвячено грі &kajongg; версії &kappversion;

KDE
kdegames
гра
kajongg
дошка
аркада
гра з плитками
плитки
чотири гравці

## Вступ

### Тип гри:

Гра на дошці, аркада

### Можлива кількість гравців:

Чотири

&kajongg; — це гра на дошці, створена на основі відомої східної гри «маджонґ» (китайською 麻將). У грі беруть участь четверо гравців. За час існування гри було створено дуже багато різних наборів правил. Поточна версія &kajongg; підтримує класичні китайські правила, які використовують у Німеччині, у майбутніх версіях буде реалізовано інші набори правил. Можна змінювати або додавати нові набори правил. Будь ласка, після створення нових правил надішліть їх авторові програми для подальшого додавання до пакунка програми.

&kajongg; можна користуватися у два різних способи. Зіграйте у гру у звичний спосіб, без комп’ютера, а потім скористайтеся &kajongg; для обчислення рахунків та ведення записів щодо гри. Крім того, ви можете скористатися &kajongg; для гри з довільною кількістю інших гравців-людей або комп’ютерних гравців.

## Компонування вікна

Знімок вікна &kajongg; Знімок вікна

Короткий опис частин вікна гри.

Панель інструментів

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

  Якщо ви працюєте за невеличким екраном, варто зробити панель інструментів невидимою або пересунути її у ліву частину вікна програми. Зробити це можна після клацання правою кнопкою миші у довільному вільному місці на панелі інструментів.

Дошка

  Дошка є найбільшою областю у вікні програми. У ній ви побачите чотири стіни довжиною у 18 плиток (ця кількість залежить від правил гри, зокрема від можливості використання додаткових плиток). На стінах буде написано імена гравців разом з поточною (у межах відомого) вартістю комбінації, а також показано плитки їх вітрів. Тло плитки переважного вітру буде забарвлено. На знімку такою плиткою є плитка «Східний».

  Під час гри на внутрішній стороні стін буде розташовано плитки, відкинуті гравцями. Розташування плиток буде випадковим. Останню відкинуту плитку буде позначено синьою рамкою.

  У режимі обчислення рахунків вручну між стінами буде показано набір можливих плиток, центральну область вибору. Ви можете призначити ці плитки гравцям за допомогою миші або клавіатури.

Поле гравця

  Кожному гравцеві для його плиток буде виділено окрему частину вікна. У верхньому рядку міститимуться відкриті плитки, а у нижньому — приховані. У режимі обчислення рахунку гри, зіграної вручну, приховані плитки буде показано затіненими. Бонусні плитки буде показано праворуч.

Діалогове вікно

  У діалоговому вікні гравцеві пропонуватиметься зробити певний вибір. Найчастіше для таких діалогових вікнах буде запущено таймер, а смужка поступу показуватиме час, що залишився на прийняття рішення.

Смужка стану

  Смужку стану розташовано у нижній частині вікна, у ній містяться дані щодо очок всіх гравців.

## Обчислення рахунку гри справжніми плитками

У цьому режим &kajongg; використовується лише для визначення рахунку гри, зіграної вручну. Ви граєте у звичний спосіб з людьми за матеріальним столом, а наприкінці гри вам слід повідомити &kajongg; плитки, які є у гравця, та всі інші потрібні &kajongg; відомості для обчислення рахунків. Саме обчислення рахунків і є призначенням програми. Крім того, ви можете обчислити рахунки вручну і ввести їх. Після цього &kajongg; виконає обчислення сплат гравців і запише результати до бази даних. Ви можете призупиняти гру, починати іншу гру з іншими гравцями і поновлювати старі ігри. Всі правила зберігаються разом з іграми, отже, у різні ігри можна грати за різними правилами.

- Оберіть пункт меню Гра / Рахунок гри вручну або натисніть комбінацію клавіш &Ctrl;C.

- Ви можете або обрати існуючу незавершену гру, або розпочати нову. Якщо ви розпочнете нову гру, програма запропонує вам визначити гравців і набір правил. &kajongg; запропонує вам набір параметрів, які було використано під час попередньої гри. Якщо ви ще не грали з &kajongg;, програма запропонує перших чотирьох визначених гравців. Будь ласка, зауважте, що ви не зможете змінити набір правил або будь-яке правило з набору після вибору параметрів гри за допомогою цієї сторінки. Ви можете зробити це попередньо за допомогою редактора наборів правил.

- Після цього ви побачите нове вікно з заголовком «Введення результатів комбінацій». Його докладний опис наведено у розділі Обчислення рахунків за допомогою &kajongg;.

- Після збереження результатів гравця, перейти до наступного гравця.

### Введення результатів комбінацій

#### Рахунки

Знімок вікна &kajongg;
Знімок вікна

Це вікно призначено для введення результатів гравця. Програма &kajongg; автоматично відкриватиме це вікно, коли вважатиме, що у цьому є потреба. Відкрити або приховати це вікно можна натисканням комбінації клавіш &Ctrl;S або вибором відповідного пункту меню.

Поле переважного вітру завжди матиме зафарбоване тло.

У цьому вікні ви зможете ввести рахунки для всіх гравців вручну. Крім того, ви можете точно визначити плитки, власником яких є кожен з гравців. Якщо ви почнете вказувати плитки, відповідне поле для безпосереднього введення рахунку буде позначено сірим кольором. Результат буде обчислено програмою &kajongg; у автоматичному режимі.

Після введення всіх відповідних даних для гравця натисніть кнопку Зберегти дані гравця. Після натискання цієї кнопки дані гравця буде додано до бази даних, а також до таблиці результатів. Можливо, програма попросить вас змінити позиції гравців, але ви можете їх і не змінювати. У поточній версії ще не можна змінити запропоновані програмою параметри. Якщо для певного набору правил подібна зміна є необхідною, автори можуть реалізувати відповідну можливість.

Якщо гравець є ймовірним переможцем, програма увімкне поле у стовпчику «Переможець». Позначте це поле, якщо гравець і справді є переможцем.

У смужці стану буде показано оновлені значення балансу для гравця, ви можете перейти до іншого.

##### Введення рахунка вручну

Досвідчені гравці, ймовірно, нададуть перевагу обчисленню власного рахунку вручну. Якщо ви є таким гравцем, ви можете ввести рахунок безпосередньо. Цей варіант буде можливим лише до моменту вибору будь-якої плитки відповідного гравця.

Якщо ви вводите рахунок вручну, серед даних рахунка мають бути всі параметри гри, окрім штрафів, у вас не буде змоги обирати якісь додаткові правила. Існує єдиний виняток: «Небезпечна гра». Виняток не стосується ні рахунків, ні крадіжок. Він стосується лише відмінності у розрахунках між гравцями: шахраєві все одно доведеться платити переможцеві. Інші два гравці нічого не платитимуть одне одному. У поточній версії таку поведінку програми змінювати не можна.таку поведінку програми змінювати не можна.

##### Обчислення рахунка за допомогою &kajongg;

Якщо ви явно вказуватимете &kajongg; плитки гравця, у цьому вікні поля введення рахунка для гравця буде вимкнено. Під час призначення плиток до гравця ви зможете спостерігати за зростанням його рахунка, але після додавання чотирнадцятої плитки рахунок стане нульовим. Це може здивувати, але згадайте: якщо ви не вказали, що це комбінація переможця, програма вважатиме, що це довга комбінація, за яку завжди нараховується нуль очок. Така поведінка визначається класичними китайськими правилами, для інших наборів правил правила обчислення рахунка можуть бути іншими, якщо ви зміните їх або скористаєтеся іншими правилами.

Якщо хочете, можете призначити плитки або комбінації гравцям за допомогою вказівника миші або клавіатури. За допомогою вказівника миші плитки можна просто перетягувати і скидати у область гравця. Після скидання плитки програма запитає у вас про комбінацію, яку ви перетягнули: Одиниця, Пара, Понг, Конг, Оголошений Конг або Чоу. У верхньому рядку буде показано відкрити плитки, а у нижньому — приховані. Бонусні плитки буде показано праворуч. Крім того, ви можете пересувати плитки і комбінації між рядками, між полями гравців і назад до області вибору.

Якщо ви надаєте перевагу використанню клавіатури, ви можете скористатися натисканням клавіші &Tab; для переходу позначки вибору між центральною областю та областями гравців. За допомогою клавіш eswnESWN можна пересувати плитку Східному (East), Південному (South), Західному (West) або Північному (North) гравцеві. Натискання клавіші X пересуне плитку назад до центральної області вибору. Великі літери ESWN пересувають плитки до рядка прихованих, eswn — до рядка відкритих. Ви можете пересувати курсор між плитками або комбінаціями за допомогою клавіш зі стрілочками. Поточну плитку або комбінацію буде позначено синьою рамочкою. Оскільки клавіші зі стрілочками розташовано на певній віддалі від інших клавіш клавіатури, ви можете також скористатися клавішами з літерами hjkl або HJKL для пересування курсора. hH пересувають курсор ліворуч, jJ — вниз, kK — вгору, lL — праворуч. Подібна поведінка характерна для редактора UNIX «vi». У переглядачі &kde;, konqueror, і навіть у програмі для читання цієї довідки можна користуватися цими ж клавішами з цією ж метою. Назви клавіш залежать від використаної вами мови (для української використано ті самі літери, що і у англійській), у поточній версії програми зміни цих клавіатурних скорочень не передбачено.

Пункти «Остання плитка» і «Остання комбінація» потрібні для деяких правил, наприклад «остання плитка завершує пару». Ними можна скористатися лише для комбінації переможця.

Праворуч ви можете вручну застосувати деякі з правил. Вміст списку правил залежатиме від поточного набору правил та плиток. У прикладі на знімку вікна, наведеному вище, гравці-невдахи можуть скористатися варіантом «небезпечна гра», — знову ж таки, залежно від набору правил та наявних плиток. Спрощення списку правил, які слід доводиться вручну, є одним з завдань розробників. За ідеальних умов &kajongg; повинен завжди автоматично визначати можливість застосування правила, але іноді у &kajongg; просто не вистачає інформації, або логіка програми не може знайти потрібного варіанта.

#### Штрафи

Знімок вікна &kajongg;
Знімок вікна

До відкриття цього вікна призведе натискання кнопки Штрафи у вікні для введення результатів. Тут ви зможете ввести значення штрафів. Ввести штраф можна будь-коли, незалежно від звичайного механізму обчислення рахунків.

У полі вибору крадіжка буде показано всі різновиди крадіжок, які може бути застосовано відповідним гравцем. Оберіть один з них.

Після цього ви можете вказати Загальний штраф. Загальний штраф — це сума, яку платник сплачує всім отримувачам. Цю суму буде порівну поділено між переможцями.

Залежно від типу крадіжки, кількість платників та отримувачів може бути різною. Програма покаже належну полів гравців. Якщо ви оберете гравця, &kajongg; забезпечить відсутність повторів зміною вмісту інших полів гравців.

## Як грати

Ви можете увімкнути або вимкнути режим демонстрації будь-коли. У режимі демонстрації комп’ютер гратиме за вас. Якщо не відбуватиметься жодна гра, буде розпочато нову гру з останнім використаним набором правил.

### Гра з комп’ютерним гравцем

Спочатку буде відкрито діалогове вікно входу до системи. Вкажіть назву ігрового сервера, з яким слід встановити з’єднання, та ім’я вашого користувача. Якщо ви скористаєтеся особливим пунктом «Локальна гра», вам слід вказати лише ім’я гравця (або погодитися з запропонованим іменем) та бажаний набір правил. Після цього негайно буде розпочато гру, у якій вашими суперниками будуть три комп’ютерних гравці. Якщо програма виявить записи призупинених ігор, ці ігри буде показано у списку. Ви можете вибрати гру, яку слід продовжити, або розпочати нову гру.

### Гра з друзями

Якщо ви бажаєте зіграти з гравцями-людьми, вам потрібен буде ігровий сервер, з яким всі гравці, зокрема і ви, маєте встановити з’єднання. Зробити це можна вибором відповідного вузла або введенням назви вузла вручну з наступним введенням пароля для доступу до цього вузла. Програма запропонує вам скористатися останнім з введених паролів.

Якщо на сервері немає облікового запису з вказаною вами назвою, програма запитає вас про те, чи не бажаєте ви створити такий запис. Якщо ви підтвердите створення, буде відкрито діалогове вікно, у якому вам слід буде двічі ввести бажаний пароль до запису. Після введення пароля програма створити обліковий запис у автоматичному режимі.

Після успішного входження до ігрового сервера програма покаже список столів, за якими можна грати на сервері. Приєднайтеся до одного зі столів або створіть власний. Якщо вами було створено власний стіл, дочекайтеся приєднання до нього достатньої кількості гравців. Гру за новим столом можна розпочати будь-коли: вільні місця буде заповнено комп’ютерними гравцями.

Крім того, у списку столів буде показано назву набору правил, за яким відбувається гра на столі. Набір правил та його назва визначається надсиланням відповідних даних на ігровий сервер гравцем, який першим «сів» за стіл. Якщо у вашій системі вже є набір правил з вибраною назвою, буде показано цю назву, — подібна поведінка буде корисною, якщо ініціатор гри не говорить вашою мовою і називає набір правил невідомою вам назвою. Крім того, локальні назви наборів правил буде показано чорним кольором. Якщо ж у вашій системі не виявиться відповідного набору правил, його назву буде позначено червоним кольором. Ви зможете скористатися кнопкою Порівняти для порівняння цього набору з вашим власними наборами правил.

Запустити ігровий сервер &kajongg; можна у два різних способи:

- встановити з’єднання з сервером "localhost". Цим сервером буде ваш власний комп’ютер. Якщо ви виберете цей варіант, а ігровий сервер ще не буде запущено, програма запустить його у автоматичному режимі. Після завершення гри програма так само автоматично завершить роботу сервера.

- запустити сервер на будь-якому іншому комп’ютері вручну. Для цього вам достатньо наказати виконати програму "kajonggserver" за допомогою командного рядка. Якщо ви скористаєтеся командою "kajonggserver --help", програма покаже вам всі можливі параметри, зокрема подасть довідку щодо зміни типового порту 8149. Запущений таким чином сервер працюватиме, доки ви не перервете його роботу.

У обох випадках вам слід повідомити іншим гравцям про те, яким чином можна з’єднатися з вашим ігровим сервером. Вам потрібно буде назвати адресу URL або просто IP-адресу, а також порт, на якому сервер очікуватиме на з’єднання. Це може бути щось на зразок «mypc.dyndns.org:8149», де 8149 — це номер порту. Звичайно ж, вам слід налаштувати брандмауер вашого комп’ютера таким чином, щоб віддалений гравець зміг встановити з’єднання з відповідним портом. Весь обмін даними буде зашифровано.

Якщо ви натрапите на можливі вади у програмі, ви можете скористатися параметром "--showtraffic". За його допомогою ви зможете побачити у консолі, з якої запущено ігровий сервер, повідомлення, якими обмінювалися сервер гри та клієнти.

#### Застереження

- Якщо вам потрібна безпека від шахрайства, жоден з гравців-людей не повинен мати доступу до комп’ютера, на якому запущено сервер гри. Звичайно ж, зробити так, щоб два гравці не допомагали один одному не можна, оскільки програма не може стежити за їх діями. Два віртуальних гравці навіть можуть бути просто одним реальним гравцем.

### Правила гри

У різних частинах світу у гру грають по різному. У цьому підручнику ми опишемо правила гри у класичний китайський маджонґ, які використовуються у Німеччині. Більшість основних правил є спільними для різних варіантів гри.

Оскільки правила гри вже використано у &kajongg;, у нашому описі ми поговоримо лише про речі, які не є очевидними.

Якщо ви бажаєте поглиблено вивчити маджонґ, будь ласка, зверніться до джерел зі списку літератури.

#### Мета гри

Кожен з гравців намагається зібрати у себе виграшну комбінацію плиток. Якщо таку комбінацію буде зібрано, гравець проголошує «маджонґ». У виграшній комбінації плитки, зазвичай, можна розподілити на п’ять груп: чотири групи з трьох або чотирьох плиток кожна і п’ята груп з двох однакових плиток. Звичайна група складається з трьох або чотирьох однакових плиток (які називаються панг і конг, відповідно) або трьох послідовних плиток, наприклад Бамбук 3, Бамбук 4, Бамбук 5 (інша назва «чоу»).

#### Хід гри

На початку гри гравець зі східного вітру (відповідно до стіни) має на одну плитку більше за інших гравців. Східний гравець починає з відкидання небажаної плитки.

Після відкидання плитки інші гравці можуть забрати її, оголосивши, що яку комбінацію завершує ця плитка (чоу, панг, конг чи маджонґ). Чоу може оголосити лише наступний гравець, — інші варіанти оголошення можуть використовуватися всіма гравцями. Групу, яку завершено внаслідок оголошення буде відкрито, — її зможуть бачити всі гравці.

Якщо ніхто з гравців не забрав відкинуту плитку, наступний гравець, Південь (потім Захід і Північ) бере плитку зі стіни і відкидає непотрібну йому плитку.

Існує декілька правил розширення пангу до конгу (підбиранням четвертої плитки або отриманням її зі стіни). У цьому підручнику ми не будемо їх пояснювати. Але &kajongg;, звичайно ж, ці правила відомі, програма забезпечить їх виконання. Якщо буде оголошено конг, гравець автоматично отримає плитку-замінник зі стіни, якщо цього не зробити, не можна буде зібрати п’ять груп, про які ми згадували вище.

#### Рік, раунд і розіграш комбінації

Якщо хтось з гравців оголошує маджонґ або гра завершується нічиєю, розіграш комбінації вважається завершеним. Після цього, якщо гра не завершилася нічиєю, відбувається зміна вітрів для гравців. Така зміна повторюється, доки кожен з гравців не зіграє за кожен з вітрів. Такий відрізок гри називається раундом. Вся гра, яку також називають роком, складається з чотирьох раундів: раунду східного вітру, раунду південного вітру, раунду західного вітру та раунду північного вітру. Вітер раунду також називається переважним вітром, його використання може підвищити оцінку гри.

Отже повна гра (рік) складається з принаймні 16 розіграшів комбінацій. Оскільки зміна вітрів не відбувається, якщо гра завершилася нічиєю або східний гравець проголосив маджонґ, зазвичай, для гри буде потрібно більше, ніж 16 розіграшів комбінацій.

#### Бонусні плитки

У грі може бути використано вісім бонусних плиток (якщо правилами їх не буде виключено). Ці плитки буде показано окремо у правій області поля гри, оскільки вони не використовуються для побудови груп. Втім, використання цих плиток надає гравцеві додаткові бонусні очки.

Якщо гравець отримує бонусну плитку, він автоматично отримує плитку-замінник зі стіни.

#### Правила оцінок

Наприкінці розіграшу комбінації для кожного з гравців виконується обчислення оцінки. По-перше, обчислюються основні очки, зокрема 2 очки за простий панг або 20 очків за виграш. Далі застосовується ще один набір правил. Згідно до цих правил очки можуть подвоюватися, наприклад, за групу драконів. Після того, як стає відомою оцінка для кожного з гравців, відбувається обчислення сплат між гравцями: переможець отримує сплату своєї повної оцінки від інших гравців. Східний гравець завжди отримує або сплачує подвійну кількість очок.

Звичайно ж, програмі &kajongg; відомі всі можливі правила, але досвідченому гравцеві не складно зрозуміти, які комбінації можуть дати максимальну оцінку. Втім, на час навчання вам варто скористатися пунктом меню Пояснення рахунку.

Точні правила оцінювання дуже залежать від використаного варіанта гри. У &kajongg; ви можете самі встановити правила оцінювання за допомогою редактора наборів правил.

Крім того, у редакторі правил буде показано всі доступні правила та їх призначення. Наведіть вказівник миші на пункт правила, щоб переглянути довідку щодо найекзотичніших з правил.

### Як грати за допомогою &kajongg;

Програма запитає вас про подальші дії. Це невеличке діалогове вікно може з’являтися праворуч або в нижній частині вікна, залежно від геометричних параметрів вікна. Якщо ви зробили вікно широким або невисоким, діалогове вікно з’явиться праворуч. Деякі діалогові вікна працюють у режимі таймера: коли час буде вичерпано, програма автоматично вибере перший же з можливих варіантів. Значення часу очікування можна налаштувати у редакторі правил, пункт Параметри, Тайм-аут оголошення. Тайм-аут має бути однаковим для всіх гравців, ось чому це значення є частиною набору правил гри.

Щоб вибрати плитку з вашої комбінації, вам слід пересунути позначку за допомогою натискання клавіш зі стрілками праворуч та ліворуч або клавіш з літерами «h» та «l». Звичайно ж, ви можете скористатися вашою мишею.

Ви можете відкинути плитку за допомогою клавіатури у той самий спосіб, що і для решти дій у програмі. Крім того, ви можете скористатися вказівником миші для пересування плитки з вашого набору плиток до області відкидання (внутрішньої області за стінами). Розташування плитки у області відкидання все ж буде виконано комп’ютером, оскільки розташування має бути однаковим для всіх гравців.

Часто діалогові вікна пропонують вам варіанти, які є неможливими, наприклад оголошення пангу, коли у вас немає потрібних плиток. Так зроблено навмисно, щоб гра була більше схожою на реальну.

Відкинуті плитки розподіляються між стінами випадковим чином. У деяких варіантах гри розташування таких плиток строго регламентується, але у поточній версії гри подібне налаштування неможливе. Можливість налаштування буде реалізовано як частину правил гри.

## Огляд інтерфейсу

### Меню Гра

Гра Рахунок гри вручну

  Враховувати лише введені вручну комбінації.

  Ви можете завантажити попередню гру або розпочати нову гру. Типово, у списку вибору будуть лише відкладені (тобто незавершені) ігри. Якщо ви цього захочете, ви можете налаштувати гру на показ всіх ігор, зокрема і завершених. За допомогою цього списку ви зможете вилучати записи ігор.

Гра Грати

  Гра з іншими гравцями (людьми або комп’ютерними гравцями)

Гра Перервати

  Перервати поточну гру. Якщо цією грою була гра справжніми плитками, для якої програма лише обчислювала рахунок, ви зможете поновити гру пізніше. Якщо ж для гри ви використовували саму програму &kajongg;, можливості поновлення гри ще не передбачено.

Гра Вийти

  Завершує роботу &kappname;.

### Меню Перегляд

Перегляд Рахунок

  Діалогове вікно рахунку: показує або приховує це діалогове вікно. Опис діалогового вікна можна знайти тут.

Перегляд Підсумкова таблиця

  Підсумкова таблиця Підсумкова таблиця Знімок вікна Показати підсумкову таблицю. У стовпчику «Раунд/Розіграш» буде показано назву раунду (Схід, Південь, Захід чи Північ) і кількість розіграних комбінацій. Поле переможця у стовпчику результатів буде підсвічено зеленим кольором. У стовпчику сплат буде показано виграш або програш гравця. У стовпчику балансу буде показано поточний баланс для всіх гравців. За допомогою підказок ви зможете дізнатися більше: буде показано всі правила, які було застосовано до відповідної комбінації. Достатньо просто навести вказівник миші на відповідне значення у таблиці.

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

Перегляд Пояснення рахунку

  Пояснення рахунку Підсумкова таблиця Підсумкова таблиця Надає пояснення щодо рахунку для поточного гравця.

### Меню Параметри

Параметри Гравці

  Тут ви можете додавати, змінювати або вилучати гравців зі списку.

  Паролі з цієї таблиці є типовим до використання під час встановлення з’єднання з сервером. Зміна паролів, які було початково вибрано на сервері гри, не призведе до бажаних наслідків, оскільки ще не реалізовано зміну вашого пароля на сервері гри. Вам доведеться просити про таку зміну адміністратора ігрового сервера. Лише він може внести безпосередні зміни до бази даних паролів сервера.

Параметри Змінити кут огляду

  Використання цього пункту меню змінює кут огляду плиток проти годинникової стрілки.

Параметри Режим демонстрації

  Вмикає або вимикає режим демонстрації. Докладніше про цей режим можна дізнатися тут.

Параметри Показати смужку стану

  Показує або ховає смужку стану.

Параметри Повноекранний режим

  Перемикає програму між повноекранним режимом і звичайним режимом.

Параметри Налаштувати скорочення...

  Відкриває стандартне вікно налаштування клавіатурних скорочень &kde;, за допомогою цього вікна ви зможете налаштувати клавіатурні скорочення, які використовуватимуться &kappname;.

Параметри Налаштувати пенали...

  Відкриває стандартне діалогове вікно &kde;, за допомогою якого ви зможете налаштувати піктограми панелі інструментів.

Параметри Налаштувати &kappname;...

  Відкриває діалогове вікно налаштування &kappname;.

Параметри Показати пенал

  Показує або ховає панель інструментів.

### Меню Довідка

&help.menu.documentation;

## Налаштування гри

Діалогове вікно налаштування
Діалогове вікно налаштування

Пункт меню Параметри Налаштувати &kappname;... відкриває діалогове вікно Налаштувати &kappname;.

Якщо ви натиснете кнопку Скасувати, всі внесені вами у налаштування зміни буде відкинуто, зокрема буде відкинуто всі зміни, внесені за допомогою редактора наборів правил.

Крім того, ви можете відкривати вкладки за допомогою клавіатури: комбінація клавіш &Ctrl;1 відповідає відкриттю першої вкладки, Гра, &Ctrl;2 — відкриттю другої вкладки тощо.

### Параметри Гри

Показувати тіні плиток

  Позначення цього пункту призведе до показу країв та тіней від плиток. Крім того, буде додано проміжок між рядами плиток, а плитки стіни буде показано таким чином, що можна буде визначити, складається стіна з двох чи трьох плиток. Якщо ви знімете позначку з цього пункту, показ буде дещо спрощено, плитки виглядатимуть більшими. Подібний режим може бути зручнішим для показу на невеличких екранах.

Перевпорядкувати невідкриті плитки за комбінаціями

  За допомогою цього пункту виконується групування комбінацій у наборі плиток. Іноді таке групування може відрізнятися від бажаного для вас групування, отже у вас може виникнути бажання вимкнути групування взагалі, так само, як немає ніякого групування у грі справжніми плитками.

Показувати лише можливі дії

  Під час гри показувати лише можливі дії, зокрема «Не оголошувати» або «Панг».

Використовувати звуки, якщо такі передбачено

  За допомогою цього пункту ви зможете чути повідомлення про відкидання або оголошення гри. Якщо інші гравці записали звукові файли з власним голосом, ви зможете почути їх.

Надати змогу іншим чути мій голос

  Якщо ви записали звукові файли з повідомленнями гри, за допомогою цього пункту ви зможете надати іншим гравцям змогу чути відкидання та оголошення гри, вимовлені вашим голосом.

Швидкість анімації

  За допомогою цього пункту можна визначити швидкість пересування плиток. Якщо ви пересунете повзунок у найправішу позицію, програма не анімуватиме пересування плиток: плитки просто миттєво змінюватимуть розташування.

#### Звук

Ви можете записати звукові файли з повідомленнями гри, які зможуть чути інші гравці. Дещо доведеться зробити вручну:

- Для початку, вам слід підготувати сховище для ваших звукових файлів. Зазвичай, відповідною текою буде ~/.kde/share/apps/kajongg. Якщо обліковий запис вашого користувача у системі — «ivan», цим каталогом буде /home/ivan/.kde/share/apps/kajongg. У каталозі має зберігатися файл бази даних kajongg.db.

- Після встановлення місця зберігання каталогу, створіть у ньому підкаталог з назвою `voices`.

- У теці `voices` створіть ще одну підтеку з назвою, що відповідає імені вашого гравця. Цим іменем ви маєте скористатися під час встановлення з’єднання з ігровим сервером. Крім того, ви можете додати звукові файли для гравців `ROBOT 1`, `ROBOT 2`, `ROBOT 3`.

- У створеній теці вам слід зберегти звукові файли. Дані файлів має бути закодовано за допомогою програми для стискання звукових даних Ogg Vorbis, назви файлів мають завершуватися суфіксом `.ogg`.

- Окремі файли повинні мати назви, подібні до `s3.ogg` (файл для каменя 3). Вам слід створити такі файли для всіх плиток і для всіх оголошень і повідомлень гри.

Будь ласка, намагайтеся говорити швидко, але чітко, — у гру можна грати дуже швидко, якщо трохи до неї призвичаїтися. Вам буде легше, якщо ви спочатку створите список всіх фраз, які слід вимовити. Не читайте список як суцільний текст, намагайтеся вимовити кожен пункт окремо, так, як ви вимовляли б його під час гри. Подібний спосіб читання потребує певної вправності.

Ось лише один зі способів створення файлів звукових даних:

- Запишіть звуковий файл за допомогою програми `qarecord`, збережіть його у форматі `WAV`. У цьому звуковому файлі мають бути всі звукові повідомлення.

- Відкрийте цей файл у звуковому редакторі `audacity`. Скористайтеся мишею для позначення ділянок звукової доріжки. Після позначення відтворіть дані за допомогою редактора. Полегшити ваше завдання може пункт меню Перегляд Збільшити. Скористайтеся пунктом меню Файл Експорт вибраної області і збережіть дані у форматі ogg. Якість не обов’язково має бути дуже високою (виберіть за допомогою кнопки Параметри низьке значення якості), краще навіть скористатися максимальним стисканням, оскільки за такого стискання зменшиться час, потрібний на передавання даних іншим гравцям.

Нижче наведено список назв файлів, які вам слід створити. До вказаних назв слід додати суфікс `.ogg`:

##### Назви звукових файлів

&s1; .. &s9; | Камені від 1 до 9
&b1; .. &b9; | Бамбук від 1 до 9
&c1; .. &c9; | Символи від 1 до 9
&we; &ws; &ww; &wn; | Вітри (східний, південний, західний, північний)
&db; &dr; &dg; | Дракони (синій/білий, червоний, зелений)
&chow; &pung; &kong; &mahjongg; | Основні оголошення
&originalcall; &violatesoriginalcall; | Початковий виклик і його порушення
&dangerousgame; | Гравець стріляє з гармати (небезпечна гра)
&nochoice; | Гравець проголошує, що у нього немає іншого вибору — йому доведеться розпочати небезпечну гру

### Параметри Плиток

Вибір набору плиток
Вибір набору плиток

За допомогою засобу вибору Плитки можна обрати графічну тему для плиток.

### Параметри Тла

Засіб вибору тла
Засіб вибору тла

Засобом вибору Тло можна скористатися для вибору фонової графіки гри.

Деякі з зображень тла, на зразок китайських краєвидів, потребують певного часу на завантаження. Якщо вам потрібно пришвидшити запуск програми або збільшити швидкість зміни розмірів головного вікна, ви можете спробувати інше зображення тла.

### Редактор наборів правил

Редактор наборів правил
Редактор наборів правил

Щоб змінити набір правил, скористайтеся редактором наборів правил. Записи попередньо визначених наборів правил буде показано курсивним шрифтом, змінені набори правил буде показано звичайним шрифтом. Змінити попередньо визначені набори правил сам користувач не може, але ці набори може бути змінено під час оновлення &kajongg;. Змінені набори правил під час оновлення програми змінено не буде.

На початку нової гри ви зможете обрати набір правил, за якими вона вестиметься. Можна використовувати будь-який набір правил з визначених у редакторі наборів правил. Набір правил зберігається разом з грою, отже ви завжди зможете змінити набори правил, але внесені вами зміни стосуватимуться лише наступних ігор.

#### Назва, рахунок і одиниця

Просто наведіть вказівник на пункт, який ви бажаєте змінити, і двічі клацніть лівою кнопкою миші.

#### Визначення

Визначення правила може бути досить складним, цьому питанню присвячено окрему главу з назвою Визначення правила. Зазвичай, змінювати визначення правила не потрібно. Загалом кажучи, визначення вказує на комбінації, яких стосується правило.

#### Копіювання і вилучення

Ви можете скопіювати весь набір правил або окремі правила у певному наборі. Оскільки попередньо визначені правила змінювати не можна, ви можете лише скопіювати окремі правила до створених вами змінених наборів правил.

Ви можете вилучати змінені набори правил або окремі правила у наборах. Знову ж таки, ви можете робити це, навіть якщо існують ігри, які використовують змінений набір правил, оскільки у кожній з ігор міститься власна копію правил, за якими вона ведеться. Ви можете переглянути набори правил для попередніх ігор: завантажте попередню гру і накажіть програмі показати таблицю з її рахунком.

#### Порівняти

Порівнювач правил Порівнювач правил Скористатися цією командою можна, якщо позначено цілий набір правил. За її допомогою можна порівняти позначений набір правил з будь-яким іншим відомим програмі набором.

### Типові клавіатурні скорочення

Пункт меню Параметри Налаштувати... надає вам змогу змінити типові клавіатурні скорочення.

Типовими клавіатурними скороченнями є:

F1

  Показує цей підручник.

&Ctrl;C

  Обчислення рахунку гри справжніми плитками.

&Ctrl;N

  Грати у гру з вашим друзями або комп’ютерними гравцями.

&Ctrl;W

  Перервати поточну гру.

&Ctrl;Q

  Завершити роботу програми.

&Ctrl;T

  Показує таблицю результатів.

&Ctrl;G

  Змінює кут перегляду.

&Ctrl;D

  Вмикає або вимикає режим демонстрації.

&Shift;F1

  Довідка «Що це?»

&Ctrl;&Shift;F

  Повноекранний режим

## Визначення правила

Рушій обчислення рахунків та багато інших параметрів &kajongg; можна змінити за допомогою редактора наборів правил. Запис правила складається з його назви, рахунку (зокрема одиниці обчислення) та визначення.

### Групи правил

Існує декілька груп правил:

Правила комбінування

  Правила комбінування застосовуються до окремих комбінацій незалежно від решти комбінації

Правила комбінацій

  Правила комбінації застосовуються до всієї комбінації для всіх гравців

Правила маджонґ

  Правила маджонґ регламентують виграшні комбінації. Зазвичай, така комбінації складається з чотирьох з’єднань по 3 або 4 плитки та пари плиток. Але передбачено і особливі комбінації з іншими наборами плиток, наприклад 13 сиріт у класичних китайських правилах.

Правила перемоги

  Правила переможця застосовуються до всієї комбінації, але лише для переможця. Це стосується більшості особливих комбінацій. Такі правила не повинні визначати точку кількість плиток.

Параметри

  Тут ви знайдете декілька спеціальних параметрів, зокрема параметрів очок обмеження комбінації.

Штрафи

  Штрафи застосовуються користувачем вручну

#### Порядок виконання

- побудова списку правил, починаючи з правил комбінування і правил комбінацій

- використання правил маджонґ для перевірки, чи є проголошена переможцем комбінації переможною насправді.

- додавання правил переможця для переможця

- якщо якісь зі знайдених правил мають позначку дії «&absolute;», зберегти лише ці правила. У поточній версії поведінку програми у разі виявлення декількох таких правил ще не визначено.

- якщо якісь з правил визначають обмеження, відкинути решту

- застосування всіх знайдених правил у відповідному порядку

### Визначення

Визначення складається з одного рядка, оскільки автори програми бажали спростити збереження його у базі даних. Визначення складається з декількох частин, відокремлених парою символів «||». Кожна з частин визначає або умову застосування правила або вказує на певні дії. Для однієї дії можна використовувати лише одну частину, але частин умов може бути декілька. Правило буде застосовано, якщо для комбінації виконується принаймні одна з умов.

&kajongg; постачається з попередньо визначеним набором правил, який реалізує класичні китайські правила, визначені німецькою DMJL. У цих наборах ви знайдете багато прикладів.

Ось всі частини, які розпізнає програма:

Зміна регістру літер у формальному виразі

  Частина, що починається з I є формальним виразом без врахування регістру символів виразу.

Дія

  Частина, що починається з A, є списком дій (Actions).

Вираз, введений вручну

  Частина, що починається з літери «M», це додаткова можливість визначення Формального виразу. Для обчислення рахунків гри вручну нею визначається, чи може правило бути вибраним користувачем за допомогою позначення відповідного пункту. Початкова літера M не є частиною формального виразу. Прикладом може бути правило «Остання плитка, взята з мертвої стіни».

Функція

  Частина, що починається з F, є функцією. Іноді використання формальних виразів призводить до надмірного ускладнення або сповільнення роботи. У таких випадках правило слід додати до самого коду програми. Посилання на нього відбуватиметься за назвою функції. У поточній версії програми визначено лише одну функцію, `LastOnlyPossible`. Ця функція визначає, чи була остання плитка єдиною можливою плиткою для виграшу.

Формальний вираз

  Всі інші частини вважатимуться Формальним виразом.

### Формальними виразами

Формальні вирази — це дуже потужний інструмент програмування відповідності рядків з символів. Потужний, але досить складний. Він заскладний для рядового гравця. Про формальні вирази написано цілі грубі книжки.

Існує декілька діалектів формальних виразів. &kajongg; написано мовою програмування Python. Оскільки стандартна бібліотека Python містить модуль для роботи з формальними виразами, автори програми скористалися саме цим модулем.

Докладніші відомості можна знайти тут:

Всі дані щодо комбінацій, які можуть вплинути на рахунок має бути закодовано у єдиному рядку. Після цього &kajongg; перевірятиме відповідність рядка формальному виразу. Якщо рядок відповідатиме формальному виразу, буде застосовано правило.

Ось приклад (наведений формальний вираз відповідає граничній комбінації «Всі зелені»):

    ( |[bB][23468]|[dD]g)*[fy/]

#### Структура рядка комбінації

Вміст рядка комбінації не залежатиме від мови, якою ви користуєтеся у програмах стільничного середовища.

Рядок, що відповідає комбінації, що складається з декількох частин, відокремлених пробілами. Порядок цих частин завжди однаковий, окрім частин комбінацій на початку.

Програма &kajongg; здатна впорядковувати приховані плитки у групи для того, щоб підвищити цінність комбінації. Початкове впорядкування прихованих плиток не вплине на результати роботи програми. Але за умови обмеження комбінацій подібне перевпорядкування може і не спрацювати. Ось чому спочатку &kajongg; виконує обчислення за впорядкуванням, вказаним користувачем, а вже потім намагається перевпорядкувати плитки. У обох варіантах буде застосовано всі правила. Програма використає варіант з найвищим загальним рахунком.

Тут наведено приклад. Насправді наведено один рядок, але його розбито на декілька рядків для того, щоб його легше було читати. Крім того, рядок один раз повторено, оскільки деякі з формальних виразів набагато простіше записати, якщо порядок їх частин буде змінено. Прикладом є правило пограбування конгу: використання його формального виразу призводить до пошуку спочатку групи L (остання плитка або Last Tile), а вже потім до пошуку комбінацій.

    c1c1c1C1 s1s2s3 b6b6b7b7b8b8 b5b5 fn yn
    /c416s000b000b000b200 -C416s000b000b000b200 %n Mneka LB5B5B5

Кожна плитка складається з 2 символів. Першим з них є s — камінь, b — бамбук, c — символ, w — вітер, d — дракон, y — бонус пори року, f — бонус квітки. Другим є 1..9 — масті, e,s,w,n — вітри, w,r,g — дракони (білий, червоний, зелений) і 1,2,3, 4 — бонусні плитки. Перший символ відкритих плиток є літерою у нижньому регістрі, приховані плитки позначаються літерами верхнього регістру.

У цьому порядку завжди, окрім частини «Остання плитка», яка існує лише у комбінації переможця, присутні наведені нижче частини.

Комбінація

  Частина, що починається з будь-якого з символів рядка `sbcdwSBCDW` є групою. У групі міститься будь-яка кількість плиток. &kajongg; розбиватиме групи з завеликою кількістю плиток, щоб якомога збільшити рахунок гравця.

  Для конгів було використано особливий синтаксис: c1c1c1c1 — відкритий конг. c1c1c1C1 — відкритий конг, четверту плитку було оголошено, вона завершила прихований панг. Подібний синтаксис потрібен для гри з обмеженням «гра з прихованим справжнім кольором». c1C1C1c1 — прихований оголошений конг. C1C1C1C1 — прихований неоголошений конг. Але, оскільки конг не було оголошено, він вважатиметься пангом. Отже, цю групу буде розбито на панг C1C1C1 і окрему плитку C1.

  Бонусні плитки слід вказувати після всіх інших комбінацій.

Резюме

  Частина, що починається з символу / містить резюме щодо груп. За допомогою цієї частини простіше записувати деякі з формальних виразів. Кожній групі відповідає чотири символи. Перший символ — це один з символів рядка `sbcdwSBCDW`, знову ж таки, літерами нижнього регістру відповідають відкриті, а верхнього — приховані. Другий символ позначає кількість плиток у групі. Значення від 1 до 4 визначають конг. Значення 0 відповідає чоу. Останні два символи вказують на виграшні очки цієї групи.

Альтернативний підсумок

  Ця частина, що починається з «-», тотожня до попереднього резюме, але містить проголошені конги як приховані. За використання деяких з правил, зокрема «Три приховані понги», проголошені конги вважаються прихованими.

Довжина комбінації

  Ця частина починається з % і містить дані щодо довжини комбінації: s — коротка комбінація, у якій занадто мало плиток, n — точна кількість плиток, l — довга комбінація з багатьма плитками.

Маджонґ

  Частина, що починається з літери m, M або x містить додаткові відомості. M позначає комбінацію переможця, m — невдахи, x — для гравця, якому заборонено оголошувати маджонґ. Символ після M/m/x вказує на власний вітер гравця, наступний — переважний вітер гравця, наступний — джерело останньої плитки, що призвела до утворення маджонґу (виграшу) і ще один символ — оголошення, які було зроблено гравцем.

  Це можливі походження останньої плитки: w=wall (стіна), d=discarded (викинута плитка), e=dead end (заблокований кінець), z=last tile of living end (остання плитка з незаблокованого кінця), Z=last tile of living end, discarded (остання плитка з незаблокованого кінця, відкинута), k=robbing the kong (пограбування конгу), 1=blessing of heaven/earth (благословення небес/землі). Значення «w» і «d» є особливими — вони є різновидом проміжних значень. Якщо останньою плиткою буде обрано приховану плитку, значенням походження буде w. Крім того, деякі з правил застосовуються, лише якщо плитка походить зі стіни. Отже за допомогою визначення походження можна звузити перелік застосовних правил, що задаються вручну. Щоб зрозуміти це краще, будь ласка, прочитайте про правила, що задаються вручну, та про дію &lastsource;.

  Ось можливі оголошення: a=оголошення на початку, t=подвійний успіх.

Попередня плитка

  Частина, що починається літерою L, містить дані щодо останньої плитки. Вона містить символ останньої плитки, за яким слідує назва групи, яку було завершено останньою плиткою. Остання група потрібна для правила «Остання плитка є єдиною можливою», оскільки іноді одного знання останньої плитки виявляється недостатньо. Зауважте, що останньою групою не може бути конг, оскільки, якщо вона завершує конг, вам доведеться брати плитку-замінник.

Комбінація з перевищенням кількості оголошень

  Цю можливість ще не реалізовано, але вона може знадобитися для правил, подібних до визначених BMJA (у Англії). Частина, що починається літерою «K» містить перелік всіх плиток, які слід перевірити для обчислення очок для комбінації з перевищенням кількості оголошень. Можна, звичайно, скористатися простим перебором, але це потребуватиме забагато машинного часу.

### Дії

Всі дії правила визначаються одним рядком. Окремі дії відокремлюються пробілами. Деякі з них визначаються числовими значеннями.

&payforall;

  Гравець зробив щось дуже підступне, отже має розплатитися за всіх. Це не штраф, оскільки сума сплат не змінюється, — змінюється лише гравець, який сплачуватиме. Крім того, інші два гравці (окрім переможця і невдахи) нічого не обмінюються сплатами взагалі.

&payers;=X

  Визначає кількість платників, яких стосується це правило штрафу. X має бути числом.

&payees;=X

  Визначає кількість отримувачів, яких стосується це правило штрафу. X має бути числом.

&absolute;

  Ця дія визначає абсолютну суму сплати. Рахунок комбінації буде проігноровано. Використовується для правил штрафів.

&lastsource;

  Ця дія визначає походження останньої плитки. Використовується у правилах, заданих вручну, зокрема «остання плитка з заблокованого кінця». Встановлення походження останньої плитки є фільтром для інших правил, якщо їх слід задіяти лише за умови певного походження плитки. Звичайно ж, інші правила також можуть бути правилами, визначеними вручну. За допомогою цього правила можна зменшити кількість правил, які буде показано користувачеві у діалоговому вікні результатів. Якщо це пояснення видається вам незрозумілим, просто пограйтеся з діалоговим вікном результатів, щоб зрозуміти причину появи або зникнення полів цього діалогового вікна залежно від походження останньої плитки.

## Відомі проблеми

- У поточній версії гравці не можуть самі створювати облікові записи на сервері гри.

- У режимі гри не передбачено штрафів.

- Комп’ютерні гравці все ще грають доволі слабко.

- Не можна змінювати імена комп’ютерних гравців.

## Можливі майбутні можливості

- Додавання власних наборів правил. Цією можливістю можуть скористатися гравці, які користуються цими правилами регулярно.

## Часті запитання

Я хочу змінити вигляд цієї гри. Як це зробити?

Щоб змінити зовнішній вигляд вікна &kajongg;, скористайтесь пунктом меню, який відкриває інструмент налаштування.

Чи можна скористатися клавіатурою для призначення плиток гравцям?

Так. Див. розділ Обчислення рахунка за допомогою &kajongg;

## Подяки і ліцензія

&kajongg; для &kde;

Авторські права на програму належать Wolfgang Rohdewald wolfgang@rohdewald.de, 2009, 2010, 2011.

Авторські права на документацію належать Wolfgang Rohdewald wolfgang@rohdewald.de, 2009, 2010, 2011.

Переклад українською: Юрій Чорноіванyurchor@ukr.net

&underFDL; &underGPL;

## Література

- Das Chinesische Mah-Jongg-Spiel by Uwe Martens 2005, Books on Demand GmbH, Norderstedt. У цій чудовій книзі німецькою ви знайдете все про правила, що використовуються у Німеччині, та багато інших аспектів гри.

- The Complete Book of Mah-Jongg by A. D. Millington, 1977 (with several paperback editions up to 2003), Weidenfeld & Nicolson, London. Повноцінний довідник щодо класичного китайського маджонґу, згідно до правил, що використовуються у західному світі. У цій книзі ви знайдете цінні поради щодо стратегії гри.

- Mah-Jong by Gwyn Headley and Yvonne Seeley, 3rd edition, 2008, A & C Black Publishers Ltd., London. Ця книга є дуже простим у користуванні довідником, у якому описано правила, що використовуються у Великобританії. Ці правила розроблено BMJA (British Mah Jong Association).

## Встановлення

Скористайтеся пакунком .deb з адреси . Якщо цей спосіб вам подобається, ви можете звантажити kajongg-x-y.tar.gz за тією ж адресою і виконати команди:

    tar xfz kajongg-x-y.tar.gz
    cd kajongg-x-y
    ./setup.py install

У обох випадках вам слід самостійно переконатися, що встановлено деякі інші потрібні пакунки. У пакунку для Debian ще не міститься цих пакунків. Для &kajongg; потрібні: (відповідні пакунки Debian зазначено у дужках)

- Ігрова бібліотека KDE4 (libkdegames5)

- Python 2.5 або новіша версія (python)

- QT4.4 або новіша версія (libqt4-core, libqt4-gui, libqt4-svg, libqt4-sql, libqt4-sql-sqlite)

- Прив’язки Python до QT4 (python-qt4, python-qt4-sql)

- Прив’язки Python до KDE4 (python-kde4)

- Бібліотека Python twisted (python-twisted-core)

- sqlite3 (libsqlite3-0)

&documentation.index;