# Manual do &kajongg;

Wolfgang
Rohdewald
wolfgang@rohdewald.de
José
Pires

    zepires@gmail.com

Tradução
2010-09-02
&kappversion;

Esta documentação descreve o jogo &kajongg; na versão &kappversion;

KDE
kdegames
jogo
kajongg
tabuleiro
arcada
jogo de peças
peças
quatro jogadores

## Introdução

### Tipo de jogo:

Tabuleiro, Arcada

### Número de jogadores possíveis:

Quatro

O &kajongg; é um jogo de tabuleiro criado com base no famoso jogo oriental Mahjong (do Chinês 麻將). É jogado por quatro jogadores. Existem diversas regras de jogo disponíveis no mundo inteiro. De momento, o &kajongg; suporta as regras clássicas chinesas, que também são usadas na Alemanha; eventualmente, outros conjuntos de regras irão surgir, sendo possível também a configuração dos mesmos conjuntos. Por favor, faça-o e envie as modificações para o autor do programa, de modo a integrá-las!

O &kajongg; pode ser usado de duas formas diferentes: Pontuar um jogo manual, onde poderá jogar como sempre fez e usar o &kajongg; para o cálculo dos pontos e para registo. Por outro lado, poderá usar o &kajongg; para jogar contra qualquer combinação de jogadores humanos ou computorizados.

## A Disposição do Ecrã

Uma imagem do &kajongg; Imagem

Uma explicação rápida dos componentes do ecrã de jogo.

Barra de Ferramentas

  A barra de ferramentas localiza-se por baixo da barra de menu e contém botões para as acções usadas com maior frequência. O conteúdo da barra de ferramentas poderá ser editado; podê-lo-á tornar invisível também, ganhando mais espaço no tabuleiro.

Tabuleiro

  O Tabuleiro fica no centro do ecrã e é a maior secção da janela. Poderá ver as quatro paredes com uma extensão de 18 peças (poderá ser configurável, eventualmente). Os nomes dos jogadores estão escritos nas paredes, em conjunto com as suas peças de pontos cardeais. A parede prevalente tem um fundo colorido, que na imagem acima corresponde ao Este.

  quando estiver a jogar, o interior das paredes contém as peças descartadas pelos jogadores. Estas são colocadas de forma aleatória. A última peça eliminada tem um contorno a azul.

  Quando estiver a pontuar jogos manuais, o interior das paredes tem uma selecção com todas as peças disponíveis, o selector central. Podê-las-á atribuir aos jogadores com o rato ou com o teclado.

Região do Jogador

  Todos os jogadores têm um espaço no ecrã para as suas peças. A fila superior contém as peças expostas, enquanto a inferior contém as escondidas. No caso dos jogos de pontuação manual, as peças escondidas são apresentadas com uma sombra sobre a peça inteira. No exemplo, o Klaus tem um 'pong' escondido da pedra 9. As peças de bónus vão para o lado direito.

Janela

  A janela apresenta as escolhas que o jogador tem. Na maior parte dos casos, tem um tempo-limite com uma barra de progresso que apresenta o tempo que falta.

Barra de estado

  A barra de estado localiza-se no fundo do ecrã e contém os totais actuais para os jogadores.

## Pontuar um Jogo Manual

Neste modo, o &kajongg; só é usado para calcular a pontuação. Joga como de costume, com pessoas reais numa mesa real e, no fim do jogo, poderá dizer ao &kajongg; as peças que um jogador tem na sua mão e toda a informação necessária para calcular a pontuação - que é o que o programa irá fazer. Em alternativa, poderá calcular manualmente os pontos da jogada e introduzi-los. O &kajongg; irá então fazer os pagamentos entre os vários jogadores e guardar os resultados numa base de dados. É possível suspender um jogo, iniciar outro com outros jogadores e prosseguir os jogos antigos. Todas as regras serão gravadas em conjunto com os jogos, de modo que possa jogar diferentes jogos com diferentes regras.

- A partir do menu, escolha Jogo / Jogo de Pontuação Manual ou carregue em &Ctrl;C.

- Para um jogo novo, associe os jogadores aos quatro ventos e seleccione o conjunto de regras desejado. O &kajongg; irá propor os mesmos valores que o jogo anterior. Se não existir nenhum jogo anterior, irá propor os primeiros quatro jogadores definidos. Lembre-se que não poderá alterar o conjunto de regras ou algumas destas regras após esta selecção. Se quiser rever ou modificar as regras de um jogo, faça-o de antemão no editor de conjuntos de regras.

- Agora irá obter uma nova janela chamada "Indique os resultados da jogada". Veja em Ter o &kajongg; a calcular a pontuação para obter uma descrição mais detalhada.

- Depois de gravar os resultados da jogada, continue com a jogada seguinte.

### Introduzir os resultados da jogada.

#### Pontuações

Uma imagem do &kajongg;
Imagem

Esta é a janela para introduzir os resultados da jogada. Aparece automaticamente quando o &kajongg; pensa que poderá necessitar dela. Podê-la-á mostrar ou esconder sempre com a combinação de teclas &Ctrl;S ou seleccionando o item de menu correspondentes.

Como sempre, o vento prevalente tem o seu fundo colorido.

Aqui poderá introduzir manualmente as pontuações para todos os jogadores. Em alternativa, poderá definir exactamente as peças que um jogador tinha na sua mão. Se optar por fazê-lo, o campo correspondente para o valor da pontuação manual ficará desactivado, dado que o &kajongg; irá calcular automaticamente a pontuação.

Depois de ter introduzido todos os dados relevantes para uma jogada, carregue no botão Gravar a Jogada. Os valores serão introduzidos na base de dados, sendo também inseridos na tabela de pontuações. Poderá ser questionado para mudar as posições dos jogadores, mas também pode optar por não mudar os lugares. As alterações propostas não podem ser personalizadas de momento - se um conjunto de regras necessitar de algo diferente, isso poderá ser alterado.

Se o jogador tiver ganho, a opção na coluna "Vencedor" ficará activa - carregue nesta para o vencedor.

A barra de estado irá mostrar agora os balanços para os jogadores, pelo que poderá depois prosseguir com a ronda seguinte.

##### Introduzir a pontuação manualmente

Um bom jogador irá provavelmente preferir calcular a sua própria pontuação. Nesse caso, podê-la-á introduzir directamente. Isto só é possível, desde que não tenha seleccionado nenhumas peças para este jogador.

Se introduzir uma pontuação manual, já deverá conter tudo excepto as penalidades, não tendo regras opcionais por onde escolher. Existe uma excepção, o "Jogo Perigoso". Isto não influencia nenhumas pontuações, assim como também é nenhuma ofensa. Significa apenas que o pagamento entre os jogadores é diferente: a pessoa ofensiva paga tudo por todos ao vencedor. Os outros dois jogadores não efectuam pagamentos entre si. Isto não é possível personalizar neste momento.

##### Deixar o &kajongg; calcular a pontuação

Se disser explicitamente ao &kajongg; as peças que um jogador apresenta, a introdução das pontuações ficará desactivada para esse jogador nesta janela. Enquanto associa as peças a um jogador, irá ver como a pontuação dele irá aumentar - contudo, assim que adicionar a 14ª peça, a pontuação vai a zero. Isso podê-lo-á surpreender mas, a menos que declare esta como sendo a jogada do vencedor, será reconhecida como uma jogada extensa, que terá sempre zero pontos. Este comportamento é definido pelo conjunto de regras chinesas clássicas, podendo ser diferente se usar um conjunto de regras diferente.

Poderá associar as peças e as combinações com um jogador, usando o rato, o teclado ou ambos. Atribua opcionalmente as peças aos jogadores, arrastando e largando-as no espaço do jogador. Ao largar a peça, ser-lhe-á questionado o que deseja mover: Simples, Par, Pung, Kong, Kong Pedido ou Chow. A fila superior serve para as peças expostas, enquanto a inferior serve para as escondidas. As peças de bónus irão aparecer no lado direito. Poderá também mover as peças entre filas, entre jogadores e para o selector central.

Se preferir usar o teclado, poderá usar o &Tab; para mudar entre o selector central e as rondas dos jogadores. As teclas ESWN movem uma peça dos jogadores a Este, Sul, Oeste e Norte. A tecla xX repõe a peça de volta no selector central. O ESWN vai para o grupo escondido, enquanto o eswn vai para o grupo visível. Poderá mover o cursor entre as peças ou as combinações, usando as teclas de cursores, em que a peça ou combinação actual terão uma moldura azul. Dado que as teclas dos cursores estão distantes das letras no teclado, poderá também usar as teclas hjkl ou HJKL para mover o cursor. O hH move para a esquerda, o jJ para baixo, o kK para cima e o lL para a direita. Assim é como funciona o editor de Unix "vi". O navegador do &kde; 'konqueror' e mesmo este programa de ajuda também suportam estas teclas da mesma forma. Estas teclas poderão ser diferentes de usar uma língua diferente do Inglês, mas não é possível de momento configurá-las.

As opções "Última Peça" e "Última Combinação" são necessárias por algumas regras, como a "última peça completa o par". Só podem ser usadas na jogada do vencedor.

Do lado direito, poderá aplicar manualmente algumas regras. As regras que aparecem nesta lista dependem do conjunto de regras actual e das peças. No exemplo da imagem acima, os jogadores perdedores poderão ter uma opção de "jogo perigoso" - que depende mais uma vez do conjunto de regras e das suas peças. O objectivo dos programadores é manter esta lista de regras a mais curta possível. Optimamente, o &kajongg; deverá ser sempre capaz de determinar automaticamente se uma regra se aplica, mas em alguns casos o &kajongg; não tem informação suficiente ou não é inteligente o suficiente para o decidir.

#### Penalidades

Uma imagem do &kajongg;
Imagem

Na janela para introduzir os resultados da jogada, o botão de Penalidades irá invocar esta janela, na qual poderá introduzir as mesmas penalidades. Isto poderá ser feito em qualquer altura do tempo, independentemente do mecanismo de pontuação normal.

A lista Ofensa mostra todas as ofensas que poderão ser aplicadas às jogadas que os jogadores efectuaram. Escolha uma entre elas.

Agora, poderá adaptar a Penalidade Total. Esta é a soma total que é movida entre devedores e credores. Poderá ser dividida por igual entre eles.

Dependendo do tipo de ofensa, o número de credores e devedores varia. O número correcto de listas é apresentado. Se escolher um jogador, o &kajongg; garante que este jogador só ocorre uma vez, alterando os outros jogadores.

## A reproduzir

Em qualquer altura, poderá activar ou desactivar o Modo de Demonstração. Nesse modo, o computador irá jogar por si. Se não estiver nenhum jogo em curso de momento, será iniciado um novo com o o último conjunto de regras usado.

### Jogar contra o computador

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.

### Jogar com amigos

Se quiser jogar contra outras pessoas reais, irá necessitar de um servidor do jogo onde todos os jogadores, incluindo você mesmo, se terão de ligar. Faça-o, seleccionando outra máquina qualquer ou introduzindo manualmente o nome de uma nova máquina e indicando a sua senha para essa máquina. Será proposta a última senha usada.

Se não tiver uma conta nesse servidor com o nome que introduziu, ser-lhe-á questionado se deseja abrir uma conta. Caso responda afirmativamente, irá obter uma nova janela onde poderá introduzir duas vezes a senha desejada. A sua conta será criada automaticamente.

Depois de se autenticar com sucesso no servidor de jogos, irá obter uma lista das mesas com lugares disponíveis nesse servidor de jogos. Junte-se a uma mesa ou crie uma nova. Se criar uma nova, espere até que os outros lugares sejam ocupados por jogadores. Poderá iniciar o jogo numa mesa que tenha reservado em qualquer altura, sendo que os lugares não ocupados serão ocupados por jogadores computorizados.

A lista de mesas também mostra o nome do conjunto de regras jogado por essa tabela. O conjunto de regras e o seu nome são enviados para o servidor de jogos que inicia a mesa. Se tiver um conjunto de regras idêntico, a mesa mostra o seu nome para o conjunto de regras - isto poderá ser útil se a pessoa que iniciou a mesa fala outra língua, tendo dado outro nome ao conjunto de regras. Do mesmo modo, caso o nome do seu conjunto de regras local apareça, será apresentado a preto. Se porventura não tiver nenhum conjunto de regras idêntico, o nome aparece a vermelho, onde nesse caso poderá usar o botão Comparar para o comparar com os seus próprios conjuntos de regras.

Poderá iniciar o servidor de jogos do &kajongg; de duas diferentes formas:

- ligue-se ao servidor "localhost". Este é o seu próprio computador. Se o fizer, e caso não tenha nenhum servidor a correr, este será iniciado automaticamente. Quando parar de jogar, o servidor será também interrompido.

- inicie manualmente um servidor em qualquer computador que desejar. Tudo o que precisa é ir a uma linha de comandos e iniciar o programa "kajonggserver". Se indicar "kajonggserver --help", apresentar-lhe-á todas as opções disponíveis, como a alteração do porto predefinido, que é o 8149. Este servidor irá executar até que o termine.

Em ambos os casos, terá de dizer aos outros jogadores como aceder ao seu servidor de jogos. Eles irão necessitar do &URL;, ou apenas do endereço IP e porto onde tem o seu servidor à espera de ligações. Poderá ser algo do tipo "meu-pc.dyndns.org:8149" onde o 8149 é o porto. Obviamente, terá de configurar a sua 'firewall', para que o jogador remoto se consiga ligar a esse porto. A comunicação será encriptada.

Se encontrar possíveis erros, poderá querer usar a opção "--showtraffic". Esta mostrar-lhe-á, na consola em que o servidor foi iniciado, as mensagens que seguem entre o servidor do jogo e os clientes.

#### Notas Importantes

- Se quiser ter a certeza de que ninguém fará batota, nenhum dos jogadores humanos deverá ter acesso ao computador onde está o servidor em execução. Obviamente, não poderá nunca evitar que dois jogadores se ajudem um ao outro, porque não pode saber o que realmente estão a fazer. Esses dois jogadores até poderão ser uma e a mesma pessoa.

### Regras do jogo

Por todo o mundo, existem diversas variantes do jogo. Agora, iremos descrever as regras para o Chinês Clássico que é jogado na Alemanha. Contudo, a maior parte das regras básicas são iguais na maioria das variantes.

Dado que o &kajongg; sabe como jogar, esta descrição irá conter as coisas que poderão não ser tão óbvias.

Se quiser aprender o Mah Jong com mais detalhes, consulte por favor a bibliografia.

#### O objectivo do jogo

Cada jogador tenta recolher peças por forma a criar uma jogada vencedora. Ao conseguir esse feito, poderá dizer "Mah Jongg". Numa jogada vencedora, as peças são normalmente agrupadas em cinco combinações: Quatro combinações com três de quatro peças cada e uma quinta combinação que consistem em duas peças iguais. Uma combinação normal contém três ou quatro peças idênticas (chamadas respectivamente de Pung e Kong) ou três peças sucessivas, como o Bambu 3, Bambu 4, Bambu 5 (chamada Chow).

#### O decurso do jogo

Inicialmente, o jogador no vento Este (indicado na parede) tem mais uma peça que os outros jogadores. O Este comece por eliminar uma peça indesejada.

Sempre que uma peça for eliminada, os outros jogadores poderão pedi-la, dizendo o que poderão completar com essa peça (Chow, Pung, Kong, Mah Jong). Só o jogador seguinte poderá pedir um Chow - os outros pedidos são possíveis para todos os jogadores. Uma combinação completa através de um pedido será exposta - tornada visível para todos os jogadores.

Se ninguém reclamar a peça eliminada, o jogador Seguinte - o Sul, seguido depois por Oeste e Norte -, retira uma peça da parede e elimina uma peça indesejada.

Existem várias regras relacionadas com a extensão de um Pung para um Kong (pedindo a quarta peça ou obtendo-a da parede) - estas regras não são explicadas aqui. Contudo, o &kajongg; obviamente conhece-as e certifica-se que são respeitadas. Se for declarado um Kong, o jogador obtém automaticamente uma peça de substituição da parede - caso contrário não seria possível criar as cinco combinações indicadas acima.

#### Ano, Ronda e Jogada

Quando um jogador pedir Mah Jongg ou se terminar num empate, fica completa uma jogada. Agora, exceptuando no caso dos empates, os ventos rodam pelos vários jogadores. Isto é repetido até que cada jogador tenha passado por cada um dos ventos. Esta unidade inteira é chamada de ronda. Um jogo inteiro, também chamado de ano, consiste em quatro destas rondas: a ronda do vento Este, a ronda do vento Sul, a ronda do vento Oeste, a ronda do vento Norte. O vento de uma ronda é também chamado de vento relevante, por porde resultar em melhores pontuações.

Por isso, um jogo completo (um ano) consiste em pelo menos 16 jogadas. Dado que os ventos não rodam para os empates ou quando o jogador Este diz Mah Jongg, é necessário normalmente um número de jogadas superior para um jogo completo.

#### Peças de bónus

Um jogo poderá conter oito peças de bónus (a menos que as regras as excluam). São expostas em separado, do lado direito da região do jogador, dado que nunca são usadas para criar combinações. Contudo, poderão gerar pontos de bónus.

Se um jogador tirar uma peça de bónus, irá também obter uma peça de substituição da parede.

#### Pontuação

No fim de uma jogada, a pontuação de cada jogador é calculada. Em primeiro lugar, os pontos de base contam como 2 pontos para um Pung exposto simples ou 20 pontos para o vencedor. De seguida, aplica-se outro conjunto de regras - estas regras poderão duplicar os pontos, como por exemplo uma duplicação para uma combinação de dragões. Quando for conhecida a pontuação de cada jogada, as diferenças são pagas entre os jogadores - enquanto o vencedor recebe toda a sua pontuação paga pelos outros jogadores. O Este recebe e paga sempre a sua pontuação a dobrar.

Obviamente, o &kajongg; conhece todas as regras aplicáveis, mas um bom jogador sabe as combinações que poderá fazer, para determinados números de pontos, de modo que possa optimizar. Enquanto aprende, recomenda-se que active a janela Explicar as Pontuações.

The exact scoring rules often vary - in &kajongg; you are free to do so with the the ruleset editor.

The ruleset editor also shows you all available rules and what their meaning is. Place the mouse over them and for the more exotic rules help text will appear.

### Como jogar com o &kajongg;

Ser-lhe-á questionado o que deseja fazer. Esta é uma pequena janela que poderá mover para onde quiser - a seguinte irá aparecer no mesmo sítio. Algumas janelas terão um tempo-limite - quando este expirar, a primeira resposta possível fica seleccionada automaticamente para si. Este tempo-limite é configurado no Editor de Conjuntos de Regras, em Opções, Tempo-Limite do Pedido. Todos os jogadores deverão ter o mesmo tempo-limite, o que explica porque isto faz parte do conjunto de regras.

Se precisar de seleccionar uma peça da sua jogada, poderá circular pelas peças com as teclas de cursor para a esquerda ou direita, ou então com as teclas 'h' e 'l', respectivamente. Obviamente, poderá usar também o menu.

Poderá eliminar uma peça, usando o teclado da mesma forma que faz para todas as acções. Em alternativa, poderá usar o rato e mover a peça da sua mão para a área de eliminação (o interior das paredes). A colocação da peça na área de eliminação será feita à mesma pelo computador - porque a colocação deverá ser a mesma para os jogadores.

Muitas das vezes, as janelas irão oferecer opções que não se aplicam de facto, como invocar um Pung quando não tem as peças necessárias. Isso é o desejado - como acontece num jogo real.

As peças descartadas são colocadas aleatoriamente entre as paredes. Algumas variantes do jogo definem onde deverão ser colocadas as peças, mas isso ainda não é configurável. Quando for, fará parte do conjunto de regras.

## Apresentação à Interface

### O Menu Jogo

Jogo Jogo de Pontuações Manuais

  Só pontuar um jogo executado manualmente.

  Poderá carregar um jogo antigo ou iniciar um novo. Por omissão, só os jogos pendentes (i.e., não terminados) aparecem na lista de selecção. Poderá mostrar opcionalmente todos os jogos, incluindo os terminados. Aqui poderá também apagar os jogos.

Jogo Jogar

  Jogar com outros jogadores (humanos ou computorizados)

Jogo Interromper

  Interrompe o jogo actual. Se foi um jogo manual apenas com pontuações, podê-lo-á prosseguir mais tarde. Se jogou com recurso ao &kajongg;, o jogo ainda não pode ser continuado.

Jogo Sair

  Sai do &kappname;.

### O Menu Ver

Ver Pontuação

  Janela de Pontuações: Mostra ou esconde a janela de pontuações. Esta janela está explicada aqui.

Ver Tabela de Pontuações

  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.

Ver Explicar as Pontuações

  Explicar as Pontuações Tabela de Pontuações Tabela de Pontuações Explica como foi calculada a pontuação para a ronda actual.

### O Menu Configuração

Configuração Jogadores

  Adicione, modifique e apague jogadores.

  As senhas nesta tabela são as usadas por omissão ao tentar ligar-se a um servidor de jogos. A mudança da senha que tiver escolhido inicialmente para um servidor de jogos não é realmente útil, dado não existir ainda uma forma de você alterar a sua senha no servidor de jogos. Teria de pedir ao administrador do servidor para fazer isso por si, directamente na base de dados.

Configuração Mudar o Ângulo Visual

  Altera o ângulo de visualização das peças no sentido anti-horário.

Configuração Modo de Demonstração

  Activa ou desactiva o Modo de Demonstração. Veja mais detalhes aqui.

Configuração Modo de Ecrã Completo

  Muda entre o modo de ecrã completo e o modo normal.

Configuração Mostrar a Barra de Ferramentas

  Mostra ou esconde a barra de ferramentas.

Configuração Mostrar a Barra de Estado

  Mostra ou esconde a barra de estado.

Configuração Configurar os Atalhos...

  Mostra uma janela normal de configuração de atalhos do &kde; para mudar os atalhos do teclado do &kappname;.

Configuração Configurar as Barras de Ferramentas...

  Mostra uma janela normal do &kde; onde poderá configurar os ícones da barra de ferramentas.

Configuração Configurar o &kappname;...

  Abre uma janela de configuração para o &kappname;.

### O Menu Ajuda

&help.menu.documentation;

## Configuração do Jogo

Janela de Configuração
Janela de Configuração

A opção de menu Configuração Configurar o &kappname;... abre a janela para Configurar o &kappname;.

Se carregar no botão Cancelar aqui, todas as suas alterações de configuração serão repostas, incluindo tudo o que fez com o editor de conjuntos de regras.

Poderá também seleccionar as diferentes páginas com o teclado: o &Ctrl;1 selecciona a primeira página com as opções para Jogar, o &Ctrl;2 selecciona a segunda página, e assim por diante.

### Opções de reprodução

Mostrar as sombras das peças

  Isto mostra as peças com contornos e sombras. Também existe algum espaço entre as filas de peças, sendo as peças das paredes apresentadas de forma que perceba que a parede tem duas ou três peças de altura. Por isso, se desactivar esta opção, terá uma apresentação mais simples, com peças ligeiramente maiores. Isto pode ser útil para ecrãs pequenos.

Reorganizar as peças escondidas em combinações

  Esta opção agrupa as combinações que um dado jogador possui. Em alguns casos, o agrupamento não será o que deseja, pelo que poderá preferir não ter qualquer agrupamento, tal como aconteceria num jogo real.

Mostrar apenas as acções possíveis

  Ao jogar, mostra apenas as acções possíveis como o "Não pedir" ou o "Pung".

Usar os sons se possível

  Permite-lhe ouvir as eliminações e pedidos. Se os outros jogadores gravaram ficheiros de sons com a sua própria voz, podê-los-á ouvir assim.

Deixar os outros ouvirem a minha voz

  Se gravou ficheiros de som com a sua voz, esta opção permitirá aos outros jogadores ouvirem as suas eliminações e pedidos com a sua voz.

Velocidade da animação

  Define a rapidez com que as peças se devem mover. Se mover a barra para a direita, o movimento das peças não é animado: as peças simplesmente mudam de posição.

#### Som

É possível gravar ficheiros de som para os seus pedidos, os quais serão escutados pelos outros jogadores. É necessário todavia algum trabalho manual:

- Primeiro, terá de descobrir onde guardar os ficheiros com a sua voz. Normalmente, esta pasta é a '~/.kde/share/apps/kajongg'. Por isso, se o seu nome de utilizador for 'ze', poderá ser algo do tipo /home/ze/.kde/share/apps/kajongg. Aí dentro, irá encontrar a base de dados 'kajongg.db'.

- Na pasta que encontrou, crie uma nova sub-pasta chamada `voices`.

- Na pasta `voices`, crie outra sub-pasta com o nome do seu jogador. Este é o nome que usa ao ligar-se a um servidor de jogos. Poderá também querer definir vozes para os jogadores `ROBOT 1`, `ROBOT 2`, `ROBOT 3`.

- Nessa sub-pasta, poderá colocar os ficheiros de som. Terão de ser codificados com a compressão de áudio Ogg Vorbis, devendo os nomes dos ficheiros ter a extensão `.ogg`.

- Um ficheiro único tem um nome do tipo `s3.ogg` - esta é a Pedra 3. Poderá definir esses ficheiros para todas as peças, bem como para todos os pedidos e anúncios.

Certifique-se que a duração do som é curta mas emitida de forma claraq - este jogo poderá ser jogado de forma muito rápida quando se habituar a ele. É mais fácil se escrever primeiro uma lista com tudo o que deseja falar. Não o leia como uma sequência de itens; tente pronunciar cada um deles como se fosse o único, ao jogar. A leitura disto necessita de alguma prática.

Esta é apenas uma possibilidade para criar os ficheiros de som:

- Grave um ficheiro de som com o programa `qarecord` e grave-o no formato `WAV`. Neste ficheiro de som único, emita logo todos os sons desejados.

- Edite esse ficheiro com o editor de sons `audacity`. Nesse editor, use o rato para marcar um intervalo nas ondas sonoras. O editor irá reproduzir apenas essa parte. Repita o procedimento até ter seleccionado a parte correcta. Isto será mais fácil se usar a opção Ver Ampliar. Use a opção Ficheiro Exportar a Selecção e grave no formato OGG. Nas Opções, escolha a qualidade baixa - esta é suficiente e, de certa forma, até desejável, porque reduz o tempo de transferência para os outros jogadores.

Estes são os nomes que deverá definir. Adicione sempre o `.ogg` a eles:

##### Nomes dos ficheiros de som

&s1; .. &s9; | Pedra 1 a Pedra 9
&b1; .. &b9; | Bambu 1 a Bambu 9
&c1; .. &c9; | Carácter 1 a Carácter 9
&we; &ws; &ww; &wn; | Os ventos de Este, Sul, Oeste e Norte
&db; &dr; &dg; | Os dragões azul/branco, vermelho, verde
&chow; &pung; &kong; &mahjongg; | Os pedidos principais
&originalcall; &violatesoriginalcall; | Pedido do original e a sua violação
&dangerousgame; | Um jogador deixou um canhão (jogo perigoso)
&nochoice; | Um jogador declara que não tem outra opção, a não ser fazer um jogo perigoso

### Opções das Peças

Editor de conjuntos de peças
Editor de conjuntos de peças

Usar o selector de Peças para escolher os gráficos para as peças.

### Opções do Fundo

Selector do fundo
Selector do fundo

Usar o selector do Fundo para escolher uma imagem de fundo para o jogo.

Alguns fundos, como a Paisagem Chinesa, levam algum tempo a carregar. Se achar que o programa deva iniciar mais depressa ou se o dimensionamento da janela leva muito tempo, poderá tentar outro fundo qualquer.

### Editor de Conjuntos de Regras

Editor de Conjuntos de Regras
Editor de Conjuntos de Regras

Use o Editor de Conjuntos de Regras para personalizar as mesmas. Os conjuntos de regras predefinidos aparecem a itálico, enquanto os personalizados aparecem com um tipo de letra normal. Os conjuntos predefinidos não poderão ser alterados de forma alguma. Uma actualização do &kajongg; podê-las-á alterar. Os conjuntos de regras personalizados não serão alterados por nenhuma actualização.

Ao iniciar um jogo novo, poderá escolher um conjunto de regras para esse jogo. Todos os conjuntos de regras definidos no editor de conjuntos de regas poderão ser usados. O conjunto de regras é gravado em conjunto com o jogo, pelo que poderá alterar sempre os conjuntos de regras aqui - as suas alterações só irão afectar os jogos futuros.

#### Regra, Pontuação e Unidade

Basta fazer duplo-click sobre o item a alterar.

#### Definição

A definição de uma regra poderá ser relativamente complexa, pelo que existe um capítulo separado para este efeito, o Definir uma Regra. Não terá normalmente de alterar uma definição. Isto define essencialmente as jogadas em que a regra se aplica.

#### Copiar e Remover

Poderá copiar regras individuais dentro de um conjunto ou conjuntos de regras inteiros. Dado que os conjuntos predefinidos são imutáveis, as regras individuais só poderão ser copiadas para dentro de conjuntos de regras personalizados.

Poderá remover conjuntos inteiros ou regras individuais dentro dos conjuntos. Mais uma vez, isto até poderá ser feito se os jogos existentes usarem este conjunto, dado que cada jogo tem a sua própria cópia do conjunto de regras. Poderá ver os conjuntos de regras dos jogos antigos: Carregue o jogo antigo e mostre a sua tabela de pontuações.

#### Comparar

Comparador de Conjuntos de Regras Comparador de Conjuntos de Regras Poderá seleccionar este comando quando seleccionar um conjunto de regras inteiro. Permite-lhe comparar o conjunto de regras seleccionado contra qualquer outro conjunto de regras.

### Atalhos de Teclado por Omissão

A opção de menu Configuração Configurar... permite-lhe modificar os atalhos de teclado por omissão.

As combinações de teclas por omissão são as seguintes:

F1

  Mostra este manual.

&Ctrl;C

  Pontua um jogo manual.

&Ctrl;N

  Joga um jogo com outros amigos ou jogadores computorizados.

&Ctrl;W

  Interrompe o jogo actual.

&Ctrl;Q

  Sai do programa.

&Ctrl;T

  Mostra a tabela de pontuações.

&Ctrl;G

  Muda o ângulo de visualização.

&Ctrl;D

  Activa ou desactiva o Modo de Demonstração.

&Shift;F1

  Ajuda O Que É Isto?

&Ctrl;&Shift;F

  Modo de Ecrã Completo

## Definir uma Regra

O motor de pontuações e muitos outros aspectos do &kajongg; poderão ser personalizados com o editor de conjuntos de regras. Uma regra consiste num nome, numa pontuação (incluindo a sua unidade) e uma definição.

### Grupos de Regras

Existem diversos grupos de regras:

Regras das Combinações

  As regras de combinações são aplicadas às combinações individuais, independentemente do resto da jogada.

Regras da Jogada

  As regras da jogada aplicam-se à jogada toda, incluindo todos os jogadores.

Regras do Mah Jongg

  As regras do Mah Jongg definem como deverá ser composta uma ronda vencedora. Normalmente são quatro combinações, com 3 ou 4 peças cada uma, e um par. Mas poderão existir outras rondas especiais e diferentes, como os 13 Órfãos no Chinês Clássico.

Regras do Vencedor

  As regras do vencedor aplicam-se à jogada inteira, mas apenas ao vencedor. Isto inclui a maioria das rondas especiais. Essas regras não têm de aplicar o número correcto de peças.

Opções

  Aqui poderá encontrar alguns parâmetros especiais, como os pontos para uma jogada limitada.

Penalidades

  As penalidades são aplicadas manualmente pelo utilizador.

#### Ordem de Execução

- crie uma lista de regras aplicáveis, a partir das regras de combinações e de jogadas

- descubra, usando as regras do Mah Jongg, se a jogada do vencedor declarado é realmente uma jogada vencedora.

- para o vencedor, aplique as regras do vencedor aplicáveis

- se alguma das regras tiver a acção '&absolute;', mantenha apenas essas. Ainda está por definir o que acontece, caso seja encontrada mais que uma.

- se alguma das regras definir limites, retire todas as outras

- aplique as regras encontradas por essa ordem

### A Definição

A definição é uma cadeia única de caracteres, dado que o objectivo é torná-la simples de ser gravada numa base de dados. Consiste em diversas partes separadas pelos dois caracteres "||". Uma parte expressa tanto uma condição sob a qual se aplica a regra ou expressa algumas acções. Só poderá ser definida uma parte para as acções, mas poderá definir várias para as condições. A regra aplica-se assim que pelo menos uma das expressões de condições corresponder à jogada.

O &kajongg; vem com dois conjuntos de regras predefinidos, que implementam exactamente as mesmas regras chinesas clássicas que se jogam também pela DMJL na Alemanha. Isto dever-lhe-á dar bastantes exemplos.

Estas são todas as partes reconhecidas:

Expressão Regular com Capitalização Variável

  Uma parte que comece por um I é uma Expressão Regular que não faz qualquer diferença entre maiúsculas e minúsculas.

Acção

  Uma parte que comece por A é uma lista de Acções.

Expressão Manual

  Uma parte que comece por M é uma Expressão Regular opcional. Para os jogos de pontuação manual, define se esta regra deverá ser seleccionada pelo jogador assinalado. O M inicial não pertence à expressão regular. Um exemplo disto seria a regra "Última Peça Retirada da Parede Morta".

Função

  Uma parte que comece por F é uma função. Algumas vezes, as expressões regulares seriam demasiado complicadas ou demasiado lentas. Nesses casos, a regra está codificada no programa em si, podendo ser referenciada através do nome da sua função. No momento actual, só está definida uma função `LastOnlyPossible`. Esta função define se a última peça era a única possível para poder ganhar.

Expressão Regular

  Qualquer outra parte é uma Expressão Regular.

### Expressões Regulares

Uma expressão regular é uma ferramenta de programação muito poderosa para fazer a correspondência de cadeias de caracteres. É poderosa, mas também é bastante difícil. Não é para os jogadores normais. Existem livros disponíveis que não fazem mais nada a não ser explicar as expressões regulares.

Existem diversos dialectos para as expressões regulares. O &kajongg; está escrito na linguagem de programação Python. Dado que a biblioteca-padrão do Python contém um módulo para expressões regulares, é este que é usado.

Para mais detalhes, veja em

Tudo o que possa ter uma influência na pontuação de uma jogada é codificada como uma única cadeia de caracteres. Depois, o &kajongg; verifica se a expressão regular corresponde a esse texto. Se o fizer, a regra é aplicada.

Por exemplo, esta expressão regular corresponde à jogada por limite "Todos os Verdes":

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

#### Estrutura do Texto de uma Jogada

O conteúdo do texto de uma jogada é sempre o mesmo, independentemente da língua que usar no seu ambiente de trabalho.

O texto que representa uma jogada consiste em diversos textos parciais, separados por um espaço. A ordem destas partes é sempre a mesma, exceptuando as combinações no início.

O &kajongg; é capaz de reagrupar as peças escondidas em combinações, com o objectivo de obter uma pontuação máxima. Não interessa como são agrupadas as peças para isto funcionar. Contudo, quando se relaciona com as as jogadas por limite, isto poderá falhar. É por isso que o &kajongg; irá tentar o agrupamento original das peças, tal como é introduzido pelo utilizador, bem como a variante reagrupada. Se algum deles corresponder à expressão regular da regra, esta aplicar-se-á. A variante que resultar na melhor pontuação é a escolhida.

Aqui vem um exemplo. Este está apenas numa linha, mas está aqui dividido por razões de legibilidade. Para além disso, esta frase está repetida uma vez, porque algumas expressões regulares são muito mais fáceis de escrever se as partes poderem ser referenciadas por outra ordem. Veja a regra Roubar o Kong: A sua expressão regular vê primeiro o grupo L (Última Peça) antes de olhar para as combinações.

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

Uma peça é representada por 2 caracteres. O primeiro é o 's' para pedra, 'b' para bambu, 'c' para carácter, 'w' para vento, 'd' para dragão, 'y' para um bónus de estação e 'f' para um bónus de flor. O segundo é 1..9 para os naipes, e,s,w,n para os ventos e w,r,g para os dragões (branco, vermelho, verde). As peças visíveis têm o primeiro carácter em minúsculas, enquanto as escondidas o têm em maiúsculas.

Todas as partes seguintes estão sempre presentes por esta ordem, excepto a parte "Última Peça": Esta existe apenas para a jogada vencedora.

Combinação

  Uma parte que comece por um dos caracteres `s,b,c,d,w,S,B,C,D,W` é uma combinação. Uma combinação contém um número arbitrário de peças. O &kajongg; irá dividir as combinações com demasiadas peças, de modo a tentar maximizar a pontuação.

  É usada uma sintaxe especial para os 'kongs': o 'c1c1c1c1' é um 'kong' aberto. O 'c1c1c1C1' é um 'kong' aberto, onde foi pedida a 4ª peça, completando um 'pung' escondido. Isto é necessário para o jogo limitado 'jogo de cores verdadeiras escondidas'. O 'c1C1C1c1' é um 'kong' declarado escondido. O 'C1C1C1C1' seria um 'kong' não declarado e escondido. Contudo, dado que não está declarado, conta como um 'pung'. Como tal, esta combinação será dividida num 'pung' C1C1C1 e num C1 individual.

  As peças de bónus aparecem a seguir a todas as combinações.

Resumo

  Uma parte que começa por / contém a informação de resumo das combinações. Isto torna mais simples criar expressões regulares. Cada combinação é representada por quatro caracteres. O primeiro carácter é um de `sbcdwSBCDW`, correspondendo as minúsculas aos expostos e as maiúsculas aos escondidos. O segundo carácter é um número que diz quantas peças a combinação contém. Vai de 0, para um 'chow', e de 1 até 4 para um 'kong'. Os dois últimos caracteres contêm o valor desta combinação.

Resumo alternativo

  A parte que começa por '-' é idêntica ao resumo acima, mas contém os 'kongs' pedidos como 'kongs' escondidos. Algumas regras, como os "Três Pongs Escondidos", tratam um 'kong' pedido como escondido.

Comprimento da jogada

  A parte que começa por % contém informações acerca do comprimento da jogada: 's' é uma jogada curta com peças a menos, 'n' é uma jogada com o número correcto de peças e 'l' é uma jogada longa com peças a mais.

Mah Jongg

  Uma parte que começa por 'm', 'M' ou 'x' contém informações adicionais. O 'M' corresponde a uma jogada vencedora, enquanto o 'm' corresponde a uma jogada perdedora, e o 'x' corresponde a uma jogada proibida no Mah Jongg, por exemplo. O 'M'/'m'/'x' é seguido de um carácter para o próprio vento, um carácter para o vento prevalente, um carácter para a origem da última peça que conduziu ao Mah Jongg e um carácter para as declarações que um jogador fez.

  Estas são as origens possíveis da última peça: w=parede, d=descartado, e=beco sem saída, z=última peça do fim, Z=última peça descartada do fim k=roubar o kong, 1=benção da terra/céu. Os valores 'w' e 'd' são especiais - são de certa forma valores intermédios. Ao escolher uma peça escondida como última peça, a origem é mudada para 'w'. De seguida, diversas regras dizem que só são aplicadas se a última peça vier da parede. Como tal, isto permite uma melhor selecção prévia das regras manuais que se aplicam de facto. Para uma melhor compreensão, veja por favor as regras do manual e consulte a acção &lastsource;.

  Estas são as declarações possíveis: a=pedir ao início, t=sorte a dobrar.

Última Peça

  Uma parte que começa por L contém informações acerca da última peça. Primeiro vem a última peça propriamente dita, seguida da combinação que foi terminada com a última peça. É necessária esta última combinação para a regra "A Última Peça é a Única Possível", porque nem sempre é suficiente saber que é apenas a última peça. Lembre-se que a última combinação não poderá ser um Kong, porque se completar um Kong, terá de colocar uma peça de substituição.

Jogada Limitada por Pedido

  Isto ainda não está implementado mas poderá ser necessário para as regras que são definidas pela BMJA (na Inglaterra). Uma parte que começa por K contém todas as peças possíveis a verificar, caso sejam atribuídos pontos para um jogada limitada pedida. Poder-se-á usar a força bruta e verificar todas as peças, mas isso poderá levar bastante tempo.

### Acções

Todas as acções de uma regra estão definidas numa única sequência de texto. Estas são separadas por espaços. Algumas delas definem um valor.

&payforall;

  O jogador fez algo realmente errado, pelo que deverá pagar por todos. Mesmo assim, não é uma penalidade, dado que a soma dos pagamentos é a mesma - só o pagador é que muda. Do mesmo modo, os dois jogadores não envolvidos não efectuam pagamentos.

&payers;=X

  Define quantos pagadores esta regra de penalidade implica. O X é um número.

&payees;=X

  Define quantos receptores de pagamento esta penalidade implica. O X é um número.

&absolute;

  Esta regra define um pagamento absoluto. A pontuação da jogada é ignorada. Usado para as regras de penalidades.

&lastsource;

  Esta acção define a origem da última peça. É usada nas regras manuais como a "última peça de um beco sem saída". A definição da última origem com esta acção serve como filtro para outras regras - se só forem despoletadas para determinadas origens. Essas outras regras também poderão ser regras manuais, como é óbvio. Como tal, esta filtragem irá reduzir a quantidade de regras manuais que são apresentadas ao utilizador na janela de pontuação. Se isto parecer complicado, basta brincar um pouco com a janela de pontuações e ver as opções de marcação a aparecer ou a desaparecer, dependendo da origem da última peça.

## Problemas conhecidos

- Ainda não é possível ao próprio jogador abrir uma conta no servidor de jogos.

- No modo de jogo, as penalidades ainda não são possíveis.

- Os jogadores computorizados ainda são relativamente estúpidos.

- Os nomes dos jogadores computorizados ainda não podem ser configurados.

- Computer games cannot yet be resumed.

## Possíveis funcionalidades futuras

- Adicionar mais conjuntos de regras. Isto deverá ser feito opcionalmente pelas pessoas que usam esses conjuntos de regras com regularidade.

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

## Perguntas mais frequentes

Quero alterar a forma como este jogo aparece. Posso fazê-lo?

Sim. Para mudar a aparência do &kajongg;. use a opção do menu para abrir o utilitário de configuração.

Posso usar o teclado para atribuir peças aos jogadores?

Sim. Veja como Ter o &kajongg; a calcular a pontuação

## Créditos e Licença

O &kajongg; para o &kde;

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

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

Tradução de José Nuno Pires zepires@gmail.com

&underFDL; &underGPL;

## Bibliografia

- 'Das Chinesische Mah-Jongg-Spiel' de Uwe Martens 2005, Books on Demand GmbH, Norderstedt. Este livro é uma referência em Alemão excelente, que contém tudo o que quiser saber sobre as regras usadas na Alemanha e sobre muitos outros aspectos do jogo.

- 'The Complete Book of Mah-Jongg' de A. D. Millington, 1977 (com várias edições posteriores até 2003), Weidenfeld & Nicolson, Londres. Esta é a melhor referência para o Mah Jongg Chinês clássico, como é jogada no mundo Ocidental. Poder-lhe-á dar dicas valiosas sobre as estratégias de jogo.

- 'Mah-Jong' de Gwyn Headley e Yvonne Seeley, 3a edição, 2008, A & C Black Publishers Ltd., Londres. Este livro é uma referência muito simples de usar, concentrando-se nas regras usadas na Grã-Bretanha, definido pela BMJA (British Mah Jong Association).

## Instalação

use o pacote .deb de . Se não funcionar para si, poderá obter o kajongg-x-y.tar.gz no mesmo endereço e depois fazer o seguinte:

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

Em ambos os casos, terá de se certificar manualmente que os outros pacotes necessários estão instalados. O pacote da Debian ainda não contém esses requisitos. O &kajongg; necessita de: (pacotes correspondentes na Debian entre parêntesis)

- a biblioteca de jogos do KDE4 (libkdegames5)

- Python 2.5 ou superior (python)

- QT4.4 ou superior (libqt4-core, libqt4-gui, libqt4-svg, libqt4-sql, libqt4-sql-sqlite)

- as interfaces em Python para o QT4 (python-qt4, python-qt4-sql)

- as interfaces em Python para o KDE4 (python-kde4)

- a interface 'twisted' em Python (python-twisted-core)

- sqlite3 (libsqlite3-0)

&documentation.index;