# The &kappname; Handbook

Wolfgang
Rohdewald
wolfgang@rohdewald.de
Marek
Laane

    bald@smail.ee

Tõlge eesti keelde
2010-03-19
&kappversion;

This documentation describes the game of &kappname; version &kappversion;

KDE
kdegames
mäng
kajongg
lauamäng
arkaadmäng
klotsimäng
kivid
neli mängijat

## Sissejuhatus

### Mängu tüüp:

lauamäng, arkaadmäng

### Mängijate arv:

Neli

&kajongg; is a board game created after the famous oriental game of Mahjong (from Chinese 麻將). It is played by four players. Worldwide many different rulesets are in use. Right now &kajongg; supports the Classical Chinese rules as played in Germany, eventually other main rulesets will follow. It is possible to customize or add new rulesets. Please do so and send them to the program author for integration!

&kajongg;i võib kasutada kahel viisil: mängu tulemuste määramine käsitsi, millisel juhul mäng käib nagu ikka, ilma arvuti abita, ning &kajongg;i kasutamine tulemuste arvutamiseks ja arvepidamiseks. Teine võimalus &kajongg;i kasutada on mängida mis tahes inim- ja arvutimängijate kombinatsiooni vastu.

## Mängu välimus

&kajongg;i pilt Pilt

Mänguakna osade lühike selgitus.

Tööriistariba

  Tööriistariba asub menüüriba all ja sisaldab kõige sagedamini vaja minevate toimingute nuppe. Tööriistariba sisu saab muuta. Samuti võib selle peita, mis annab mänguväljale veidi rohkem ruumi.

Mängulaud

  Mängulaud on akna suurim osa. Seal on näha neli 18 kivi pikkust müüri (pikkus võib ka veidi erineda sõltuvalt reeglitest, näiteks sellest, kas kasutatakse boonuskive või mitte). Müürile on kirjutatud mängijate nimed ning (hetkel teadaolev) jaotuse väärtus, samuti on seal näha mängijate tuulekivi. Valitseval tuulel on värviline taust - ülal toodud pildil on see nii ida (E) puhul.

  Mängimise ajal paiknevad seespool müüri mängijate ära visatud kivid. Need paiknevad suvaliselt. Viimati ära visatud kivi ümber on näha sinine raam.

  Mängu tulemuste käsitsi määramise korral on seespool müüri näha kõik saadaolevad kivid. Need võib määrata mängijatele hiirt või klaviatuuri kasutades.

Mängija ala

  Iga mängija ees on ala, kus paiknevad tema kivid. Ülemises reas on näha paljastatud, alumises varjatud kivid. Mängu tulemuste käsitsi määramise korral näidatakse varjatud kive kogu kivi katva varjuga. Boonuskivid paiknevad paremas servas.

Dialoog

  Dialoog näitab valikuid, mida mängija saab kasutada. Enamasti lisandub neile edenemisriba, mis näitab, kui palju on mängijal jäänud aega valik langetada.

Statusbar

  The Statusbar is located at the bottom of the screen and contains the current totals for the players.

## Mängu tulemuste käsitsi määramine

Selles režiimis on &kajongg; kasutusel ainult tulemuste määramiseks. Mäng ise käib, nagu ikka, tõeliste inimestega tõelise mängulaua taga ning mängu lõpus tuleb anda &kajongg;ile teada, millised kivid mängijatel olid, ja kõik muu, mida &kajongg; vajab tulemuste arvutamiseks. Teine võimalus on muidugi tulemused käsitsi paberil välja arvutada ning nad siis rakendusse sisestada. Seejärel jagab &kajongg; mängijate vahel punktid ja kirjutab tulemused andmebaasi. Mängu on võimalik peatada, käivitada uue mängu teiste mängijatega või jätkata vana mängu mängimist. Kõik reeglid salvestatakse koos mänguga, mistõttu on võimalik eri mänge mängida eri reeglitega.

- Vali menüükäsk Mäng / Määra mängu tulemused käsitsi või vajuta klahve &Ctrl;C.

- Nüüd võid valida kas olemasoleva lõpetamata mängu või alustada uut mängu. Viimasel juhul palutakse sul määrata mängijad ja valida reeglid. &kajongg; pakub välja eelmise mängu väärtused. Kui eelmist mängu pole, pakutakse välja esimesed neli defineeritud mängijat. Pane tähele, et reeglistikku ega ühtegi selle reeglit ei saa pärast valikut enam muuta. Küll saab seda teha eelnevalt reeglite redaktoris.

- Siis ilmub uus aken nimega "Selle jaotuse tulemused". Lähemalt kõneleb sellest osa Tulemuse arvutab &kajongg;.

- Jaotuse tulemuste salvestamise järel saad edasi minna järgmise jaotuse juurde.

### Jaotuse tulemuste sisestamine

#### Tulemused

&kajongg;i pilt
Pilt

Selles aknas saab sisestada jaotuse tulemused. See ilmub automaatselt nähtavale, kui &kajongg; arvab, et sul läheb seda vaja. Seda saab lasta näidata või peita kiirklahviga &Ctrl;S või vastava menüükäsuga.

Nagu ikka, on valitseva tuule taust värviline.

Siin saab käsitsi sisestada kõigi mängijate tulemused. Teine võimalus on täpselt kindlaks määrata, millised kivid olid igal mängijal käes. Sellisel juhul muutub vastav käsitsi määratud tulemuse väärtuse väli halliks: &kajongg; arvutab tulemuse automaatselt välja.

After having entered all relevant data for a hand, press the button Save hand. The hand values will be entered in the data base, and they are also entered in the score table. You might be prompted to change the seating positions of the players but you can choose not to change seats. The proposed changes are currently not customizable - if a ruleset needs something different, we will change that.

If the player might have won, the checkbox in the column "Winner" will be enabled - click this for the winner.

Olekuriba uuendatakse, nii et see näitab mängijate tulemusi, ning sa saad edasi minna järgmise jaotuse juurde.

##### Tulemuse käsitsi sisestamine

Hea mängija võib eelistada tulemuse isiklikku arvutamist. Sel juhul võib selle otse sisestada. See on võimalik ainult siis, kui antud mängija puhul pole valitud ühtegi kivi.

Tulemuse käsitsi sisestamisel peab see sisaldama kõike peale karistuste, siin ei ole mingeid valitavaid reegleid. On siiski üks erand, nimelt "ohtlik mäng". See ei mõjuta mingeid tulemusi ega ole karikkumine. See tähendab lihtsalt, et punktide jagamine mängijate vahel toimub teistmoodi: rikkuja peab maksma kõik võitjale. Teised kaks mängijat selles ei osale. Praegu ei saa seda kuidagi kohandada.

##### Tulemuse arvutab &kajongg;

Kui annad &kajongg;ile otse teada, millised kivid mängijatel olid, on aknas tulemuste sisestamine võimatu. Lisades mängijale kive, näed, kuidas tema tulemused muutuvad - aga niipea, kui oled lisanud 14. kivi, muutub tulemus nulliks. See võib algul üllatada, aga kui sa ei märgi seda ühtlasi võitvaks jaotuseks, peetakse seda niinimetatud pikaks käeks, mis annab alati null punkti. Nii on see määratletud klassikalise hiina reeglistikuga, teistes reeglistikes võib muidugi teisiti olla.

Kive ja kombinatsioone saab seostada mängijaga kas hiire või klaviatuuri või mõlema abil. Hiirega lihtsalt lohista kivid mängija alasse. Sel juhul küsitakse, kas soovid liigutada üksikut, paari, pungi, kongi, nõueldud kongi või chow'd. Ülemine rida on paljastatud, alumine varjatud kividele. Boonuskivid on näha paremas servas. Kive ja kombinatsioone võib liigutada ka ridade või mängijate vahel ning tagasi kesksesse valikualasse.

If you prefer using the keyboard, you can use &Tab; to move between the central selector and the player regions. The keys eswnESWN move a tile to the players East, South, West and North. The keys xX move it back to the central selector. ESWN moves to the concealed row, eswn moves to the exposed row. You can move the cursor between tiles or melds using the arrow keys, the currently selected tile or meld has a blue frame. Since the key arrows are far away from letters on the keyboard, you can also use the letters hjkl or HJKL for moving the cursor. hH move left, jJ move down, kK move up, lL move right. This is how the unix editor "vi" does it. The KDE browser konqueror and even this help program also support those keys in the same way. Those keys may differ if you use a language other than English but it is currently not possible to configure them.

Valikuid "Viimane kivi" ja "Viimane kombinatsioon" on vaja mõningate reeglite puhul (nt. "viimane kivi lõpetab paari"). Neid saab kasutada ainult võitva jaotuse korral.

Akna parempoolses osas saab käsitsi rakendada mõningaid reegleid. Millised reeglid seal näha on, sõltub kehtivast reeglistikust ja kividest. Ülal näidatud pildil võib kaotanud mängijatele rakendada valikut "ohtlik mäng", aga ka see sõltub kehtivast reeglistikust ja mängijate kividest. Arendajate eesmärk on hoida käsitsi valitavate reeglite nimekiri nii lühike kui võimalik. Parimal juhul peaks &kajongg; olema alati võimeline automaatselt tuvastama, milliseid reegleid on vaja rakendada, aga mõnikord pole &kajongg;il selleks piisavalt teavet või teadmisi.

#### Karistused

&kajongg;i pilt
Pilt

Tulemuste käsitsi sisestamise akna nupp Karistused avab akna, kus saab sisestada karistusi. Seda võib teha igal hetkel, sõltumata tavalisest tulemuste arvestamise mehhanismist.

The offense selection shows all offenses that might be applicable to the hands the players hold. Choose among them.

Seejärel saab täpsustada Kogukaristust. See on kogusumma, mida rikkuja peab teistele tasuma. See jagatakse saajate vahel võrdselt.

Sõltuvalt rikkumise tüübist on tasujate ja saajate arv erinev. Igal juhul näidatakse õiget arvu mängijaid. Mängija valimise korral kontrollib &kajongg;, et see mängija esineks ainult ühel korral, kohandades vastavalt teisi mängijaid.

## Mängimine

### Mängimine arvuti vastu

First you will get a login dialog. Enter the game server you want to connect to and your user name. If you choose the special entry "Local Game", you only need to enter your name (or accept the proposed name) and the wanted ruleset. This will immediately start a local game where you play against 3 robot players.

### Mängimine sõpradega

Kui soovid mängida tõeliste inimestega, siis läheb vaja mänguserverit, millega kõik mängijad, kaasa arvatud sina ise, peavad olema ühendatud. Selleks vali mõni server või sisesta käsitsi uue serveri nimi ning määra oma parool selles serveris. Vaikimisi pakutakse välja viimati kasutatud parool.

Kui sul ei ole antud serveris sisestatud kasutajanimele vastavat kontot, päritakse sinu käest, kas soovid konto luua. Kui vastad jaatavalt, näed järgmist dialoogi, kus tuleb soovitud parool kaks korda sisestada. Konto luuakse nüüd automaatselt.

Pärast edukat sisselogimist mänguserverisse, näed serveri laudade nimekirja koos vabade kohtadega. Liitu mõne lauaga või loo endale uus laud. Kui lood uue laua, tasub oodata, kuni teised mängijad võtavad selle taga kohad sisse. Siiski võib uue laua taga ka kohe mängima hakata, sel juhul täidavad tühjad kohad robotmängijad.

Laudade nimekirjas on näha iga laua taga kasutatav reeglistik. Reeglistiku ja selle nime saadab mänguserverisse mängija, kes laua lõi. Kui sul juhtub olema samasugune reeglistik, näitab laud reeglistiku juures sinu nime - sellest võib olla abi, kui laua looja peaks kõnelema mõnda muud keelt ja on reeglistiku kuidagi teisiti nimetanud. Kui sinu kohaliku reeglistiku nime näidatakse, on see esitatud mustana. Kui sul aga pole samasugust reeglistikku, näeb nime punasena ning sa võid nupu Võrdle abil võrrelda seda enda reeglistikuga.

You can start the Kajongg game server in two different ways:

- loo ühendus serveriga "localhost". See on sinu enda arvuti. Kui sa seda teed ja mänguserver ei tööta, käivitatakse see automaatselt. Kui sa aga mängimise lõpetad, peatatakse ka serveri töö.

- käivita käsitsi server mis tahes arvutis. Selleks tuleb lihtsalt minna käsureale ja käivitada programm "kajonggserver". Käsuga "kajonggserver --help" näeb kõiki võimalikke võtmeid, näiteks saab muuta vaikimisi porti 8149. Server töötab seni, kuni selle töö lõpetad.

In both cases you need to tell the other players how they can reach your game server. They need the URL or simply an IP address and the port your server is listening on. This might be something like "mypc.dyndns.org:8149" where 8149 is the port. Of course you need to configure your firewall such that the remote player can reach that port. The communication will be encrypted.

Võimalike vigade esinemisel oleks mõttekas kasutada võtit "--showtraffic". See näitab sulle konsoolis, kus mänguserver on käivitatud ning millised sõnumid liiguvad mänguserveri ja klientide vahel.

#### Hoiatus

- Kui tahad olla kindel, et ükski inimmängija ei peta, peaks sul olema ligipääs arvutile, milles mänguserver töötab. Loomulikult ei ole võimalik takistada näiteks kahel mängijal kokku mängimast ja teineteist abistamast, õieti ei saa isegi seda kontrollida, kas kaks mängijat on ikka kaks või üks ja seesama inimene.

### How to play

Sinu käest päritakse, mida soovid teha. Sõltuvalt akna suurusest on selleks mõeldud väike dialoog kas akna paremas või allservas. Kui akna laius ületab kõrgust, näeb dialoogi paremal. Mõnikord näeb dialoogis aega: kui see saab täis, valitakse automaatselt esimene võimalik vastus. Aegumist saab seadistada reeglite redaktoris (Valikud, Nõudluse aegumine). Aegumine on ühesuguse pikkusega kõigile mängijatele, seepärast ongi see reeglistiku osa.

Kui pead valima mõne käes oleva kivi, võid nende vahel liikuda paremale ja vasakule liikuvate nooleklahvidega või tähtedega h ja l. Loomulikult võib seda teha ka hiirega.

Sageli pakub dialoog valikuid, mida sa tegelikult ei saa kasutada, näiteks võimalust kuulutada välja pung, ehkki sul pole selleks vajalikke kive. See on sihilik, et kõik oleks täpselt nagu tõelises mängus.

Ära visatud kivid asetatakse juhuslikult sissepoole müüri. Mõnes mänguvariandis on ka kindlaks määratud, kuhu kivid asetada, aga see pole veel seadistatav. Kui see muutub seadistatavaks, hakkab see seadistus kuuluma reeglistikku.

## Liidese tutvustus

### Menüü Mäng

Mäng Määra mängu tulemused käsitsi

  See on mõeldud ainult mängitud mängu tulemuste käsitsi sisestamiseks.

  Vastavalt soovile võib laadida vana mängu või alustada uut. Vaikimisi näidatakse valikunimekirjas ainult ootel, s.t lõpetamata mänge. Lisavõimalusena saab lasta näidata kõiki mänge, ka neid, mis on lõpetatud. Siin saab ka mänge kustutada.

Mäng Mängi

  Võimaldab mängida teiste, nii inimeste kui ka arvutitega.

Mäng Katkesta

  Katkestab aktiivse mängu. Kui tegemist oli ainult mängu tulemuste sisestamisega, saab seda hiljem jätkata. Kui aga mängid &kajongg;i abil, siis selliseid mänge veel taastada ei saa.

Mäng Välju

  Lõpetab &kappname;i töö.

### Menüü Vaade

Vaade Tulemused

  Tulemuste dialoog: näitab või peidab tulemuste dialoogi. Seda selgitatakse lähemalt siin.

Vaade Edetabel

  Score Table Score Table Screenshot Show the score table. The leftmost column with the values E,S,W,N shows the player wind. The prevailing wind (the round wind) has a yellowish background. The winner has a green background in the Score column. The ∆ column shows how much the player paid to or received from all other players with this hand. The ∑ column shows the balance. The hints give you more details: They show all rules that have been applied to this hand.

  The lower part shows the used ruleset. Between the score table and the used rule you can find a splitter letting you change the relative sizes of both parts.

Vaade Tulemuste selgitus

  Tulemuste selgitus Edetabel Edetabel Selgitab, kuidas arvutati aktiivse jaotuse tulemused.

### Menüü Seadistused

Seadistused Mängijad

  Võimaldab lisada, muuta ja kustutada mängijaid.

Seadistused Muuda vaatenurka

  Võimaldab muuta kivide vaatamise nurka vastupäeva.

Seadistused Täisekraanirežiim

  Võimaldab lülitada täisekraanirežiimi ja tavalise aknarežiimi vahel.

Seadistused Tööriistariba näitamine

  Näitab või peidab tööriistariba.

Seadistused Olekuriba näitamine

  Shows or hides the Statusbar.

Seadistused Kiirklahvide seadistamine...

  Avab &kde; tavapärase kiirklahvide seadistamise dialoogi, kus saab muuta &kappname;is kasutatavaid kiirklahve.

Seadistused Tööriistaribade seadistamine...

  Avab &kde; standardse dialoogi, kus saab muuta tööriistaribal näidatavaid ikoone.

Seadistused &kappname;i seadistamine...

  Avab &kappname;i seadistustedialoogi.

### Menüü Abi

&help.menu.documentation;

## Mängu seadistamine

Seadistustedialoog
Seadistustedialoog

Menüükäsk Seadistused&kappname;i seadistamine... avab &kappname;i seadistustedialoogi.

Kui klõpsata nupule Loobu, tühistatakse kõik seadistustesse tehtud muudatused, kaasa arvatud need, mida oled teinud reeglite redaktoriga.

Eri kaarte saab valida ka klaviatuuri abil: &Ctrl;1 valib esimese kaardi Mäng, &Ctrl;2 teise kaardi ja nii edasi.

### Mängu valikud

Kivide varju näitamine

  Sisselülitamise korral näidatakse kivide piirdeid ja varje. Samuti jääb kiviridade vahele veidi ruumi ning müüri kive näidatakse nii, et on selgelt näha, et see on kahe või kolme kivi kõrgune. Väljalülitamise korral on vaade lihtsam ja kivid natuke suuremad. See valik võib olla kasulik väiksema arvutiekraani korral.

Paljastamata kivide korraldamine kombinatsioonidesse

  Sisselülitamise korral rühmitatakse käes olevad kivid kombinatsioonidesse. Mõnikord ei pruugi rühmitamine olla just selline, nagu sulle meeldib, nii et selle võib ka välja lülitada, mis matkib tõelist mängu.

Võimalusel helide kasutamine

  Sisselülitamisel on võimalik kuulata ära visatud kivide nimesid ja nõudlusi. Kui teised mängijad on salvestanud oma häälega helifailid, on neid võimalik kuulda.

Teised võivad minu häält kuulda

  Kui oled salvestanud oma häälega helifailid, siis selle valiku sisselülitamisel kuulevad teised mängijad sinu ära visatud kive ja nõudlusi sinu häälega.

#### Heli

Võimalik on salvestada helifailid oma väljaütlemistega, mida teised mängijad saavad kuulda. Selleks on vaja siiski veidi vaeva näha:

- First you need to find out where to store your voice files. This directory normally is ~/.kde/share/apps/kajongg. So if your login name is joe, this might be /home/joe/.kde/share/apps/kajongg. In there you will also find the database kajongg.db.

- In the directory you just found, generate a new subdirectory with the name `voices`.

- In the directory `voices` generate another subdirectory with your player name. This is the name you use when connecting to a game server. You may also want to define voices for the players `ROBOT 1`, `ROBOT 2`, `ROBOT 3`.

- In that subdirectory, you can place the sound files. They have to be encoded with the Ogg Vorbis audio compressor, the file names need to have the extension `.ogg`.

- Failinimed peavad olema näiteks `s3.ogg`, mis antud juhul vastab kivile 3. Sellised failid tuleks luua kõigi kivide ning võimalike nõudluste ja väljakuulutamiste tarvis.

Palun kontrolli, et heli kestus oleks lühike, aga see kõlaks selgelt - mäng võib minna väga kiirelt, kui oled selle käppa saanud. Lihtsam on kõigepealt panna kirja kõik helid, mida sinu arvates vaja läheb. Ära loe neid üksteise järel, vaid püüa iga heli välja öelda, nagu see oleks ainuke, ja nii, nagu see võiks kõlada, kui oled mänguhoos. Väljaütlemine võib nõuda veidi harjutamist.

Toome ära ühe võimaluse helifailide loomiseks:

- Salvesta helifailid programmiga `qarecord` ja kindlasti `WAV`-vormingusse. Kõnele selles ühes helifailis kõik helid.

- Redigeeri faili heliredaktoriga `audacity`. Kasuta redaktoris hiirt helilainete vahemiku märkimiseks. Redaktor esitab valitud osa. Korda, kuni oled valinud korrektse osa. See võib olla lihtsam menüükäsuga Vaade Suurenda. Kasuta menüükäsku Fail Ekspordi valik ja salvesta ogg-vormingusse. Valikute all vali madal kvaliteet - see on piisav ja isegi soovitav, sest nii väheneb heli teistele mängijatele edastamise aeg.

Allpool on ära toodud failide nimed, mida sul tuleks luua. Alati lisa neile faililaiend `.ogg`:

##### Helifailide nimed

&s1; .. &s9; | Kivid 1 kuni 9
&b1; .. &b9; | Bambused 1 kuni 9
&c1; .. &c9; | Märgid 1 kuni 9
&we; &ws; &ww; &wn; | Tuuled - ida, lõuna, lääs, põhi
&db; &dr; &dg; | Draakonid - sinine/valge, punane, roheline
&chow; &pung; &kong; &mahjongg; | Peamised nõudlused
&originalcall; &violatesoriginalcall; | Algkäik ja selle rikkumine
&dangerousgame; | Mängija kaotab kontrolli (ohtlik mäng)
&nochoice; | Mängija kuulutab, et tema ainuke valik on mängida ohtlikult

### Kivide valikud

Kivide valija
Kivide valija

Kivide valija abil saab valida kivide graafilise välimuse.

### Tausta valikud

Tausta valija
Tausta valija

Tausta valija võimaldab valida mängulaua tausta graafilise välimuse.

Mõned taustad, näiteks Hiina maastik, nõuavad laadimiseks veidi aega. Kui arvad, et rakendus peaks käivituma kiiremini või et peaakna suuruse muutmine võtab liiga kaua aega, proovi mõnda muud tausta.

### Reeglite redaktor

Reeglite redaktor
Reeglite redaktor

Reeglite redaktoriga saab kohandada reeglistikke. Valmisreeglistikke näidatakse kaldkirjas, kohandatud reeglistikke tavalises kirjas. Valmisreeglistikke ei saa kasutaja kuidagi muuta, küll võib seda teha &kajongg;i uuendamine. Kohandatud reeglistikke uuendamisel ei muudeta.

Uue mängu käivitamisel on võimalik valida selle reeglistik. Kasutada saab kõiki reeglistikke, mis on defineeritud reeglite redaktori abil. Reeglistik salvestatakse koos mänguga, nii et siin võib reeglistikke alati muuta - muudatused mõjutavad ainult edaspidiseid mänge.

#### Reegel, tulemus ja ühik

Tee lihtsalt topeltklõps sellel, mida soovid muuta.

#### Definitsioon

Reegli definitsioon võib olla päris keeruline. Seda seletab lähemalt eraldi peatükk Reegli defineerimine. Tavaliselt ei ole põhjust definitsiooni muuta. Põhimõtteliselt määrab see kindlaks, millise jaotuse korral antud reegel rakendub.

#### Kopeerimine ja eemaldamine

Kopeerida võib kogu reeglistikku või ainult selle üht reeglit. Et valmisreeglistikke muuta ei saa, saab üksikreegleid kopeerida ainult kohandatud reeglistikesse.

Soovi korral võib eemaldada kogu kohandatud reeglistiku või ainult kindla reegli. Ka seda võib teha siis, kui mõni olemasolev mäng kasutab muudetavat reeglistikku, sest nagu öeldud, salvestatakse reeglistik koos mänguga. Soovi korral võib näha vanade mängude reeglistikke: laadi vana mäng ja vaata selle tulemusi.

#### Võrdlemine

Reeglistiku võrdleja Reeglistiku võrdleja Võrdlemiskäsku saab kasutada, kui valitud on terve reeglistik. See võimaldab võrrelda üht reeglistikku teisega.

### Vaikimisi kiirklahvid

The menu entry Settings Configure Shortcuts... allows you to change the default keyboard bindings.

The default keybindings are as follows:

F1

  Avab käesoleva käsiraamatu.

&Ctrl;C

  Mängu tulemuste käsitsi määramine.

&Ctrl;N

  Mängimine sõpradega või arvutimängijatega.

&Ctrl;W

  Aktiivse mängu katkestamine.

&Ctrl;Q

  Rakendusest väljumine.

&Ctrl;T

  Edetabeli avamine.

&Ctrl;G

  Vaatenurga muutmine.

&Shift;F1

  "Mis see on?" abi

&Ctrl;&Shift;F

  Täisekraanirežiim

## Reegli defineerimine

Tulemuste mootorit ja veel paljusid &kajongg;i omadusi saab kohandada reeglite redaktoriga. Reegel koosneb nimest, tulemusest (kaasa arvatud ühikust) ja definitsioonist.

### Reeglirühmad

Reeglitel on mitmeid rühmi:

Kombinatsiooni reeglid

  Kombinatsiooni reeglid rakendatakse konkreetsele kombinatsioonidele sõltumata ülejäänud jaotusest.

Jaotuse reeglid

  Jaotuse reeglid kehtivad kogu jaotusele ja kõigile mängijatele.

Mah Jongg Rules

  Mah Jongg rules specify how a winnable hand has to look like. This is normally four melds with 3 or 4 tiles each and a pair. But special hands may look differently, for example the 13 Orphans in Classical Chinese.

Võitja reeglid

  Võitja reeglid kehtivad kogu jaotusele, aga ainult võitjale. See sisaldab enamikku erilisi jaotusi. Neid reeglite puhul ei pea rakendamiseks tingimata olema korrektne kivide arv.

Valikud

  Siit leiab mitmeid eriparameetreid, näiteks piirangujaotuse punktid.

Karistused

  Karistusi rakendab käsitsi kasutaja

#### Rakendamise järjekord

- rakendatavate reeglite nimekirja loomine kombinatsiooni ja jaotuse reeglite põhjal

- using the Mah Jongg rules find out if the declared winner hand is really a winner hand.

- võitja korral rakendatavate võitja reeglite lisamine

- kui mõnel leitud reeglil on toiming "&absolute;", siis ainult nende alles jätmine. Praegu ei ole veel määratletud, mis juhtub siis, kui neid leitakse enam kui üks.

- kui mõned reeglid defineerivad piirangud, siis kõigi teiste hülgamine

- leitud reeglite rakendamine toodud järjekorras

### Definitsioon

Definitsioon koosneb ühestainsast stringist, sest seda peab olema hõlpus salvestada andmebaasi. See koosneb mitmest osast, mida eraldavad kaks märki "||". Iga osa väljendab kas tingimust, mille korral reeglit rakendatakse, või siis mõnda toimingut. Defineerida saab ainult ühe toiminguosa, kuid tingimusavaldisi võib olla mitu. Reegel rakendub otsekohe, kui vähemalt üks tingimus vastab jaotusele.

&kajongg; pakub omalt poolt valmisreeglistikku, mis vastab klassikalise hiina mängu reeglitele, nagu need on defineerinud Saksamaa DMJL. See peaks andma ohtralt eeskuju.

Lubatud osad on järgmised:

Tõstutundetu regulaaravaldis

  Osa, mille alguses seisab I, on regulaaravaldis, mis ei tee vahet suur- ja väiketähtedel.

Toiming

  Osa, mille alguses seisab A, sisaldab toimingute nimekirja.

Käsitsimängu avaldis

  This is an optional Regular Expression. For scoring manual games, it defines whether this rule should be selectable by the user with a checkbox. The leading M does not belong to the Regular Expression. An example would be the Rule "Last Tile Taken from Dead Wall".

Regulaaravaldis

  Kõik muud osad kujutavad endast regulaaravaldist.

### Regulaaravaldised

Regulaaravaldised on väga võimas programmeerimise abivahend, mis võimaldab leida sobivaid märgistringe. Aga see on ühtlasi ka päris keeruline ja raske. Kindlasti ei ole see mõeldud tavalise mängija jaoks. On lausa terved raamatud, mis ainult regulaaravaldiste seletamisega tegelevadki.

Regulaaravaldistel on mitmeid "dialekte". &kajongg; on kirjutatud programmeerimiskeeles Python. Et Pythoni standardteek sisaldab regulaaravaldiste moodulit, siis seda dialekti ongi kasutatud.

Lähemalt räägib sellest

Kogu teave jaotuse kohta, mis võib mõjutada tulemust, on kodeeritud ühteainsasse stringi. &kajongg; kontrollib siis, kas regulaaravaldis vastab sellele stringile. Kui jah, siis reeglit ka rakendatakse.

Toome näiteks regulaaravaldise, mis vastab piirangujaotusele "Kõik rohelised":

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

#### Jaotusestringi struktuur

Jaotusestringi sisu on alati ühesugune sõltumata sellest, millist keelt kasutad oma töökeskkonnas.

Jaotust esindav string koosneb mitmest osast, mida eraldavad tühikud. Nende osade järjestus on alati ühesugune, välja arvatud alguses leiduvad kombinatsioone puudutavad osad.

&kajongg; võib varjatud kivid rühmitada sellistesse kombinatsioonidesse, et tulemus oleks võimalikult hea. Sealjuures ei ole vahet, kuidas varjatud kivid on õieti rühmitatud. Aga kui tegemist on piirangujaotustega, siis ei pruugi see toimida. Seepärast püüab &kajongg; kasutada kivide algset rühmitamist, nagu selle on sisestanud kasutaja, aga ka ümberrühmitatud kive. Mõlema variandi korral rakendatakse kõiki reegleid. Kasutusele võetakse see variant, mis saavutab suurema kogutulemuse.

Toome siin näite. Tegelikult on see kõik ühel real, aga loetavuse huvides jagasime selle siin kahe rea peale. Lisaks on seda korratud, sest mõningaid regulaaravaldisi on palju hõlpsam kirjutada, kui selle osade järjestust saab muuta. Vaatame kongi röövimise reeglit: selle regulaaravaldis uurib enne kombinatsioone gruppi L (viimane kivi).

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

Kivi tähistab kaks märki. Esimese puhul tähistab s kivi (stone), b bambust, c märki (character), w tuult (wind), d draakonit, y aastaajaboonust ja f lilleboonust. Teise märgi puhul tähistavad 1-9 kive, e, s, w, n tuuli, w, r, g draakoneid (white - valge, red - punane, green - roheline) ning 1, 2, 3, 4 boonuskive. Paljastatud kivide puhul on esimene märk väike-, varjatud kivide puhul suurtäht.

Kõik järgnevad osad on alati olemas ja just sellises järjekorras, välja arvatud osa "Viimane kivi". See on olemas ainult võitva jaotuse puhul.

Kombinatsioon

  Osa, mis algab mõnega järgmistest tähtedest, on kombinatsioon: `sbcdwSBCDW`. Kombinatsioon võib sisaldada suvalise arvu kive. &kajongg; jagab liiga paljude kividega kombinatsioonid, püüdes saavutada maksimaalse tulemuse.

  Kongide puhul on kasutusel eriline süntaks: c1c1c1c1 on paljastatud kong, c1c1c1C1 on paljastatud kong, mille neljas kivi täiendas varjatud pungi. Seda on vaja piirangumänguks "varjatud õiges värvis mäng". c1C1C1c1 on varjatud väljakuulutatud kong, C1C1C1C1 varjatud väljakuulutamata kong. Aga et see ei ole välja kuulutatud, käsitletakse seda pungina. Niisiis, see kombinatsioon jagatakse pungiks C1C1C1 ja üksikuks C1.

  Boonuskivid esinevad pärast kõiki kombinatsioone.

Kokkuvõte

  The part starting with / holds summary information about the melds. This makes it easier to write some regular expressions. Every meld is represented by four characters. The first character is one out of `sbcdwSBCDW`, again lowercase for exposed and uppercase for concealed. The second character is a number saying how many tiles the meld holds. This is 1 up to 4 for a kong. The 0 is used for a chow. The last two characters hold the value of this meld.

Alternatiivne kokkuvõte

  Osa, mille alguses seisab -, on samasugune äsja tutvustatud kokkuvõttega, kuid see sisaldab nõueldud konge varjatud kongidena. Mõned reeglid, näiteks "Kolm varjatud pongi", käsitlevad nõueldud kongi varjatuna.

Jaotuse pikkus

  Osa, mille alguses seisab %, sisaldab teavet jaotuse pikkuse kohta: s tähistab lühikest kätt, milles on liiga vähe kive, n korrektse kivide arvuga jaotust ja l pikka kätt, milles on liiga palju kive.

Mah Jongg

  The part starting with m, M or x holds additional information. M stands for the winner hand, m for a loser hand, and x stands for a hand that is forbidden to say Mah Jongg. M/m/x is followed by one character for the own wind, one character for the prevailing wind, one character for the source of the last tile leading to Mah Jongg, one character for the declarations a player made.

  Viimane kivi võib olla pärit mitmest kohast: w=müür, d=äravisatud, e=surnud müür, z=elava müüri viimane kivi, Z=elava müüri viimane kivi, ära visatud, k=kongi röövimine, l=taevane/maine õnnistus. Väärtused w ja d on erilised - need on omamoodi vaheväärtused. Kui valida viimaseks kiviks varjatud kivi, määratakse päritoluks w. Edasi sätestavad mitmed reeglid, et neid saab rakendada ainult juhul, kui viimane kivi on pärit müürist. Niisiis võimaldab see tegelikult rakendatavate reeglite paremat eelvalikut. Asja paremaks mõistmiseks lugege palun tulemuste käsitsi määramise reegleid, samuti toimingu &lastsource; kohta.

  Võimalikud väljakuulutamised on järgmised: a=avakäigul, t=kahekordne õnn.

Viimane kivi

  Osa, mille alguses seisab L, sisaldab teavet viimase kivi kohta. Seal on kirjas viimane kivi ise ja seejärel kombinatsioon, mis lõpetati viimase kiviga. Seda viimast kombinatsiooni on vaja reeglile "Viimane kivi on ainuke võimalik", sest mõnikord ei piisa ainult viimase kivi teadmisest. Pane tähele, et viimane kombinatsioon ei saa olla kong, sest kui see lõpetab kongi, tuleb võtta asenduskivi.

Piirangujaotus

  See ei ole veel teostatud, kuid seda võib vaja minna selliste reeglite jaoks, nagu on näiteks defineerinud BMJA (Inglismaal). Osa, mille alguses seisab K, sisaldab kõiki võimalikke kive, mille olemasolu tuleb kontrollida, et jagada punkte piirangujaotuse eest. Võiks muidugi käituda ka sirgjoonelisemalt ja kontrollida kõiki kive, aga see võiks võtta liiga palju aega.

### Toimingud

Kõik reegli toimingud on defineeritud ühesainsas stringis. Neid eraldavad tühikud. Mõned neist defineerivad väärtuse.

&payforall;

  Mängija tegi midagi väga vastikut, mistõttu ta peab kõigile tasuma. See ei ole siiski karistus, sest tasusumma on sama, ainult tasuja muutub. Lisaks ei pea kaks asjasse mittepuutuvat tasujat summasid vahetama.

&payers;=X

  Defineerib, mitmele tasujale see karistusreegel kehtib. X on arv.

&payees;=X

  Defineerib, mitmele saajale see karistusreegel kehtib. X on arv.

&absolute;

  See toiming defineerib absoluutse tasu. Jaotuse tulemist eiratakse. Seda kasutatakse karistusreeglite puhul.

&lastsource;

  This action defines the source of the last tile. Used by manual rules like "last tile from dead end". Setting the last source with this action serves as a filter for other rules - if they trigger only for certain sources. Those other rules can of course also be manual rules. So this filtering will narrow down the amount of manual rules the user gets shown in the scoring dialog. If this seems complicated, just play around with the scoring dialog and watch checkboxes appear and disappear depending on the source of the last tile.

## Teadaolevad probleemid

- Praegu ei ole veel mängijal endal võimalik avada kontot mänguserveris.

- Mängimisrežiimis ei ole veel karistused võimalikud.

- Arvutimängijad on veel üpris rumalad.

- Arvutimängijate nimesid ei saa veel muuta.

- Computer games cannot yet be resumed.

## Võimalikud tulevased omadused

- Uued reeglistikud. Soovitavalt võiksid neid pakkuda inimesed, kes kasutavad pakutud reeglistikku regulaarselt.

- Add sounds. The calls "Chow" &etc; should be played, also what tiles are discarded. Define standard sounds, but also make it possible for the player to record her own voice.

## Korduma kippuvad küsimused

Ma soovin muuta mängu välimust. On see võimalik?

Yes. To change the way &kappname; looks use the menubar to open the configuration utility.

Kas kive saab mängijatele omistada ka klaviatuuri abil?

Jah. Vaata lõiku Tulemuse arvutab &kajongg;.

## Autorid ja litsents

&kappname; for &kde;

Program Copyright © 2009, 2010 Wolfgang Rohdewald wolfgang@rohdewald.de

Documentation Copyright © 2009, 2010 Wolfgang Rohdewald wolfgang@rohdewald.de

Tõlge eesti keelde: Marek Laane bald@smail.ee

&underFDL; &underGPL;

## Paigaldamine

Kasuta .deb-paketti aadressilt . Kui see ei toimi, võid samalt aadressilt alla laadida kajongg-x-y.tar.gz ja seejärel sooritada järgmised toimingud:

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

Mõlemal juhul tuleb üle kontrollida, et paigaldatud oleks ka mõned muud vajalikud paketid. Debiani pakett ei sisalda veel selliseid nõudmisi. &kajongg; vajab (sulgudes on ära toodud vastavad Debiani paketid):

- KDE4 mängude teek (libkdegames5)

- Python 2.5 või uuem (python)

- QT4.4 või uuem (libqt4-core, libqt4-gui, libqt4-svg, libqt4-sql, libqt4-sql-sqlite)

- QT4 Pythoni seosed (python-qt4, python-qt4-sql)

- KDE4 Pythoni seosed (python-kde4)

- Pythoni twisted teek (python-twisted-core)

- sqlite3 (libsqlite3-0)

&documentation.index;