# Handbok &kappname;

Gael
Kleag
de Chalendar

    Kleag@free.fr

Stefan
Asserhäll

    stefan.asserhall@comhem.se

Översättare
2002-2008
Gael de Chalendar
&FDLNotice;
18/09/2008
4.1.2

&kappname; är en datorversion av ett välkänt strategispel. Det finns kommersiella och andra versioner med fri programvara, men jag (Gaël de Chalendar) skapade ursprungligen spelet som en övning för att lära mig C++, och utvecklade det till nuvarande status (se README för detaljinformation).

I sin nuvarande version är &kappname; ett nätverksspel för flera spelare med en Artificiell Intelligens. (Se TODO för detaljinformation).

Dokumentationen ger den huvudsakliga informationen du behöver för att börja spela. Läs verktygstipsen och statusradens meddelanden för att komplettera informationen här. Ett kapitel förklarar hur nya skal skapas för &kappname;.

Spelets mål är helt enkelt att erövra världen ... Det görs genom att anfalla grannländer med arméer. Fredligt, inte sant?

KDE
kdegames
spel
strategi
Risk
fri
GPL
Nätverk
AI

## Inledning

&kappname; är en datorversion av ett välkänt strategispel. Det finns kommersiella och andra versioner med fri programvara, men jag (Gaël de Chalendar) skapade ursprungligen spelet som en övning för att lära mig C++, och utvecklade det till nuvarande status (se README för detaljinformation).

Här är en skärmbild av &kappname; Skärmbild

I sin nuvarande version är &kappname; ett nätverksspel för flera spelare med en Artificiell Intelligens. (Se TODO för detaljinformation).

Dokumentationen ger bara den huvudsakliga informationen du behöver för att börja spela. Läs verktygstipsen och statusradens meddelanden för att komplettera informationen här.

Spelets mål är helt enkelt att erövra världen ... Det görs genom att anfalla grannländer med arméer. Fredligt, inte sant?

## Använda &kappname;

### Spela &kappname;

Preliminär anmärkning: kartan kan panoreras med tre metoder:

- Du kan placera muspekaren nära kanten av ett fönster så panoreras kartan i den riktningen

- Du kan använda mushjulet: utan väljartangent panorerar det vertikalt, när &Alt;-tangenten hålls nere panorerar det horisontellt

- Du kan använda tangentbordets piltangenter

#### Att starta ett spel

När &kappname; startas, presenteras en huvudmeny. Huvudmenyn i &kappname; Huvudmeny

Nytt spel

  Startar ett nytt spel

Gå med

  Tillåt att gå med i ett nätverksspel som en klient

Ladda

  Använd det här för att ladda ett tidigare sparat spel.

Avsluta

  Kanske du till sist inte vill spela mer?

Om du klickar på Nytt spel, visas dialogrutan Nytt spel där du kan välja antal spelare, skalet (eller temat) att använda, speltypen (erövra målet eller ha ett specifikt mål), och slutligen om spelet kommer att spelas med nätspelare eller om det är helt lokalt. Dialogrutan Nytt spel Dialogrutan Nytt spel

Markera kryssrutan Nätverksspel till höger om nummerrutan med antal spelare, för att starta ett nätverksspel. Efter att ha klickat på Ok, kommer du att kunna välja nätverksparametrar: antal nätverksspelare och TCP-port att använda för att vänta på anslutningar. Dialogrutan med parametrar för nätverksspel Dialogrutan med parametrar för nätverksspel

Därefter kommer nätverksspelare att kunna ansluta genom att välja Gå med på inledningsskärmen och ange värddatorns IP-adress eller värddatornamn och portnummer du just ställde in. Dialogrutan för att deltaga i nätverksspel Dialogrutan för att deltaga i nätverksspel

Varje anslutning indikeras av meddelandet nedanför i statusraden. Anslutningsmeddelande Anslutningsmeddelande

Låt oss anta att du behåller förvalda inställningar, och klickar på Ok. Då ställer du in två spelare, en i taget. För var och en väljer du namn, nationalitet, och om du vill kan du ställa in ett lösenord så att ingen annan än du kan återanvända spelaren när det sparade spelet laddas igen. Till sist anger du här om spelaren är datorn eller en människa. Dialogrutan Spelarinställning Dialogrutan Spelarinställning

Om du väljer att spela med ett mål, visas målet för varje lokal spelare, föregånget av en varning så att andra spelare som tittar på samma dator kan diskret titta bort medan målet visas. Dialogrutan Visa mål Dialogrutan Visa mål Varningsmeddelandet Visa mål Varningsmeddelandet Visa mål

#### Fördelning

När spelet börjar fördelas länder till alla spelare. Varje land innehåller från början en armé (representerad av en infanterist). Varje spelare har ett antal arméer att fördela mellan sina länder när det är deras tur (vilket anges av att deras namn och flagga visas i statusraden). Observera att fem arméer representeras av en kavallerist och tio av en kanon.

Klicka på ett av dina länder med vänster musknapp för att placera en armé i det. Klicka med höger musknapp för att ta bort en armé. Observera, som en allmän regel, kommer du aldrig att kunna ta bort fler arméer än du redan har placerat ut. Placera arméer Placera arméer

När en spelare har fördelat alla sina arméer, får nästa spelare automatiskt fortsätta att göra samma sak. När alla spelare är klara med att fördela sina arméer, finns två möjligheter som kan väljas med två knappar som visas i rutan till höger:

Omfördelning Återanvänd

  En spelare vill ändra några av sina val. Den första spelaren kan då ta bort en armé som just placerades i ett land med höger musknapp, och placera den i ett annat med vänster musknapp. När spelaren är klar, överlämnar han kontrollen till nästa spelare med knappen Validera. När alla spelare är klara med sin omfördelning, visas de två knapparna igen.

Slut på omfördelning Klar

  Omfördelningen är slut och spelet kan fortsätta.

#### Strid

Efter omfördelningen startar en omgång. Varje spelare spelar när det är hans tur. Han har då möjlighet att välja:

Nästa spelare Nästa spelare

  Den nuvarande spelarens tur avslutas, och det är nästa spelares tur.

Anfall 1 Attack 2 Anfall 3 Anfall med en, två eller tre arméer Automatiskt anfall Automatiskt anfall

  Dra med musen från det anfallande landet och släpp på det anfallna, för att göra ett anfall. Då visas en sammanhangsberoende meny med ovanstående alternativ. Anfallsmeny Anfallsmeny För att landet X ska kunna anfalla landet Y med x arméer, måste två villkor vara uppfyllda:

  - de två länderna måste vara grannar,

  - land X måste ha minst x+1 arméer innan anfallet.

  Om anfallet är riktigt, visas en dialogruta om det är nödvändigt för försvararen att välja om han vill försvara med en eller två arméer, eller vill låta datorn bestämma.

  När försvararens val är gjort, sker striden till den är genomförd. Det beskrivs nedan. Försvarsdialogruta Försvarsdialogruta

Flytta arméer Flytta arméer från ett land till ett annat

  Detta är den sista åtgärden under en spelares tur. Den ger möjlighet att flytta vissa arméer från ett land till ett annat, som är grannland till det första. För att välja länderna, drag och släpp precis som vid ett anfall. När båda länder har valts, visas ett skjutreglage där man kan välja hur många arméer ska finnas i varje land efteråt.

#### Stridens upplösning

För varje armé inblandad i striden kastas en motsvarande tärning. Spelaren som slår högst nummer på tärningen, vare sig han anfaller eller försvarar, vinner och den som slår ett lägre nummer på tärningen förlorar arméer enligt antal kastade tärningar. Visade anfallsresultat Visade anfallsresultat

Om antalet arméer i försvararens land når 0, byter landet ägare till angriparen: Hans flagga hissas, och en av hans anfallande arméer installeras i det nya landet. Skjutreglaget för att flytta arméer visas liksom vid förflyttningarna i slutet på omgången. Invasionsreglage Invasionsreglage

#### Turens slut

För att avsluta din nuvarande tur, om du inte vill flytta arméer, kan du klicka på knappen Nästa spelare i verktygsraden.

När alla har spelat, är omgången slut. Vissa arméer fördelas till spelarna, i förhållande till antal länder de äger; 1 för varje grupp med tre länder, med minimalt tre. En bonus lämnas också för spelare som äger en hel kontinent, olika för var och en. För standardskalet är denna bonus:

##### Bonus på grund av kontinenter

Kontinent | Bonus
--- | ---
Nordamerika | 5
Sydamerika | 2
Europa | 5
Afrika | 3
Asien | 7
Stilla havsområdet | 2

När en spelare är klar med att fördela sina arméer, klickar han på knappen Validera för att låta nästa spelare fördela sina bonusarméer. Liksom vid den ursprungliga fördelningen, när alla spelare har placerat sina arméer kan de påbörja en ny omfördelningscykel eller börja en ny omgång ...

#### Skicka meddelanden till andra spelare

Om du spelar ett lokalt spel och vill kommunicera med övriga spelare, prata med dem som vanligt (under förutsättning att du inte har något handikapp). Men om du spelare ett nätverksspel, kan du använda chattrutan längst ner i fönstret (den kan visas eller döljas med pilarna). Skriv bara in meddelandet och tryck på returtangenten. Skicka meddelanden Skicka meddelanden

## Kommandoreferens

### Huvudfönstret i &kappname;

#### Knapparna

Avsluta spelet Avsluta

  Gör att programmet avslutas.

Nytt spel Nytt spel

  Startar ett nytt spel. Det gör att en dialogruta som frågar efter antal spelare visas. Därefter blir varje spelare tillfrågad om sitt namn med en annan dialogruta.

## Utvecklingsguide för &kappname;

Titta på http://api.kde.org/ för att se programmeringsgränssnittets dokumentation. Den var ganska fullständig, men är för närvarande lite föråldrad. Det finns inga kommentarer i `.cpp`-implementeringsfilerna.

Observera att spelet utvecklades ursprungligen under &Windows; med Borland C++ och WinG. Jag överförde det till &Java; innan det konverterades tillbaka till C++ och &kde;. Från början använde jag franska eller en blandning av franska och engelska för att namnge identifierare (klassnamn, metoder, medlemmar, etc.). Jag använde också franska för kommentarerna. När jag bestämde mig för att distribuera spelet, bestämde jag mig också för att översätta allt till engelska ... men det är uppenbart att engelska inte är mitt modersmål: föreslå eller utför gärna in förbättringar av kommentarerna i koden eller av den här dokumentationen.

## Skapa nya skal

&kappname; är helt anpassningsbart med olika skal. För alla som kan hantera grafik, är det mycket enkelt att skapa ett nytt skal genom att kopiera ett befintligt, redigera eller ändra grafiken och uppdatera data i en .desktop-inställningsfil. Det sista steget är att redigera filen som beskriver vad som ska installeras.

Alla exempel (text och bilder) kommer från standardskalet i &kappname;.

### Katalog- och filstruktur

- Data/ : Data använt av programmet för att hantera skalets bilder.

  - CMakeLists.txt : Beskriver vad som ska installeras.

  - onu.desktop : Huvudfil för beskrivning av skalet. Se beskrivningen nedan.

- Images/ : Skalets bilder (karta, figurer, etc.)

  - CMakeLists.txt : Beskriver vad som ska installeras.

  - pool.svg : kartan och alla figurer som används av skalet.

  - map-mask.png : bilden som gör det möjligt för programmet att ta reda på vilket land musen finns över under spelet (se nedan).

  - *.png : övriga bilder här är knapparnas ikoner.

- CMakeLists.txt/ : Beskriver vad som ska installeras.

- Sounds/ : ljudfiler för skalet.

### Katalogen Data

#### Filen onu.desktop

Filen är en beskrivning av skalets innehåll. Den används för att beskriva hur världen är organiserad, och hur den ska visas. Den har följande struktur:

En onu-grupp innehåller ett antal landsposter, ett antal nationalitetsposter och till sist ett antal kontinentposter. Därefter innehåller diverse grupper beskrivningen av de olika figurerna, beskrivningen av de olika länderna, kontinenterna, nationaliteterna och målen.

Följande avsnitt beskriver innehållet i varje grupp.

##### onu-gruppen

###### Posterna i onu-gruppen

Postnamn | Betydelse
--- | ---
width | Bredden på skalets karta
height | Höjden på skalets karta
skinpath | Sökvägen till skalet i förhållande till programmets datasökväg (t.ex. det förvalda skins/)
nb-countries | Antal länder (42 i standardskalet). Det ska finnas lika många landsgrupper nedan
nb-nationalities | Antal nationaliteter (6 i standardskalet). Det ska finnas lika många nationalitetsgrupper nedan
nb-continents | Antal kontinenter (6 i standardskalet). Det ska finnas lika många kontinentgrupper nedan
pool | Sökväg och namn på pool-filen i förhållande till skalets sökväg (t.ex. Images/pool.svg)
map-mask | Sökväg och namn på kartmaskfilen i förhållande till skalets sökväg (t.ex. Images/map-mask.png)
format-version | Skalfilformatets version (2.0)
name | Namnet på skalet som visas
desc | Den långa beskrivningen av skalet
fighters-flag-y-diff | Höjdskillnaden mellan flaggor och kanonfigurer
width-between-flag-and-fighter | Antal bildpunkter mellan flaggans vänstra bildpunkt och den vanliga kanonens högra bildpunkt (när den inte skjuter eller exploderar)

##### Beskrivningsgrupperna för figurer

Varje typ av figur (flagga, infanterist, kavalleri, kanon, skjutande kanon och exploderande kanon) definieras av en grupp. Bara vissa figurer har breddinformation. Den används för relativ placering vid animering: när kanonerna skjuter eller exploderar ska de inte "flyttas" runt landets flagga under en strid.

###### Grupposter för figurbeskrivning

Post | Betydelse
--- | ---
width | Referensbredden på flaggfigurernas ramar
height | Referenshöjden på flaggfigurernas ramar
frames | Antal ramar i flaggfiguren
versions | Antal versioner av flaggfigurerna

##### Beskrivningsgrupper för länder

Varje land som listas i onu-gruppens landspost har sin egen grupp, vars beteckning är landets namn. Tabellen nedan listar posterna i dessa grupper.

###### Landsposter

Postnamn | Betydelse
--- | ---
id | Heltalet med landets unika identifikationsnummer, måste börja från noll (0)
name | Landets visade namn
<sprite>-point | Varje sorts figur (flagga, infanterist, etc.) i landet visas på en viss plats definierat av den här posten skapad av två heltal åtskilda av ett kommatecken
neighbours | Listan av identifierare för grannarna till det aktuella landet

##### Beskrivningsgrupper för nationaliteter

Varje nationalitet som listas i onu-gruppens nationalitetspost har sin egen grupp, vars beteckning är nationalitetens namn. Tabellen nedan listar posterna i dessa grupper.

###### Nationalitetsposter

Postnamn | Betydelse
--- | ---
name | Nationalitetens namn (t.ex. Japan)
leader | Namnet som föreslås för spelaren som väljer nationaliteten
flag | Namnet på landets flaggfigurelement i onu SVG-filen

##### Beskrivningsgrupper för kontinenter

Varje kontinent som listas i onu-gruppens kontinentpost har sin egen grupp, vars beteckning är kontinentens namn. Tabellen nedan listar posterna i dessa grupper.

###### Kontinentposter

Postnamn | Betydelse
--- | ---
name | Kontinentens namn (t.ex. Afrika)
id | Kontinentens unika heltals-identifikationsnummer
bonus | Antal arméer som erhålls i slutet på omgången av spelaren som äger kontinentens alla länder
continent-countries | Listan över identifierare för länderna på den aktuella kontinenten

##### Beskrivningsgrupper för mål

Varje mål som listas i onu-gruppens målpost har sin egen grupp, vars beteckning är målets namn. Tabellen nedan listar posterna i dessa grupper.

###### Målposter

Postnamn | Betydelse
--- | ---
type | Målets typ. Kan vara kontinenter, länder eller spelare
nbArmiesByCountry | ställer in minimalt antal arméer spelaren måste placera på varje land
nbCountries | ställer in antal länder som spelaren måste äga
nbCountriesFallback | För måltypen spelare, om målets spelare dödas av någon annan, ställer det här in antal länder som spelaren måste erövra istället
desc | En fullständig textbeskrivning av målet med lämpliga platsmarkörer (ytterligare dokumentation behövs här)
continents | Listan med kontinent-identifierare som spelaren måste erövra

### Katalogen Images

Katalogen innehåller knappar specifika för &kappname;, och SVG-filen pool som innehåller kartan och alla figurer.

#### Filen pool.svg

SVG-filen innehåller kartan och alla spelets figurer. Varje element namnges så att spelet kan välja och återge var och en av dem separat.

Med standardskalet är figurerna flaggor, infanterister, kavalleri och kanoner. En infanterist representerar en armé, kavalleri är fem och kanoner är tio. Kanoner används också för att visa stridande arméer. Därför finns det tre olika sorters kanonfigurer: normala stillastående eller förflyttade, skjutande och exploderande kanoner.

Varje figurbild är sammanslagningen av objektets diverse olika vyer, och för varje vy, dess ramar. Vyerna organiseras vertikalt, och ramarna horisontellt. Var bilden ska delas i enskilda ramar beräknas genom att dela bildens höjd med antal vyer och dess bredd med antal ramar. Denna information hittas i filen onu.desktop.

Ett exempel på en figurbild: cannon.png

För arméfigurer finns det tre olika versioner, uppifrån och ner:

- vända åt höger

- vända åt vänster

- vända framåt

För flaggor finns bara en version. Alla figurernas bakgrunder ska vara genomskinliga.

Ett exempel på en flaggfigurbild: italy.png

##### Elementen i pool

Elementnamn | Exempelbild | Betydelse
--- | --- | ---
map |  | Karta över skalets värld. Länder kan ha godtyckliga former, men bör grupperas i kontinenter som kan kännas igen med blotta ögat, enligt plats eller färg.
italy |  | Flaggan för nationen italy. Det finns en sådan post för varje nation
infantry |  | Ikon som representerar en armé
cavalry |  | Ikon som representerar fem arméer
cannon |  | Ikon som representerar tio arméer
firing |  | Ikon som representerar arméer under en strid
exploding |  | Ikon som representerar arméer när en strid förloras
Alaska |  | Formen av staten Alaska. Den används för att markera staten. Det finns en sådan form för varje stat. Dess färg används inte. Av den anledningen är färgen valfri.
reddices |  | De röda tärningarna används för att visa stridsresultat
bluedices |  | De blåa tärningarna används för att visa stridsresultat
mark1 |  | Markeringen läggs till för stridande figurer för att visa antal arméer de representerar, här 1. Elementen mark2 och mark3 finns också.

#### Filen map-mask.png

Detta är en png-fil som också representerar skalets världskarta, men med kodade färger som gör det möjligt att unikt identifiera varje land. Länder måste åtminstone ha samma form som motsvarande länder i filen map.png, så att användare kan klicka var som helst i ett synligt land och markera det på ett bra sätt. Länder som består av små öar, som Indonesien på standardkartan, kan vara större än motsvarigheten i filen map.png för att förenkla markering av landet. Ett exempel på en kartmask

Ett lands blåa komponent (med RGB-modellen) identifierar landet: index 0 är land 0 i filen onu.xml,, index 1 är land 1, etc. Vitt (0xFFFFFF med RGB) identifierar frånvaro av ett land (hav eller, varför inte, ingenmansland).

#### Knappbilderna

Filnamnen är hårdkodade i källkoden, så de får inte ändras. Tabellen nedan visar alla knappar som måste tillhandahållas.

##### Knapparna i det grafiska gränssnittet

Bild | Filnamn | Betydelse
--- | --- | ---
| newNetGame.png | Försöker gå med i ett nätverksspel
| recycling.png | När alla spelare har placerat ut sina arméer är det möjligt att ändra fördelningen (betecknat omfördela). Knappen begär att utföra en sådan omfördelning.
| recyclingFinished.png | Väljer att inte omfördela. För att omfördelningen verkligen ska avslutas måste knappen klickas i alla klientfönster.
| joueurSuivant.png | Avslutar den nuvarande spelarens tur och byter till nästa, eller går till nästa omgång om den nuvarande spelaren var sist
| attackOne.png | Väljer att börja ett anfall med en armé
| attackTwo.png | Väljer att börja ett anfall med två arméer
| attackThree.png | Väljer att börja ett anfall med tre arméer
| defendOne.png | Väljer att försvara ett anfallet land med en armé
| defendTwo.png | Väljer att försvara ett anfallet land med två arméer
| moveArmies.png | Väljer att börja flytta arméer mellan två länder (sista åtgärden i turen)

### Katalogen Sounds

Katalogen innehåller tre ljudfiler:

- roll.wav som spelas när arméer förflyttas

- cannon.wav som spelas vid eldgivning och

- crash.wav som spelas när en kanon exploderar

## Vanliga frågor

&reporting.bugs; &updating.documentation;

Vad kommer att bli den första frågan rörande &kappname;?

## Tack till och licens

&kappname;

Program copyright 2002-2008 Gael de Chalendar kleag@free.fr

Bidragsgivare: Robin Doer, Albert Astals Cid, Michal Golunski (översättning till Polska).

Dokumentation copyright 2002-2008 Gael de Chalendar kleag@free.fr

Översättning Stefan Asserhäll stefan.asserhall@comhem.se

&underFDL; &underGPL;

## Installation

### Hur man skaffar &kappname;

&install.intro.documentation;

### Kompilering och installation

&install.compile.documentation;

### Inställning

Inställningsmenyns alternativ visar en dialogruta som låter dig: Inställningsdialogruta Inställningsdialogruta

- aktivera eller inaktivera ljud,

- ställa in figurernas hastighet (från långsamt till omedelbart),

- aktivera eller inaktivera sammanhangsberoende hjälp som visas i meddelanderutor,

- visa eller dölja antal arméer i varje land. Följande skärmbild visar kartan när antal arméer visas. Visning av antalet arméer Visning av antalet arméer

&documentation.index;