# Manuale di &kappname;

Wolfgang
Rohdewald
wolfgang@rohdewald.de
Valter
Mura

    valtermura@gmail.com

Traduzione della documentazione
2010-03-19
&kappversion;

Questa documentazione descrive il gioco di &kappname; versione &kappversion;

KDE
kdegames
gioco
kajongg
da tavolo
arcade
gioco di tessere
tessere
quattro giocatori

## Introduzione

### Tipo di gioco:

Da tavolo, arcade

### Numero di possibili giocatori:

Quattro

&kajongg; è un gioco da tavolo creato basandosi sul famoso gioco orientale del Mahjong (dal Cinese 麻將). Viene giocato da quattro giocatori. Al mondo esistono molte e diverse regole in uso. Al momento &kajongg; supporta le regole classiche cinesi, come giocate in Germania; e seguiranno, eventualmente, altri importanti regole. È possibile personalizzare o aggiungere nuovi schemi di regole. Se lo fate, inviatele cortesemente all'autore del programma per l'integrazione!

&kajongg; può essere usato in due modi differenti: conteggio dei punti di una partita manuale, in cui giochi come tuo solito senza l'aiuto del computer e utilizzi &kajongg; per il conteggio e il mantenimento dei punti; oppure puoi usarlo per giocare contro qualsiasi combinazione di utenti umani e digitali.

## Aspetto della schermata

Schermata di &kajongg; Schermata

Una rapida spiegazione delle parti della schermata di gioco.

Barra degli strumenti

  La barra degli strumenti è posizionata sotto la barra dei menu e contiene i pulsanti per le azioni più utilizzate. Il contenuto della barra degli strumenti può essere modificata. Puoi anche renderla invisibile, dando più spazio al tavoliere.

Tavoliere

  Il tavoliere è la sezione più ampia della finestra. Puoi vedere i quattro muri della lunghezza di 18 tessere (l'esatto numero dipende dalle regole come usare le tessere bonus o no). I nomi dei giocatori sono scritti sul muro, insieme con il valore corrente della mano (per quanto conosciuta) e le loro tessere di vento. Il vento prevalente ha uno sfondo colorato, Est nella schermata qui sopra.

  Quando si gioca, l'interno dei muri conserva le tessere scartate dai giocatori. Essi sono posizionate a caso. L'ultima tessera scartata è evidenziata con una cornice azzurra.

  Quando si conteggiano partite manuali, l'interno dei muri ha una selezione di tutte le tessere disponibili, il selettore centrale. Puoi assegnarle ai giocatori utilizzando il mouse o la tastiera.

Area del giocatore

  Ciascun giocatore ha un'area di schermata per le proprie tessere. La fila superiore contiene le tessere dichiarate, quella inferiore quelle coperte. Quando si conteggia manualmente una partita, le tessere coperte sono mostrate con un'ombra sopra l'intera tessera. Le tessere bonus vanno all'estrema destra.

Finestra di dialogo

  La finestra di dialogo mostra le scelte che ha il giocatore. Il più delle volte presenta un timer che indica una barra di avanzamento indicante il tempo rimanente.

Barra di stato

  La barra di stato è posizionata in basso nella schermata e contiene i totali correnti per i giocatori.

## Conteggio dei punti di una partita manuale

In questa modalità, &kajongg; viene utilizzato solo per eseguire il conteggio. giochi come al solito con persone vere in un tabellone vero, e alla fine della partita puoi inserire in &kajongg; le tessere che un giocatore ha in mano e qualsiasi altra informazione che &kajongg; necessita per calcolare i punteggi (che è quello che farà il programma). In alternativa, puoi calcolare manualmente i punteggi di mano e inserirli. &kajongg; eseguirà poi i pagamenti tra i giocatori e scriverà i risultati in un database. È possibile interrompere una partita, avviarne una con altri giocatori e riprendere vecchie partite. Tutte le regole saranno salvate con le partite, perciò partite diverse possono essere giocate con regole diverse.

- Dal menu, seleziona Partita / Conteggia partita manuale o premi &Ctrl;C.

- Ora puoi sia selezionare una partita esistente non terminata, sia iniziare una nuova partita. Se inizi una nuova partita, ti verranno chieste informazioni sui giocatori e sullo schema di gioco. &kajongg; proporrà gli stessi valori usati per la partita precedente. Se non esistono partite precedenti, proporrà i primi quattro giocatori definiti. Nota che non puoi modificare lo schema di gioco e qualsiasi altra sua regola dopo questa selezione. Puoi farlo anticipatamente nell'editor degli schemi.

- Ora otterrai una nuova finestra intitolata «Inserisci i risultati di mano». Leggi Fare in modo che &kajongg; calcoli il punteggio per una descrizione dettagliata.

- Dopo aver salvato i risultati di mano, continua con la mano successiva.

### Inserire i risultati di mano

#### Punteggi

Schermata di &kajongg;
Schermata

Questa è la finestra per l'inserimento dei risultato di mano. Viene mostrata automaticamente quando &kajongg; pensa che tu ne abbia bisogno. Puoi sempre visualizzarla o nasconderla premendo &Ctrl;S o selezionando la voce di menu corrispondente.

Come sempre, il vento prevalente ha lo sfondo colorato.

Qui puoi inserire manualmente i punteggi per tutti i giocatori. In alternativa puoi definire esattamente quali tessere aveva in mano un giocatore. Se scegli questa azione, il campo corrispondente per il punteggio manuale diverrà grigio. &kajongg; calcolerà automaticamente il punteggio.

Dopo aver inserito tutti i dati rilevanti per una mano, premi il pulsante Salva mano. I valori della mano saranno inseriti nel database e nel tabellone del punteggio. Ti potrebbe essere chiesto di cambiare le posizioni dei giocatori, ma puoi scegliere anche di non cambiarle. I posti proposti sono al momento non personalizzabili: se uno schema di regole necessita qualcosa di diverso, lo cambieremo.

Se il giocatore può aver vinto, sarà attivata la casella nella colonna «Vincitore»: facci clic sopra per il vincitore.

La barra di stato ora mostrerà il bilancio aggiornato per i giocatori, ed è possibile continuare con la mano successiva.

##### Inserire manualmente il punteggio

Un buon giocatore preferirà probabilmente calcolare il proprio punteggio da sé. In questo caso puoi inserire direttamente il punteggio. Questo non è possibile se non vi è alcuna tessera selezionata per il giocatore.

Se inserisci manualmente un punteggio, esso deve contenere tutto eccetto le penalità, e non vi saranno regole facoltative da cui scegliere. Esiste un'eccezione: «Gioco pericoloso». Questo non influenza alcun punteggio, e non è neppure un'irregolarità. Significa solo che il pagamento tra i giocatori è diverso: il giocatore irregolare paga tutto per tutti al vincitore. Gli altri due giocatori non si scambiano pagamenti. Questa opzione al momento non è personalizzabile.

##### Far calcolare il punteggio a &kajongg;

Se indichi esplicitamente a &kajongg; quali tessere possiede un giocatore, l'inserimento dei punteggi in questa finestra saranno disattivati per quel giocatore. Durante l'associazione delle tessere a un giocatore noterai che il punteggio aumenta, ma non appena aggiungi la quattordicesima tessera il punteggio è riportato a zero. Questo può sorprendere ma, a meno di non dichiararla vincitrice, questa mano è riconosciuta come mano morta, che ha sempre zero punti. Questo comportamento è definito dallo schema di regole cinesi classiche, e può differire se cambi le regole o utilizzi uno schema di regole diverso.

Puoi associare tessere e combinazioni a un giocatore utilizzando il mouse, la tastiera o entrambi. Col mouse basta trascinare e rilasciare le tessere nell'area del giocatore. Quando rilasci la tessera ti verrà chiesto cosa vuoi rilasciare: singolo, coppia, tris, poker, poker dichiarato o scala. La fila superiore è riservata alle tessere scoperte, mentre quella inferiore a quelle coperte. Le tessere bonus appariranno all'estrema destra. Puoi anche muovere le tessere e le combinazioni tra le righe, tra i giocatori o indietro al selettore centrale.

Se preferisci utilizzare la tastiera, puoi usare il tasto &Tab; per spostarti tra il selettore centrale e le aree dei giocatori. I tasti eswnESWN spostano una tessera ai giocatori Est, Sud, Ovest e Nord. I tasti xX la riportano indietro al selettore centrale. ESWN sposta alla fila delle tessere coperte, eswn sposta a quella delle scoperte. Puoi muovere il cursore tra le tessere o le combinazioni tramite i tasti freccia, e la tessera o la combinazione correntemente selezionata viene evidenziata con un riquadro azzurro. Dato che i tasti freccia stanno abbastanza lontano dalle lettere nella tastiera, puoi usare anche le lettere hjkl o HJKL per lo spostamento del cursore. hH sposta a sinistra, jJ sposta giù, kK sposta su, lL sposta a destra. Questo è il metodo utilizzato dall'editor unix «vi». Anche il browser KDE Konqueror e questo programma di aiuto supportano quei tasti allo stesso modo. Essi possono variare se utilizzi una lingua diversa dall'Inglese, ma al momento non è possibile configurarli.

Le opzioni «Ultima tessera» e «Ultima combinazione» sono necessarie ad alcune regole come «l'ultima tessera completa la coppia». Esse possono essere utilizzate solo per la mano vincente.

Nella parte destra della finestra puoi applicare manualmente alcune regole. Le regole che appaiono in quest'elenco dipendono dallo schema di regole attivo e dalle tessere. Nell'esempio della schermata in alto, i giocatori perdenti potrebbero avere l'opzione «gioco pericoloso»: anche in questo caso, essa dipende dallo schema di regole e dalle sue tessere. Lo scopo degli sviluppatori è mantenere più corto possibile quest'elenco di regole selezionabili manualmente. In una condizione ottimale &kajongg; dovrebbe essere sempre in grado di determinare se una regola è applicabile, ma talvolta non ha abbastanza informazioni o conoscenze per decidere.

#### Penalità

Schermata di &kajongg;
Schermata

Nella finestra di inserimento dei risultati della mano, il pulsante Penalità conduce alla finestra in cui inserire le penalità. Questo può essere eseguito in qualsiasi momento indipendentemente dal normale meccanismo di attribuzione del punteggio.

La selezione irregolarità mostra tutte le irregolarità che possono essere alle mani che il giocatore possiede. Scegli tra esse.

Ora puoi adattare la Penalità totale. Questa è la somma totale che viene spostata dai paganti ai pagati. Verrà divisa equamente tra di loro.

A seconda del tipo di penalità, il numero di paganti e pagati varia. viene visualizzato l'esatto numero di giocatori. Se selezioni un giocatore, &kajongg; assicura che questi esista solo una volta, adattando gli altri giocatori.

## Giocare

### Gioca contro il computer

In primo luogo ti appare una finestra di accesso. Digita il server di gioco cui vuoi collegarti e il tuo nome utente. Se scegli la voce speciale «Partita locale», devi solo digitare il tuo nome (o accettare quello proposto) e lo schema di gioco desiderato. Ciò avvierà immediatamente una partita locale in cui giochi contro tre giocatori robot.

### Gioca con amici

Se desideri giocare contro persone reali, hai bisogno di un server di gioco a cui tutti i giocatori, incluso tu, devono collegarsi. Esegui questa azione selezionando qualsiasi altro host o digitando manualmente il nome di un nuovo host e specificando la password appropriata. Verrà proposta l'ultima password usata.

Se non hai un account in quel server corrispondente al nome che hai digitato, ti verrà chiesto a aprirne uno. Se rispondi sì, otterrai una nuova finestra di dialogo in cui digitare due volte la password scelta. L'account sarà creato automaticamente.

Dopo aver avuto correttamente accesso al server di gioco cui vuoi collegarti, otterrai un elenco di tavoli con i posti disponibili su quel server. Unisciti a un tavolo o creane uno nuovo. Se ne crei uno nuovo, aspetta fino a quando i posti vengono occupati da altri giocatori. Puoi iniziare la partita in qualsiasi momento nel tavolo da te creato, i posti vuoti verranno occupati da giocatori robot.

L'elenco della tavoliere mostra anche il nome dello schema giocato in quel tavoliere. Lo schema e il suo nome vengono inviati al server di gioco dal giocatore che inizia il tavolo. Se hai uno schema identico, il tavoliere mostra il tuo nome per lo schema: questo può essere utile se chi ha aperto il tavolo parla un'altra lingua e chiama lo schema in modo diverso. Inoltre, il nome del tuo schema locale sarà visualizzato in nero. Tuttavia, se non possiedi lo stesso il nome appare in rosso e puoi premere il pulsante Confronta per confrontarlo con quelli in tuo possesso.

Puoi avviare il server di gioco Kajongg in due modi diversi:

- collegarti al server "localhost". questo è il tuo computer. Se fai questa scelta e non è avviato alcun server di gioco, esso sarà avviato automaticamente. Quando finisci di giocare, anche il server viene fermato.

- avviare manualmente un server su un computer di tua scelta. Tutto quello che serve è avviare da riga di comando il programma «kajonggserver». Se scrivi «kajonggserver --help» ti verranno mostrate le opzioni disponibili, come la modifica della porta predefinita 8149. Questo server rimarrà avviato fino a che non lo termini.

In entrambi i casi devi dire agli altri giocatori come possono raggiungere il tuo server di gioco. Essi hanno bisogno dell'URL, o semplicemente di un indirizzo IP e la porta in cui il tuo server è in ascolto. Può essere qualcosa tipo «miopc.dyndns.org:8149», dove 8149 è la porta. Naturalmente devi configurare il tuo firewall affinché il giocatore remoto possa raggiungere quella porta. La comunicazione sarà cifrata.

Se ti imbatti in possibili errori, potresti voler utilizzare l'opzione «--showtraffic». Questa ti mostrerà, nella console in cui è stato avviato il server di gioco, quali messaggi vengono scambiati tra il server di gioco e i client.

#### Limitazioni

- Se vuoi essere sicuro che nessuno possa imbrogliare, nessuno dei giocatori umani devono avere accesso al computer in cui è avviato il server di gioco. Non puoi, naturalmente, evitare che due giocatori si aiutino a vicenda, perché non puoi sapere cosa realmente stanno facendo. Due giocatori possono essere anche la stessa persona.

### Come giocare

Ti verrà domandato cosa desideri fare. Questa è una finestrella sulla destra o sulla parte inferiore, a seconda della dimensione della finestra. Puoi renderla più larga che alta, in tal caso essa apparirà a destra. A volte la finestrella è a tempo: una volta scaduto, la prima risposta possibile viene selezionata automaticamente per te. Il tempo è configurabile nell'editor degli schemi, sotto Opzioni, Dichiara il tempo. Tutti i giocatori devono avere lo stesso tempo a disposizione, ecco perché esso fa parte dello schema di gioco.

Se devi selezionare una tessera dalla tua mano, puoi spostarti tra le tessere utilizzando i tasti freccia destro e sinistro o le lettere h e l sulla tastiera. Ovviamente puoi usare anche il mouse.

Spesso, le finestre di dialogo offrono scelte che non sono veramente applicabili, tipo la chiamata di Tris quando non possiedi le tessere necessarie. Ciò è voluto: proprio come in una partita vera.

Le tessere scartate sono distribuite casualmente tra i muri. Alcune varianti di gioco definiscono il punto in cui le tessere devono essere posizionate, ma ciò non è ancora configurabile. Quando lo sarà, diventerà parte dello schema di gioco.

## Panoramica dell'interfaccia

### Il menu Partita

Partita Conteggio dei punti di una partita manuale

  Conteggia solo i punti di una partita giocata manualmente.

  Puoi caricare una vecchia partita o iniziarne una nuova. Per impostazione predefinita, solo le partite in corso (ad es., quelle non terminate) vengono mostrate nell'elenco di selezione. Facoltativamente, puoi visualizzare tutte le partite, incluse quelle terminate. Qui puoi anche eliminare partite.

Partita Gioca

  Gioca con altri (persone e computer).

Partita Interrompi

  Termina la partita corrente. Se è una partita manuale col solo conteggio dei punti, puoi riprenderla in seguito. Se giochi con &kajongg;, non puoi riprendere la partita.

Partita Esci

  Esce da &kappname;.

### Il menu Visualizza

Visualizza Punteggio

  Finestra del punteggio: mostra o nasconde la finestra di dialogo del punteggio. Questa finestra è spiegata qui.

Visualizza Bacheca punteggio

  Bacheca punteggio Bacheca punteggio Schermata Mostra la bacheca punteggio. La colonna a sinistra con i valori E,S,W,N mostra il vento del giocatore. Il vento prevalente (vento di giro) ha uno sfondo giallino. Il vincitore ha uno sfondo verde nella colonna Punteggio. La colonna ∆ mostra quanto il giocatore ha pagato o ricevuto da tutti gli altri giocatori in questa mano. La colonna ∑ mostra il bilancio. I suggerimenti ti offrono maggiori dettagli: essi mostrano tutte le regole applicate a questa mano.

  La parte inferiore mostra lo schema di regole usato. Tra la bacheca del punteggio e la regola usata è presente un divisore che ti permette di modificare le relative dimensioni di entrambe le aree.

Visualizza Spiega punteggi

  Spiega punteggi Bacheca punteggio Bacheca punteggio Spiega come è stato calcolato il punteggio per la mano corrente.

### Il menu Impostazioni

Impostazioni Giocatori

  Aggiunge, modifica ed elimina i giocatori.

Impostazioni Cambia angolo di visuale

  Cambia in senso antiorario l'angolo di visuale delle tessere.

Impostazioni Modalità schermo intero

  Alterna le modalità a schermo intero e normale.

Impostazioni Mostra barra degli strumenti

  Mostra o nasconde la barra degli strumenti.

Impostazioni Mostra la barra di stato

  Mostra o nasconde la barra di stato.

Impostazioni Configura scorciatoie...

  Mostra una finestra &kde; standard di configurazione delle scorciatoie da tastiera per &kappname;.

Impostazioni Configura barre degli strumenti...

  Mostra una finestra &kde; standard in cui configurare le icone della barra degli strumenti.

Impostazioni Configura &kappname;...

  Apre una finestra di configurazione per &kappname;.

### Il menu Aiuto

&help.menu.documentation;

## Configurazione del gioco

Finestra di configurazione
Finestra di configurazione

La voce di menu Impostazioni Configura &kappname;... apre la finestra di dialogo Configura - &kappname;.

Se premi qui il pulsante Annulla, tutte le tue modifiche alla configurazione saranno annullate, incluse tutte le modifiche eseguite con l'editor degli schemi di gioco.

Puoi anche selezionare le varie schede con la tastiera: &Ctrl;1 seleziona la prima scheda delle opzioni Gioca, &Ctrl;2 seleziona la seconda, e così via.

### Opzioni Gioca

mostra ombre delle tessere

  Mostra le tessere con bordi e ombre. C'è anche un po' di spazio tra le file delle tessere e vengono mostrate le tessere del muro, in modo che possa vedere quanto esso è alto (due o tre file di tessere). Se l'opzione è disabilitata, si ottiene una vista più semplice con tessere leggermente più grandi, utile per schermi piccoli.

Ridisponi le tessere coperte in combinazioni

  Raggruppa le combinazioni nella mano. Talvolta il raggruppamento non è come vorresti, e dunque potresti desiderare di non averne alcuno, proprio come nelle partite reali.

Usa suoni, se disponibili

  Permette di ascoltare gli scarti e le dichiarazioni. Se gli altri giocatori hanno registrato file sonori della propria voce, puoi sentirli.

Permetti agli altri di sentire la mia voce

  Se registri file sonori con la tua voce, questa opzione permette agli altri giocatori di sentire la tua voce quando scarti o dichiari.

#### Suoni

È possibile registrare file sonori per i tuoi annunci, udibili dagli altri giocatori. È necessario un po' di lavoro manuale:

- In primo luogo devi decidere dove memorizzare i tuoi file vocali. La directory è in genere ~/.kde/share/apps/kajongg. Se il tuo nome utente è mario, essa deve essere /home/mario/.kde/share/apps/kajongg. Lì si trova anche la base di dati kajongg.db.

- Nella directory individuata crea una directory secondaria di nome `voices`.

- Nella directory `voices` crea un'altra directory col tuo nome da giocatore. Questo è il nome che usi quando ti colleghi al server di gioco. Potresti anche desiderare di definire le voci per i giocatori `ROBOT 1`, `ROBOT 2` e `ROBOT 3`.

- In quella directory secondaria, può sistemare i file sonori. Essi devono essere codificati con la compressione audio Ogg Vorbis e i nomi dei file devono avere l'estensione `.ogg`.

- Un singolo file ha un nome tipo `p3.ogg` - questo è Pietra 3. Devi definire questi file per tutte le tessere, le dichiarazioni e gli annunci.

Fai in modo che il suono sia breve ma chiaro.

Di seguito, un metodo per crearli:

- Registra un file sonoro col programma `qarecord`, salvalo nel formato `WAV`. In quest'unico file registra tutti i suoni.

- Modifica il file con l'editor di suoni `audacity`. Nell'editor, usa il mouse per evidenziare un intervallo di suono. L'editor riprodurrà quella porzione. Ripeti fino a quando non selezioni la porzione corretta. Salvala in formato ogg. Una bassa qualità è sufficiente e anche necessaria, poiché riduce il tempo del loro trasferimento agli altri giocatori.

Questi sono i nomi da definire. Associa loro sempre l'estensione `.ogg`:

##### Nomi dei file sonori

&s1; .. &s9; | Da pietra 1 a pietra 9
&b1; .. &b9; | Da bambù 1 a bambù 9
&c1; .. &c9; | Da carattere 1 a carattere 9
&we; &ws; &ww; &wn; | I venti Est, Sud, Ovest, Nord
&db; &dr; &dg; | I dragoni blu/bianchi, rossi, verdi
&chow; &pung; &kong; &mahjongg; | Le dichiarazioni principali
&originalcall; &violatesoriginalcall; | Chiamata originale e sua violazione
&dangerousgame; | Un giocatore rilascia un cannone (gioco pericoloso)
&nochoice; | Un giocatore dichiara di non avere alcuna possibilità se non eseguire un gioco pericoloso

### Opzioni delle tessere

Selettore del set di tessere
Selettore del set di tessere

Usa il selettore delle tessere per selezionare le immagini per le tessere.

### Opzioni dello sfondo

Selettore sfondo
Selettore sfondo

Usa il selettore dello sfondo per selezionare un'immagine di sfondo per il gioco.

Alcuni sfondi, come il panorama cinese, impiegano del tempo a caricare. Se ritieni che il programma debba avviarsi più rapidamente o che il ridimensionamento della finestra principale impieghi sia troppo lento, puoi provare altri sfondi.

### Editor degli schemi di gioco

Editor schemi di gioco
Editor schemi di gioco

Usa l'editor degli schemi per personalizzare gli schemi di gioco. Gli schemi di gioco predefiniti sono mostrati in corsivo, mentre quelli personalizzati in carattere normale. Gli schemi di gioco predefiniti non possono essere modificati in alcun modo dall'utente, ma potrebbe farlo un aggiornamento di &kajongg;. Gli schemi personalizzati non saranno mai modificati da un aggiornamento.

Quando avvi una nuova partita, potrai selezionare per essa uno schema di gioco. Possono essere utilizzati tutti gli schemi di gioco definiti nell'editor degli schemi. Lo schema di gioco è salvato assieme alla partita, così che puoi sempre cambiare le regole al suo interno: le tue modifiche avranno effetto solo sulle partite future.

#### Schema, punteggio e unità

Fai semplicemente doppio clic su ciò che vuoi modificare.

#### Definizione

La definizione per una regola può essere piuttosto complessa. Per essa esiste un capitolo dedicato: Definizione di una regola. In genere non dovrai modificare una definizione. Questa definisce essenzialmente a quali mani la regola si applica.

#### Copia e rimuovi

Puoi copiare un intero schema di gioco o le singole regole all'interno di uno schema. Poiché gli schemi di gioco predefiniti non sono modificabili, le singole regole possono essere copiate solo all'interno degli schemi di gioco personalizzati.

Puoi rimuovere gli schemi di gioco personalizzati o le singole regole al loro interno. Questo può essere eseguito se le partite esistenti usano questo schema di gioco, dato che ogni partita possiede la sua propria copia dello schema. Puoi visualizzare gli schemi di gioco delle vecchie partite: Carica la vecchia partita emostra la sua bacheca punteggio.

#### Confronta

Comparatore di schemi di gioco Comparatore di schemi di gioco Puoi selezionare questo comando quando è selezionato un intero schema di gioco. Ti consente di confrontare lo schema selezionato con gli altri schemi.

### Combinazioni predefinite della tastiera

La voce di menu Impostazioni Configura scorciatoie... ti permette di modificare le combinazioni predefinite della tastiera.

Le combinazioni predefinite della tastiera sono le seguenti:

F1

  Mostra questo manuale.

&Ctrl;C

  Conteggia una partita manuale.

&Ctrl;N

  Gioca una partita con amici o computer.

&Ctrl;W

  Interrompi la partita corrente.

&Ctrl;Q

  Esci dal programma.

&Ctrl;T

  Mostra la bacheca punteggio.

&Ctrl;G

  Cambia l'angolo di visuale.

&Shift;F1

  Che cos'è? Aiuto

&Ctrl;&Shift;F

  Modalità schermo intero

## Definizione di una regola

Il motore del punteggio e molti altri aspetti di &kajongg; possono essere personalizzati tramite l'editor degli schemi di gioco. Una regola consiste di un nome, un punteggio (incluse le sue unità) e una definizione.

### Gruppi di regole

Esistono diversi gruppi di regole:

Regole di combinazione

  Le regole di combinazione sono applicate a combinazioni singole indipendenti dal resto della mano.

Regole di mano

  Le regole di mano sono applicate all'intera mano, per tutti i giocatori.

Regole Mah-Jong

  Le regole del Mah-Jong specificano come una mano vincente deve apparire. Questa è di solito formata da quattro combinazioni con tre o quattro tessere ciascuna e una coppia. Ma le mani speciali possono apparire diverse, ad esempio le Tredici lanterne meravigliose nel Cinese classico.

Regole del vincitore

  Le regole del vincitore sono applicate all'intera mano, ma solo per il vincitore. Questo include la maggior parte delle mani speciali. Quelle regole non devono imporre il corretto numero di tessere.

Opzioni

  Qui puoi trovare vari parametri speciali come i punti per una mano limite.

Penalità

  Le penalità sono applicate manualmente dall'utente.

#### Ordine di esecuzione

- costruisci un elenco di regole applicabili dalle regole di combinazione e quelle di mano

- l'uso delle regole del Mah-Jong scoprono se la mano vincitrice dichiarata è veramente una mano vincente.

- per il vincitore aggiungi le regole del vincitore applicabili

- se qualcuna delle regole individuate contiene l'azione &absolute;, mantieni solo quelle. Non è ancora definito il risultato se ne viene individuata più di una.

- se qualcuna delle regole definisce i limiti massimi, scarta tutte le altre

- applica le regole individuate in quell'ordine

### La Definizione

La definizione è una stringa singola, perché vogliamo che sia facile salvarla in un database. Consiste di varie parti separate dai due caratteri «||». Una parte esprime una condizione sotto cui la regola si applica o esprime alcune azioni. Può essere definita solo una parte per le azioni ma varie espressioni di condizione. La regola è applicata non appena almeno una condizione coincide con la mano.

&kajongg; contiene uno schema di gioco predefinito che implementa le regole cinesi classiche, come definite dal DMJL tedesco. Questo dovrebbe fornirti molti esempi.

Queste sono tutte le parti riconosciute:

Espressione regolare con maiuscole/minuscole variabili

  Una parte che inizia per I è un'espressione regolare che non distingue tra maiuscole/minuscole.

Azione

  Una parte che inizia per A è un elenco di Azioni.

Espressione manuale

  Questa è un'espressione regolare facoltativa. Per il conteggio manuale delle partite, definisce se questa regola deve essere selezionata dall'utente tramite una casella di attivazione. La M iniziale non appartiene all'espressione regolare. Un esempio può essere la regola "L'ultima tessera è presa dal muro morto".

Espressione regolare

  Qualsiasi altra parte è un'espressione regolare.

### Espressioni regolari

Le espressioni regolari sono uno strumento molto potente di programmazione, per l'individuazione di stringhe di caratteri. Potente ma anche piuttosto difficile. Questo strumento non è adatto al normale giocatore. Sono disponibili manuali dedicati interamente alla spiegazione delle espressioni regolari.

Esistono vari dialetti di espressioni regolari. &kajongg; è scritto nel linguaggio di programmazione Python. Poiché la libreria standard di Python contiene un modulo per le espressioni regolari, questo è il dialetto che noi utilizziamo.

Per dettagli, consulta

Tutto ciò che riguarda una mano e che può influenzare il punteggio è codificato in un'unica stringa. &kajongg; controlla, poi, se l'espressione regolare coincide con questa stringa. Se essa coincide, la regola viene applicata.

Come esempio, questa espressione regolare individua la mano limite «Tutto verde»:

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

#### Struttura di una stringa di mano

Il contenuto di una stringa di mano è sempre la stessa, non ha importanza quale lingua usi nel tuo desktop.

La stringa che rappresenta una consiste di diverse parti separate da uno spazio. L'ordine di queste parti è sempre lo stesso, ad eccezione per le parti della combinazione all'inizio.

&kajongg; è in grado di raggruppare le tessere coperte all'interno di combinazioni allo scopo di ottenere un risultato più alto. Non importa come le tessere coperte sono raggruppate per questo scopo. Tuttavia, quando esso raggiunge mani limite il sistema può sbagliare. Ecco perché &kajongg; tenterà sia il raggruppamento originale delle tessere eseguito dall'utente, sia un nuovo loro raggruppamento. Tutte le regole sono applicate per entrambe le varianti. Sarà utilizzata la variante che raggiunge il punteggio più alto.

Ecco un esempio. Questa è veramente una singola riga, ma è stata divisa per una migliore leggibilità. Inoltre, questa frase è ripetuta solo una volta perché alcune espressioni regolari sono molto più facili da scrivere se le parti possono essere sistemate in un altro ordine. Consulta la regola per il Pezzo rubato: la sua espressione regolare prima guarda il gruppo L (Ultima tessera) prima di guardare le combinazioni.

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

Una tessera è rappresentata da 2 caratteri. Il primo è s per pietra, b per bambù, c per carattere, w per vento, d per dragone, y per bonus stagione, f bonus fiore. Il secondo 1..9 per i semi, e,s,w,n per i venti, w,r,g per i draghi (bianco, rosso, verde) e 1,2,3,4 per le tessere bonus. Le tessere scoperte hanno il primo carattere in minuscolo, quelle coperte in maiuscolo.

Tutte le parti seguenti sono sempre presenti in questo ordine, ad eccezione della parte «Ultima tessera», che esiste solo per la mano del vincitore.

Combinazione

  La parte che inizia con uno qualsiasi dei caratteri `sbcdwSBCDW` è una combinazione. Una combinazione può contenere qualsiasi numero di tessere. &kajongg; dividerà le combinazioni con troppe tessere, tentando di massimizzare il punteggio.

  Utilizziamo una sintassi speciale per i poker: c1c1c1c1 è un poker scoperto. c1c1c1C1 è un poker scoperto, la quarta tessera è stata chiamata, per completare un un tris coperto. Ciò è necessario per la partita limite 'partita di vero colore coperto'. c1C1C1c1 è un poker dichiarato coperto. C1C1C1C1 sarebbe un poker coperto non dichiarato. Ma poiché non è dichiarato, viene conteggiato come tris. Questa combinazione, dunque, sarà suddivisa nel tris C1C1C1 e il singolo C1.

  Le tessere bonus appaiono dopo le altre combinazioni.

Riepilogo

  La parte che inizia per / contiene le informazioni di riepilogo sulle combinazioni. Ciò rende più semplice la scrittura di alcune espressioni regolari. Ciascuna combinazione è rappresentata da quattro caratteri. Il primo carattere è uno al di fuori di `sbcdwSBCDW`, il minuscolo indica le tessere scoperte e il maiuscolo le coperte. Il secondo carattere è un numero che indica quante tessere contiene la combinazione. Esso è da 1 a 4 per un poker, lo zero è usato per una scala. Gli ultimi due caratteri contengono il valore della combinazione.

Riepilogo alternativo

  La parte che inizia per - è identica al riepilogo di cui sopra, ma contiene poker dichiarati come poker coperti. Alcune regole, come «Tre tris coperti», trattano un poker dichiarato come coperto.

Lunghezza della mano

  La parte che inizia per % contiene informazioni sulla lunghezza della mano: s sta per mano breve che troppo poche tessere, n sta per una mano col numero corretto di tessere, l sta per mano morta, con troppe tessere.

Mah-Jong

  La parte che inizia per m, M o x contiene informazioni aggiuntive. M sta per la mano vincente, m per una perdente e x sta per una mano alla quale è vietato dichiarare Mah-Jong. M/m/x è seguita da un carattere del proprio vento, un carattere per il vento prevalente, un carattere per l'origine dell'ultima tessera che conduce al Mah-Jong, un carattere per le dichiarazioni che un giocatore ha fatto.

  Queste sono le possibili origini dell'ultima tessera: w=muro, d=scartata, e=fine morta, z=ultima tessera di living end, Z=ultima tessera di living end, scartata, k=pezzo rubato, 1=uscita degli dei. I valori w e d sono speciali: sono una sorta di valori intermedi. scegliendo una tessera coperta come quarto pezzo, l'origine è impostata a w. Diverse regole, poi, dicono che essi si applicano solo se l'ultima tessera proviene dal muro. Questo permette, così, una miglior preselezione delle regole manuali al momento applicabili. Per una miglior comprensione, consultare le regole manuali e leggere azione &lastsource;.

  Queste sono le possibili dichiarazioni: a=chiamata all'inizio, t=fortuna doppia.

Ultima tessera

  La parte che inizia per L contiene informazioni sull'ultima tessera. Essa contiene la stessa ultima tessera, seguita dalla combinazione che è stata completata con essa. Abbiamo necessità di questa combinazione per la regola «Ultima tessera è l'unica possibile» perché a volte conoscere l'ultima tessera non basta. Nota che l'ultima combinazione non può essere un poker, perché se essa completa un poker devi scartare una tessera di sostituzione.

Chiamata della mano limite

  Essa non è ancora implementata, ma potrebbe essere necessaria per regole tipo quelle definite da BMJA (in Inghilterra). La parte che inizia per K contiene tutte le tessere possibili da controllare se distribuiamo punti per una chiamata di mano limite. Potremmo usare la forza bruta e verificare ciascuna tessera, ma potrebbe richiedere troppo tempo.

### Azioni

Tutte le azioni per una regola sono definite in una stringa. Esse sono separate da spazi. Alcune di esse definiscono un valore.

&payforall;

  Il giocatore ha fatto qualcosa di veramente brutto, e dunque deve pagare per tutti. Non è ancora una penalità, dato che la somma di pagamenti è la stessa: cambia solo il pagante. Inoltre, i due paganti non coinvolti non scambiano i pagamenti.

&payers;=X

  Definisce quanti paganti questa regola di penalità implica. X è un numero.

&payees;=X

  Definisce quanti pagati questa regola di penalità implica. X è un numero.

&absolute;

  Questa azione definisce un pagamento assoluto. Il punteggio della mano è ignorato. Usata per le regole di penalità.

&lastsource;

  Questa azione definisce la provenienza dell'ultima tessera. Usata dalle regole manuali come «ultima tessera dalla fine morta». L'impostazione dell'ultima provenienza con questa azione serve come filtro per le altre regole: se esse si attivano solo per certe provenienze. Queste altre regole possono, naturalmente, essere anche regole manuali. In questo modo, questo filtraggio restringerà il numero di regole manuali che l'utente visualizzerà nella finestra del punteggio. Se sembra complicato, fate delle prove con la finestra del punteggio e osservate le caselle apparire e scomparire in base alla provenienza dell'ultima tessera.

## Problemi conosciuti

- Non è ancora possibile per il giocatore aprire da sé un account sul server di gioco.

- In modalità gioco, le penalità non sono ancora possibili.

- I giocatori computer sono ancora piuttosto stupidi.

- I nome dei giocatori computer non sono ancora personalizzabili.

- Le partite con computer non possono ancora essere riavviate.

## Caratteristiche future possibili

- Aggiungere altri schemi di gioco. Questo dovrebbe essere fatto da persone che usano regolarmente quegli schemi di gioco.

- Aggiungere suoni. Le chiamate «Scala», &etc;, devono essere giocate, e anche quali tessere vengono scartate. Definire suoni standard, ma dare la possibilità al giocatore di registrare la propria voce.

## Domande ricorrenti

Posso cambiare l'aspetto del gioco?

Sì. Per cambiare l'aspetto di &kappname;, usa la barra dei menu per aprire l'utilità di configurazione.

Posso usare la tastiera per assegnare tessere ai giocatori?

Sì. Consulta Far calcolare il punteggio a &kajongg;

## Riconoscimenti e licenza

&kappname; per &kde;

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

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

Valter Mura valtermura@gmail.com

&underFDL; &underGPL;

## Installazione

Usa il pacchetto .deb da . Se per te non funziona, puoi scaricare il pacchetto kajongg-x-y.tar.gz dallo stesso indirizzo e poi eseguire:

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

In entrambi i casi dovrai assicurarti manualmente che siano installati altri pacchetti richiesti. Il pacchetto debian non contiene ancora tali requisiti. &kajongg; ha bisogno di: (i pacchetti debian corrispondenti sono tra parentesi)

- la libreria dei giochi KDE4 (libkdegames5)

- Python 2.5 o superiore (python)

- QT4.4 o superiore (libqt4-core, libqt4-gui, libqt4-svg, libqt4-sql, libqt4-sql-sqlite)

- l'interfacciamento python per QT4 (python-qt4, python-qt4-sql)

- l'interfacciamento python per KDE4 (python-kde4)

- la libreria particolare di python (python-twisted-core)

- sqlite3 (libsqlite3-0)

&documentation.index;