# &kappname;i käsiraamat

## Sissejuhatus

### Mängu tüüp:

lauamäng, arkaadmäng

### Mängijate arv:

Neli

&kajongg; on lauamäng, mille aluseks on kuulus idamaine mäng Mahjong (hiina keeles 麻將). See on mäng neljale mängijale. Maailmas kasutatakse väga mitmesuguseid reegleid. Praegu toetab &kajongg; klassikalisi hiina reegleid, nagu neid kasutatakse Saksamaal. Tulevikus on võimalikud ka muud reeglid. Samuti on võimalik reegleid oma äranägemise järgi kohandada või ka luua üldse enda reeglid. Viimasel juhul palub autor need ka endale saata, et need oleks võimalik muuta kättesaadavaks ka teistele!

&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.

Olekuriba

- Olekuriba asub mänguakna allservas ja näitab mängijate hetketulemust.

## 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.

Pärast jaotuse kõigi asjakohaste andmete sisestamist klõpsa nupule Salvesta jaotus. Jaotuse väärtused sisestatakse andmebaasi ning need ilmuvad nähtavale ka edetabelis. Võimalik, et sulle tehakse ettepanek vahetada mängijate kohad, kuid sellest võib ka keelduda. Ette pandavad muutused ei ole veel kohandatava, aga kui ilmub reeglistik, mis vajab midagi muud, siis me muudame seda.

Kui mängijal oli võimalus võita, on võimalik kasutada ka märkekasti veerus "Võitja" - vali see võitja puhul.

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.

Kui eelistad kasutada klaviatuuri, saab keskse valikuala ja mängijate alade vahel liikuda klahviga . Klahvi eswnESWN liigutavad kivi vastavalt ida, lõuna, lääne ja põhja mängijale. Klahvid xX liigutavad kivi tagasi kesksesse valikualasse. ESWN liigutab kivi varjatud, eswn paljastatud kivide ritta. Kursorit kivide või kombinatsioonide vahel saab liigutada nooleklahvidega, sealjuures parajasti valitud kivi ümbritseb sinine raam. Et nooleklahvid asuvad tähtedest kaugel, saab kursori liigutamiseks kasutada ka klaviatuuri tähti hjkl ja HJKL. hH liigutab vasakule, jJ liigutab alla, kK liigutab üles ja lL liigutab paremale. Nii käitub ka näiteks UNIX-i tekstiredaktor "vi". Samu klahve toetavad samamoodi isegi KDE brauser Konqueror ja käesolev abirakenduski. Klahvid võivad erineda, kui kasutad mõnda muud kui inglise keelt, aga praegu ei ole võimalik neid seadistada.

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.

Rikkumise valikukast näitab kõiki rikkumisi, mida on võimalik rakendada mängijate jaotustele. Vali nende seast vajalik.

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

Kõigepealt ilmub sisselogimisdialoog. Sisesta mänguserver, millega soovid ühineda, ja oma kasutajanimi. Kui valid erikirje "Kohalik mäng", pead sisestama ainult oma nime (või soostuma pakutud nimega) ja valima reeglistiku. Sel juhul käivitatakse kohe kohalik mäng, milles mängid kolme robotmängija vastu.

### 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.

Kajonggi mänguserveri saab käivitada kahel viisil:

- 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.

Mõlemal juhul tuleb teistele mängijatele öelda, kuidas nad sinu mänguserverisse pääsevad. Selleks vajavad nad URL-i või lihtsalt IP-aadressi ja porti, mida sinu server jälgib. See võib olla näiteks "mypc.dyndns.org:8149", kus 8149 on port. Loomulikult tuleb sul ka oma tulemüüri seadistada, et mujal asuvad mängijad ikka saaksid selle pordiga ühenduse luua. Suhtlemine on krüptitud.

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.

### Kuidas mängida

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

- Edetabel Edetabel Pilt Näitab edetabelit. Vasakpoolne veerg väärtustega E, S, W, N näitab mängija tuult. Valitseva tuule taust on kollakas. Võitja taust on tulemuse veerus roheline. Veerg ∆ näitab, kui palju pidi mängija selles jaotuses teistele mängijatele tasuma või kui palju ta ise sai. Veerg ∑ näitab bilanssi. Vihjed pakuvad rohkem üksikasju, nii näeb kõiki reegleid, mida antud jaotuse korral rakendati.

  Alumine osa näitab kasutatud reeglistikku. Tulemuste tabeli ja reeglistiku vahel asub eraldaja, mida liigutades on võimalik mõlema osa suurust muuta.

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

- Näitab või peidab olekuriba.

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:

- Kõigepealt tuleb valida, kuhu oma helifailid salvestada. Tavaliselt on selleks kataloog ~/.kde/share/apps/kajongg. Niisiis, kui sinu kasutajanimi on juhan, siis oleks kataloog /home/juhan/.kde/share/apps/kajongg. Sealt leiab ka andmebaasi kajongg.db.

- Loo selles kataloogis uus alamkataloog nimega `voices`.

- Loo kataloogis `voices` veel üks alamkataloog, sedakorda oma mängijanimega, see tähendab nimega, mida kasutad mänguserveriga ühendumisel. Samuti võid määrata helid mängijatele `ROBOT 1`, `ROBOT 2`, `ROBOT 3`.

- Sellesse alamkataloogi tulebki paigutada oma helifailid. Need peavad olema kodeeritud Ogg Vorbise audiokompressoriga ning failinimede laiend peab olema `.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

Menüükäsu Seadistused Kiirklahvide seadistamine... valimine lubab muuta vaikimisi kiirklahve.

Vaikimisi kiirklahvid on järgmised:

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 Jonggi reeglid

- Mah Jonggi reeglid määravad, kui suur on tõenäosus, et jaotus on võidetav. Tavaliselt tähendab see nelja kolmest või neljast kivist koosnevat kombinatsiooni ja üht paari. Kuid on olemas ka erilisi jaotusi, näiteks klassikalise hiina mängu puhul 13 orbu.

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

- Mah Jonggi reeglite kasutamine leidmaks, kas väljakuulutatud võitja jaotus on ikka tõepoolest võitev jaotus.

- 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

- See on täiendav regulaaravaldis. Mängu tulemuse käsitsi määramise korral määrab see, kas kasutaja saab antud reeglit valida märkekastiga. Osa alustav M ei kuulu regulaaravaldise hulka. Näiteks võib tuua reegli "Viimase kivi võtmine surnud müürist".

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

- Osa, mille alguses seisab /, sisaldab kokkuvõtlikku teavet kombinatsioonide kohta. See muudab mõningate regulaaravaldiste kirjutamise lihtsamaks. Iga kombinatsiooni tähistab neli märki. Esimene on üks märkidest `sbcdwSBCDW` ning ka siin tähistab väiketäht paljastatud ja suurtäht varjatud kivi. Teine märk on number, mis teatab, mitut kivi kombinatsioon sisaldab. See on kongi puhul vahemikus 1 kuni 4. Chow' puhul kasutatakse 0. Viimased kaks märki sisaldavad kombinatsiooni väärtust.

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

- Osa, mille alguses seisab m, M või x, sisaldab lisateavet. M tähistab võitvat jaotust, m kaotavat jaotust ja x jaotust, mille korral on keelatud kuulutada Mah Jonggi. M/m/x järel seisab üks märk oma tuule, üks märk valitseva tuule, üks märk Mah Jonggini viinud viimase kivi päritolu ja üks märk mängija tehtud väljakuulutamiste kohta.

  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;

- See toiming defineerib viimase kivi päritolu. Seda kasutatakse mängu tulemuste käsitsi sisestamisel selliste reeglite puhul, nagu näiteks "viimane kivi surnud müürist". Viimase kivi päritolu määramine selle toiminguga on omamoodi filter teistele reeglitele - need võivad rakenduda ainult teatava päritolu korral. Need teised reeglid võivad mõistagi samuti olla mängu tulemuste käsitsi määramise reeglid. Niisiis, piirab see filter reeglite hulka, mida kasutaja näeb tulemuste dialoogis. Kui see tundub esmapilgul veidi keerulisena, mängi veidi ning uuri tulemuste dialoogi, et näha, kuidas märkekastid ilmuvad ja kaovad vastavalt sellele, milline oli viimase kivi päritolu.

## 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.

- Arvutimänge ei saa veel jätkata.

## Võimalikud tulevased omadused

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

- Helide lisamine. Väljakuulutamisi "chow" jne. peaks olema võimalik esitada, samuti ära visatud kivide nimesid. Standardhelide kindlaks määramine, samuti mängijatele võimaluse andmine salvestada oma häält.

## Korduma kippuvad küsimused

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

Jah. &kappname;i välimuse muutmiseks kasuta menüükäsku, mis avab seadistustedialoogi.

Kas kive saab mängijatele omistada ka klaviatuuri abil?

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

## Autorid ja litsents

&kde; &kappname;

Rakenduse autoriõigus © 2009, 2010: Wolfgang Rohdewald wolfgang@rohdewald.de

Dokumentatsiooni autoriõigus © 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;