# Manual do &kappname;

Gael
Kleag
de Chalendar

    Kleag@free.fr

José
Pires

    jncp@netcabo.pt

Tradução
2002-2008
Gael de Chalendar
&FDLNotice;
18/09/2008
4.1.2

O &kappname; é uma versão computorizada de um conhecido jogo de estratégia. Existe uma versão comercial, bem como outro clone em GPL, mas o autor criou este jogo como um exercício de aprendizagem de C++, sendo o responsável pelo seu desenvolvimento até agora (veja o README para mais detalhes).

Na versão actual, o &kappname; é um jogo multi-jogador com suporte para a rede, tendo uma IA básica. (veja o TODO para mais detalhes)

Esta documentação dá a informação principal que necessita para começar a jogar. Leia por favor as dicas e as mensagens da barra de estado para terminar a sua informação. Existe um capítulo que explica como criar novos visuais para o &kappname;

O objectivo do jogo é simplesmente conquistar o Mundo... Para tal, é preciso atacar os seus vizinhos com os seus exércitos. Pacífico, não é :-)

KDE
kdegames
jogo
estratégia
Risco
livre
GPL
Rede
IA

## Introdução

O &kappname; é uma versão computorizada de um conhecido jogo de estratégia. Existe uma versão comercial, bem como outro clone em GPL, mas o autor criou este jogo como um exercício de aprendizagem de C++, sendo o responsável pelo seu desenvolvimento até agora (veja o README para mais detalhes).

Aqui está uma imagem do &kappname; Imagem

Na versão actual, o &kappname; é um jogo multi-jogador com suporte para a rede, tendo uma IA básica. (veja o TODO para mais detalhes)

Esta documentação dá-lhe apenas a informação principal que necessita para começar a jogar. Leia por favor as dicas e as mensagens da barra de estado para terminar a sua informação.

O objectivo do jogo é simplesmente conquistar o Mundo... Para tal, é preciso atacar os seus vizinhos com os seus exércitos. Pacífico, não é ? :-)

## Usar o &kappname;

### Jogar com o &kappname;

Nota preliminar : o mapa poderá ser deslocado através de três métodos:

- Poderá colocar o sue cursor perto de um extremo da janela, para que o mapa se desloque nessa direcção

- Poderá usar a roda do seu rato: sem modificadores, deslocar-se-á na vertical; se carregar na tecla &Alt;, deslocar-se-á na horizontal

- Poderá usar as teclas de cursores

#### Iniciar um jogo

Quando o &kappname; é iniciado, aparece-lhe um menu principal. O menu principal do &kappname; Menu principal

Novo Jogo

  Inicia um jogo novo

Juntar

  Tenta ligar-se a um jogo em rede como cliente

Carregar

  Use isto para carregar um jogo gravado anteriormente

Sair

  Talvez não queira mais jogar ?

Se seleccionar o Novo Jogo, aparecer-lhe-á a janela de Propriedades do novo jogo, onde poderá escolher o número de jogadores, o tema a usar, o tipo de jogo (atingir o objectivo conquistado ou específico) e, finalmente, se este jogo será jogado em rede ou se será completamente local. A janela de Novo Jogo A janela de Novo Jogo

Para iniciar um jogo em rede, assinale a opção Jogo em rede à direita do campo incremental do número de jogadores. Depois de carregar em OK, poderá escolher as opções de rede: o número de jogadores em rede e o porto de TCP onde escutar ligações. Janela de parâmetros do Jogo em Rede Janela de parâmetros do Jogo em Rede

Depois, os jogadores em rede poder-se-ão ligar, escolhendo a opção Ligar no ecrã inicial e indicando o IP ou o nome da máquina e número de porto que tiver definido. Janela de ligação a um jogo em rede Janela de ligação a um jogo em rede

Cada ligação é indicada pela mensagem abaixo na barra de estado. Mensagem de ligação Mensagem de ligação

Suponha que deseja manter a configuração actual e carregar em OK. Irá então configurar dois jogadores, um a seguir ao oturo. Para cada um, irá escolher o seu nome, a sua nacionalidade e, se o preferir, definir uma senha para que mais ninguém possa reutilizar este jogador ao carregar este jogo. Por último, poderá definir aqui se este jogador é o computador ou um ser humano. A janela de Configuração do Jogador A janela de Configuração do Jogador

Depois, se optar jogar por objectivos, aparecerá o objectivo de cada jogador local seguido de um aviso para os jogadores adversários que possam ver a mensagem no mesmo computador. A janela de Apresentação do Objectivo A janela de Apresentação do Objectivo A mensagem de aviso da Apresentação do Objectivo A mensagem de aviso da Apresentação do Objectivo

#### Distribuição

No início do jogo, os países são distribuídos por todos os jogadores. Cada país contém um exército (representado por um soldado de infantaria) neste momento. Cada jogador ainda tem alguns exércitos para distribuir nos seus países, quando chegar a sua vez (indicado pela presença do seu nome e bandeira na barra de estado). Repare que cinco exércitos são representados por um soldado de cavalaria e 10 por um canhão.

Para colocar um exército num dos seus países, carregue nele com o botão esquerdo do rato. Para remover um exército, carregue com o botão direito. Repare, como regra geral, que nunca será capaz de remover mais exércitos do que os lá estiverem postos. Colocação de exércitos Colocação de exércitos

Quando um jogador já tiver distribuído todos os seus exércitos, o jogador seguinte fica automaticamente seleccionado para fazer a mesma coisa. Quando todos os jogadores tiverem terminado de distribuir os seus exércitos, existem duas possibilidades que poderão ser escolhidas com dois botões no painel direito:

Redistribuição Reciclar

  Um jogador poderá querer alterar alguma das suas escolhas. O primeiro jogador poderá então remover um exército que tenha colocado num país com o botão direito do rato e colocá-lo noutro com o botão esquerdo. Quando terminar, passa o controlo ao jogador seguinte com o botão Válido. Quando todos tiverem terminado, aparecem os dois botões de novo.

Fim da redistribuição Concluído

  A redistribuição está terminada e o jogo pode prosseguir.

#### Combate

Depois da distribuição, poderá dar início a uma jogada. Cada jogador joga na sua vez. Aí, terá a opção de:

Jogador seguinte Jogador Seguinte

  A vez do jogador actual termina e passa a ser a vez do jogador seguinte.

Ataque 1 Ataque 2 Ataque 3 Atacar com um, dois ou três exércitos Ataque automático Ataque automático

  Para atacar, arraste com o rato desde o país de origem e largue no país a atacar. Aparecerá então um menu de contexto que apresenta as opções acima. Menu de ataque Menu de ataque Para um país X atacar um país Y com Z exércitos, deverá cumprir 2 condições:

  - os dois países deverão ser vizinhos;

  - o país X deverá ter pelo menos (Z + 1) exércitos antes do ataque.

  Se o ataque for válido, aparece uma janela - caso seja necessária - para o adversário saber se quer defender-se com um ou dois exércitos ou se deixa o computador decidir.

  Depois da defesa terminar, o combate irá acontecer e ser resolvido. Isto será descrito em baixo. Janela de Defesa Janela de Defesa

Mover os exércitos Mover os exércitos de um país para outro

  Esta é a última acção da jogador de um participante. Dá-lhe a possibilidade de mover alguns exércitos de um dos seus países para outro vizinho deste. Para escolher os dois países, arraste e largue por favor, como faria num ataque. Quando tiver escolhido ambos os países, o grupo de botões para "Mover os exércitos" irá aparecer uma barra onde poderá escolher o número de exércitos em cada país.

#### Resolução do combate

Para cada exército na batalha, existe um lançamento de dados correspondente. O jogador que obtiver um número maior nos dados, quer no ataque quer na defesa, ganha ao outro, ganhando (ou, no caso inverso, perdendo) exércitos de acordo com o número dos dados lançados. Resultado do ataque apresentado Resultado do ataque apresentado

Se o número de exércitos da defesa ficar igual a 0, a pertença desse país muda para o atacante: é colocada a sua bandeira e instala-se um dos seus exércitos atacantes no seu novo país. Os botões para "Mover os exércitos" ficam disponíveis na barra de ferramentas, de modo a permitir ao atacante mover outros exércitos do país de origem para o país adquirido. Barra de invasão Barra de invasão

#### Fim da jogada

Para terminar a sua jogada actual, e se não lhe apetecer mover exércitos, poderá carregar no botão de Jogador Seguinte da barra de ferramentas.

Quando todos tiverem jogado, terminou a jogada. São distribuídos alguns exércitos pelos jogadores, em função dos países que possuem: 1 por cada grupo de três países, com um mínimo de 3. Existe também um bónus para os jogadores que possuam um continente inteiro, que é diferente para cada um. Este bónus é igual a (no visual predefinido):

##### Bónus pelos continentes

Continente | Bónus
--- | ---
América do Norte | 5
América do Sul | 2
Europa | 5
África | 3
Ásia | 7
Área do Pacífico | 2

Quando um jogador terminar a distribuição dos seus exércitos, pode carregar no botão Válido, de modo a permitir ao jogador seguinte a distribuição dos seus exércitos de bónus. Como na distribuição inicial, quando todos tiverem terminado, poderão iniciar um novo ciclo de redistribuição ou uma nova jogada...

#### Enviar mensagens para outros jogadores

Se estiver a jogar localmente e quiser comunicar com outros jogadores, então podê-lo-á fazer... Mas se estiver a jogar em rede, poderá usar a área de conversação no fundo da janela (poderá estar escondida ou visível, usando para tal a seta). Basta escrever a mensagem e carregar em &Enter;. Enviar mensagens Enviar mensagens

## Referência de Comandos

### A janela principal do &kappname;

#### Os botões

Sair do Jogo Sair

  Faz com que o programa saia.

Novo Jogo Novo Jogo

  Inicia um jogo novo. Faz com que apareça uma janela a perguntar o número de jogadores. Depois disso, cada jogador terá de preencher o seu nome noutra janela.

## Guia de Programação do &kappname;

Por favor, veja a documentação da API em http://api.kde.org/. Está bastante completa, ao que sei. Pelo contrário, os comentários praticamente não existem nos ficheiros de implementação em `.cpp`.

O autor desenvolveu originalmente este jogo no Windows, com o Borland C++ e WinG. Foi convertido para &Java; antes de o converter para C++ e &kde;. No início, foi usado o Francês ou uma mistura de Francês e Inglês para nomear os identificadores (nomes de classes, métodos, membros, &etc;). Foi também usado o Francês nos comentários. Quando optou por distribuir este jogo, foi tudo convertido para Inglês... contudo, o autor não fala Inglês nativamente: sugira quaisquer alterações ou envie-as, seja para os comentários ou para esta documentação

## Criar novos visuais

O &kappname; pode mudar completamente o seu visual. Para os que tenham capacidades gráficas, criar um visual é tão simples como copiar um existente, editar ou alterar os gráficos e os dados num ficheiro de configuração '.desktop'. Um último passo é editar o ficheiro que descreve o que deseja instalar.

Todos os exemplos (texto e imagens) são retirados no visual predefinido do &kappname;

### Estrutura de pastas e ficheiros

- Data/ : Os dados usados pelo programa para lidar com as imagens do visual.

  - CMakeLists.txt : Descreve o que deseja instalar.

  - onu.desktop : O ficheiro principal de descrição do visual. Veja a sua descrição em baixo.

- Images/ : As imagens do visual (mapa, bonecos, etc.)

  - CMakeLists.txt : Descreve o que deseja instalar.

  - pool.svg : o mapa e todas as imagens usadas neste visual.

  - map-mask.png : a imagem que permite ao programa descobrir em que país se encontra o rato durante o jogo (ver abaixo).

  - *.png : as outras imagens aqui colocadas são as imagens dos botões.

- CMakeLists.txt/ : Descreve o que deseja instalar.

- Sounds/ : ficheiros de sons para o visual.

### A pasta 'Data'

#### O ficheiro 'onu.desktop'

Este ficheiro é uma descrição do conteúdo do visual. É usado para descrever a organização do mundo e como apresentá-lo. Tem a seguinte estrutura:

Um grupo 'onu' contém um conjunto de itens 'countries', o conjunto de itens 'nationality' e, por fim, um conjunto de itens 'continent'. Depois, os vários grupos contêm a descrição das diferentes imagens, países, continentes, nacionalidades e objectivos.

A secção seguinte descreve o conteúdo de cada grupo.

##### O grupo ONU

###### Os itens do grupo ONU

Nome do item | Significado
--- | ---
width | A largura do mapa do visual
height | A altura do mapa do visual
skinpath | A localização do visual, em relação à localização dos dados da aplicação (p.ex., 'skins/default')
nb-countries | O número de países (42 no visual por omissão). Deverá existir o mesmo número de marcas 'country' em baixo
nb-nationalities | O número de nacionalidades (6 no visual por omissão). Deverá existir o mesmo número de marcas 'nationality' em baixo
nb-continents | O número de continentes (6 no visual por omissão). Deverá existir o mesmo número de marcas 'continent' em baixo
pool | A localização e nome do ficheiro do mar, em relação à localização do visual (p.ex. 'Images/pool.png')
map-mask | A localização e nome do ficheiro de máscara do mapa, em relação à localização do visual (p.ex. Images/map-mask.png)
format-version | A versão do formato do ficheiro do visual (2.0)
name | O nome visível do visual
desc | A descrição extensa do visual
fighters-flag-y-diff | A diferença de altura entre as imagens das bandeiras e dos canhões
width-between-flag-and-fighter | O número de pixels entre o pixel do canto superior esquerdo da bandeira e o pixel mais à direita do canhão simples (quando não tiver disparado nem explodido)

##### Os grupos de descrição das imagens

Cada tipo de imagem (bandeira, infantaria, cavalaria, canhão, canhão em disparo e canhão explodido) é definido por um grupo. Só algumas imagens têm dados de largura. Estas são usadas para o posicionamento relativo durante as animações: os canhões, em disparo ou em explosão, não se deverão "mover" em torno da bandeira durante o combate.

###### Itens do grupo de descrição da imagem

Item | Significado
--- | ---
width | A largura de referência das imagens das bandeiras
height | A altura de referência das imagens das bandeiras
molduras | O número de imagens da bandeira
versions | O número de versões das imagens das bandeiras

##### Os grupos de descrição dos países

Em cada país que consta no grupo, o item 'countries' contém o seu próprio grupo, cujo nome é o do país. A tabela abaixo apresenta os itens destes grupos.

###### Itens dos países

Nome do item | Significado
--- | ---
id | O número inteiro identificador do país, que deverá começar em zero (0)
name | O nome visível do país
<sprite>-point | Cada tipo de boneco (bandeira, infantaria, etc.) no país aparece de acordo com uma certa posição definida neste elemento, que consiste em dois números inteiros separados por vírgulas
neighbours | A lista de identificadores dos vizinhos do país actual

##### Os grupos de descrição das nacionalidades

Em cada nacionalidade que aparece no grupo ONU, o item 'nationalities' tem o seu próprio grupo, cujo nome é o da nacionalidade. A tabela abaixo mostra os itens destes grupos.

###### Itens de nacionalidades

Nome do item | Significado
--- | ---
name | O nome da nacionalidade (p.ex., 'Japão')
leader | O nome que será proposto ao jogador que escolher esta nacionalidade
flag | O nome do ficheiro do gráfico da bandeira do país, no ficheiro SVG do ONU

##### Os grupos de descrição dos continentes

Em cada continente que aparece no grupo ONU, o item 'continents' tem o seu próprio grupo, cujo nome é o do continente. A tabela abaixo mostra os itens destes grupos.

###### Itens de continentes

Nome do item | Significado
--- | ---
name | O nome do continente (p.ex., 'África')
id | O número inteiro identificador do continente
bonus | O número de exércitos que são obtidos no fim de jogada, após o jogador possuir todos os países desse continente
continent-countries | A lista de identificadores dos países dentro do continente actual

##### Os grupos de descrição dos objectivos

Em cada objectivo que aparece no grupo ONU, o item 'goals' tem o seu próprio grupo, cujo nome é o do objectivo. A tabela abaixo mostra os itens destes grupos.

###### Itens do objectivo

Nome do item | Significado
--- | ---
tipo | O tipo de objectivo. Poderá ser 'continents' (continentes), 'countries' (países) ou 'player' (jogador)
nbArmiesByCountry | define o número mínimo de exércitos que o jogador terá de colocar em cada país
nbCountries | define o número de países que o jogador deverá possuir
nbCountriesFallback | Para um tipo de objectivo por jogador, se o jogador de destino for morto por outro, este define o número de países que o jogador terá de conquistar em alternativa
desc | Uma descrição em texto completo do objectivo, com alguns itens de substituição adequados
continents | A lista de IDs de continentes que o jogador terá de conquistar

### A pasta 'Images'

Esta pasta contém os botões específicos do &kappname; e o ficheiro SVG do fundo, que contém o mapa e todas as imagens.

#### O ficheiro 'pool.svg'

Este ficheiro SVG contém o mapa e todas as imagens do jogo. Cada elemento tem um determinado nome para o jogo seleccionar e representar em separado.

No visual por omissão, são as bandeiras, os soldados e os canhões. A infantaria representa um exército, a cavalaria cinco e os canhões dez. Os canhões são também usados para mostrar as guerras em curso. É por isso que existem três tipos de canhões: estáticos, em disparo ou em explosão.

Cada imagem do gráfico é a concatenação das diversas vistas do objecto e, para cada vista, as suas imagens. As vistas são organizadas na vertical e as sub-imagens na horizontal. O local de corte da imagem em sub-imagens individuais é determinado pela divisão da altura da imagem pelo número de vista e a largura pelo número de sub-imagens. Estes dados estão no ficheiro 'onu.desktop'.

Um exemplo de uma imagem de boneco: cannon.png

Para as imagens dos exércitos, existem três diferentes vistas, de cima para baixo:

- a olhar para a direita

- a olhar para a esquerda e

- de face para a frente

Para as bandeiras, só existe uma vista. Todos os fundos deverão ser transparentes.

Um exemplo de uma imagem de uma bandeira: italy.png

##### Os elementos do fundo

Nome do elemento | Imagem de Exemplo | Significado
--- | --- | ---
map |  | O mapa-mundo do visual. Os países poderão ter diversas formas, mas deverão estar agrupados em continentes perceptíveis, através da sua localização ou da sua cor.
italy |  | A bandeira da Itália. Existe um destes itens para cada nação
infantry |  | Ícone que representa um exército
cavalry |  | Ícone que representa cinco exércitos
cannon |  | Ícone que representa dez exércitos
firing |  | Ícone que representa exércitos durante um combate
exploding |  | Ícone que representa os exércitos a perder uma batalha
Alasca |  | A forma do território do Alasca. Isto é usado para realçar o mesmo território. Existe uma destas formas para cada país ou região. A sua cor não é usada, pelo que pode escolher a cor que desejar.
reddices |  | Os dados vermelhos usados para mostrar os resultados das batalhas
bluedices |  | Os dados azuis usados para mostrar os resultados das batalhas
mark1 |  | Esta marca é adicionada às imagens de combate para mostrar o número de exércitos que representam, sendo neste caso 1. Existem também os elementos 'mark2' e 'mark3'.

#### O ficheiro 'map-mask.png'

Este é um ficheiro PNG que representa também o mapa-mundo do visual, só que com cores codificadas que permitem identificar de forma unívoca cada país. Os países deverão ter pelo menos a mesma forma que os países correspondentes no ficheiro 'map.png', para que os utilizadores possam carregar em qualquer ponto de um país visível e seleccionar o correcto. Os países de pequenas ilhas, como a Indonésia, poderão ser maiores que os equivalentes no ficheiro 'map.png', de modo a facilitar a selecção do país. Uma máscara do mapa de exemplo

A componente azul (no modelo RGB) da cor de um país identifica o país: o índice 0 é o país 0 no ficheiro 'onu.xml', o índice 1 é o país 1, &etc;. O branco (0xFFFFFF em RGB) identifica a ausência de país (mar ou, porque não, terra-de-ninguém).

#### As imagens dos botões

Os nomes dos ficheiros estão fixos no código, pelo que não deverão ser modificados. A tabela abaixo mostra todos os botões que deverão constar.

##### Os botões da &GUI;

Imagem | Nome do Ficheiro | Significado
--- | --- | ---
| newNetGame.png | Tenta ligar-se a um jogo em rede
| recycling.png | Depois de todos os jogadores terem colocado os seus exércitos, é possível modificar as distribuições (chamado 'redistribuição'). Este botão pergunta a confirmação de uma redistribuição
| recyclingFinished.png | Opta por não redistribuir. Todas as janelas dos clientes deverão carregar neste botão para terminar de facto a distribuição
| joueurSuivant.png | Termina a jogada do jogador actual e muda para o seguinte, ou para a jogada seguinte, se o jogador for o último
| attackOne.png | Opta por iniciar um ataque com um exército
| attackTwo.png | Opta por iniciar um ataque com dois exércitos
| attackThree.png | Opta por iniciar um ataque com três exércitos
| defendOne.png | Opta por defender um país atacado com um exército
| defendTwo.png | Opta por defender um país atacado com dois exércitos
| moveArmies.png | Opta por iniciar o movimento de exércitos entre dois países (última acção da jogada)

### A pasta 'Sounds'

Esta pasta contém três ficheiros de sons:

- o 'roll.wav', que é tocado quando os exércitos estão em movimento

- o 'cannon.wav', que é tocado quando disparar e

- o 'crash.wav', que é tocado quando um canhão explode

## Perguntas e Respostas

&reporting.bugs; &updating.documentation;

Qual será a primeira pergunta que respeite ao &kappname;?

## Créditos e Licença

&kappname;

Programa com 'copyright' 2002-2008 de Gael de Chalendar Gael.de.Chalendar@free.fr

Contribuições: Robin Doer, Albert Astals Cid, Michal Golunski (tradução para Polaco).

Documentação com 'copyright' 2002-2008 de Gael de Chalendar Gael.de.Chalendar@free.fr

Tradução de José Nuno Pires jncp@netcabo.pt

&underFDL; &underGPL;

## Instalação

### Como obter o &kappname;

&install.intro.documentation;

### Compilação e Instalação

&install.compile.documentation;

### Configuração

O item do menu de configuração abre uma janela que lhe permite : Janela de preferências Janela de preferências

- activar ou desactivar os sons ;

- definir a velocidade das imagens (de lento para imediato) ;

- activar ou desactivar as ajudas de contexto que aparecem nos menus ;

- mostrar ou esconder o número de exércitos em cada país. A imagem seguinte apresenta o mapa, quando for apresentado o número de exércitos. Apresentação do número de exércitos Apresentação do número de exércitos

&documentation.index;