# The &khangman; Handbook

## Introduction

&khangman; is a game based on the well-known hangman game. It is aimed at children aged six and over. The game has several categories of words to play with and among them: Animals, Clothing, Computers, Currencies, Easy and Fruits. A word is picked at random, the letters are hidden, and you must guess the word by trying one letter after another. Each time you guess a wrong letter, part of a picture of a hangman is drawn. You must guess the word before being hanged! You have 10 tries.

## Using &khangman;

Here's a screenshot of &khangman; when you start it for the first time &khangman; screenshot

Here you can see &khangman; as it is the first time you run it. Category is Animals, language is default (English here, the default is your current &kde; language if the data exists), the theme is Notes. Any changes in category, language or theme (background) are written in the configuration file and restored in your next game.

Please note how easy it is to change the theme, just click on the button on the bottom toolbar. Getting a new word and quitting the game are also easily done by clicking on the corresponding buttons on the toolbars.

### General usage

A word is chosen and its letters are displayed as an underscore (_) symbol. You know how many letters there are in the word. You have to guess the word by trying one letter after another. You type the letter on the keyboard or select them with the &LMB;. If the letter belongs to the word the background color of the letter will change to green, otherwise to red.

The letter keys in the game window allow you to play &khangman; in foreign languages without changing your keyboard layout.

The word is picked at random and it is not the same as the previous word.

All the words are nouns (there are no verbs or adjectives, &etc;).

If you need help guessing the word, you can click on the icon in the toolbar and a hint will be displayed to give you some clue about the word. Clicking this icon again will hide the hint.

Hints are not displayed by default.

Usually, it is not important whether you type in lowercase or uppercase. The program converts all input into an uppercase letter. The program does that automatically.

The current category, wins and losses are displayed in the window.

Each time you guess a letter that is not in the word, another part of the hangman is drawn. You have 10 tries to guess the word. After that, the correct answer is displayed.

There are several categories of words available, depending on the selected language. The program scans for all data files in all languages and uses &kanagram; words files as well.

After a word is guessed (or the hangman is completed), you are congratulated and the next word is presented. To quit the game click the icon in the top toolbar.

You type the letter you want to try on the keyboard or select it with the &LMB;. If the letter belongs to the word the key is highlighted in green and the letter its place, as many times as it appears in the word. If the letter does not belong to the word, the key is highlighted red. You have ten tries and after that you lose and the correct word is displayed.

During the game, you can choose to start a new game by clicking on the on the bottom toolbar. You can also change the category of words clicking the current category.

The look can easily be changed with theme button on the bottom toolbar.

### Playing in different languages

You can play &khangman; in many languages including: Brazilian Portuguese, Bulgarian, Catalan, Czech, Danish, Dutch, English (US and GB), Finnish, French, German, Hungarian, Irish (Gaelic), Italian, Norwegian (Bokmål), Norwegian (Nynorsk), Polish, Portuguese, Romanian, Spanish, Serbian (Latin and Cyrillic), Slovenian, Tajik, Swedish, Russian and Turkish. You can even try Chinese if you install the files from &kanagram;.

By default, after the first installation of &khangman;, only English and your &kde; language if it is one of the above and if you have the corresponding kde-i18n package will be installed. For example if you are a Danish user and if you have &kde; in Danish, in Language you will see two items: English and Danish and Danish will be the default.

You can still play &khangman; in other languages. It is very easy to add new data in &khangman;. All you need is a working Internet connection. You click on and a dialog appears, similar to this one:

The Get New Words dialog for &khangman; The Get New Words dialog for &khangman;

Click on the language name you want to install and then on the Install button. If the language is successfully installed, a green tick is displayed in front of the language name and the Install turns to Uninstall. The data is immediately installed and available in &khangman;. You click on the Close button to close the Get New Words dialog (if you want another data file, you can repeat these steps).

You can then easily change the language by clicking the language button and choose the new language.

Please note that the special characters in a language are displayed on the keyboard. Here you see buttons with an icon of each special character per language like é in French for example. Clicking on such a button will select the corresponding letter. You can of course also use the keyboard layout corresponding to the language.

### A few tips

In English, try to guess the vowels first. Then have a go with the most common consonants: l, t, r, n, s.

When you see io, try n after that, in French and English.

You have to either type the accented letters yourself or click on them. When you type a, only a is displayed and you have to type for example ã for this letter to be displayed.

Did you know? In English, the most common letter is e (12.7%), followed by t (9.1%) then a (8.2%), i (7.0%) and n (6.7%).

## Menubar and Toolbars

### The Main &khangman; Window

&khangman; Desert theme &khangman; Desert theme

Here you have &khangman; with the Desert theme, French language and category Animaux. The special characters for French are shown here.

The game has the main toolbar at the top of the window:

- or Start or stop a game
- Open the settings dialog
- About &khangman;
- About &kde;
- View the &khangman; handbook
- Download new language files from the Internet
- Quit &khangman;

The bottom toolbar is displayed only when playing a game, if you pause the game this toolbar is hidden:

- - Display a hint about the word to guess
- A button to change the category
- Language selection
- Theme selection
- Reveal the word to guess
- Load the next word and start a new game

All words are nouns. No verbs, no adjectives. The chosen category is then displayed on the statusbar.

Only letters are allowed to be typed in the text box.

### Settings

&khangman; settings &khangman; settings

The Word resolve time in seconds sets the maximum allowed time for resolving the word in &khangman;. Default value is 120 seconds. Young children will need more time to understand the game, for adults reduce the resolve time to keep the game exciting.

Score Multiplying Factor determines the factor by which the scores will be multiplied.

If you check Sounds then a sound will be played on new game and another sound will be played when you win a game.

## Developer's Guide to &khangman;

### How to translate words in a new language for the game

Please follow the procedure and then send the files tarred and gzipped to the kde-edu mailinglist.

Please have a look in &khangman; in the top toolbar to see if your language is available yet. If it is, then you can check if it contains hints.

The standard list words are stored in 4 separate files, so to make different categories. The files are in `/khangman/data/`. The file `easy.kvtml` is for category easy, the file `medium.kvtml` is for category medium, the file `animals.kvtml` is for category animals and the file `hard.kvtml` is for category hard.

English is the default and thus the only language to be shipped with &khangman;. All other languages data are put in the corresponding kde-l10n module.

1. The files use the kvtml format. The tag `text` is for the word and the tag `comment` is for the hint, those are within a `entry` tag. Please try to match the hint with the category of difficulty. The category Easy will require an easy hint but the category Hard will require the definition in the dictionary. Try not to use words of the same family in the hint, that would give the word away too easily!

   Note that you must use UTF-8 encoding when editing the files. If your editor cannot do this, try using &kwrite; or &kate;. When opening a file in &kwrite; or &kate; you can select utf8 encoding with the combo box at the top of the file open dialog.

   An example of a kvtml file is as follow:

       <?xml version="1.0"?>
       <DOCTYPE kvtml PUBLIC "kvtml2.dtd"
       "http://edu.kde.org/kanagram/kvtml2.dtd">
       <kvtml version="2.0">
       <information>
           <generator>converter</generator>
           <title>Animals</title><!--Translate tag content-->
           <comment>Animals from across the
       planet</comment><!--Translate tag content-->
         </information>
         <identifiers>
           <identifier id="0" >
             <locale>en</locale>
           </identifier>
         </identifiers>
       ...
       <entry id="0" >
             <inactive>false</inactive>
             <inquery>false</inquery>
             <translation id="0" >
               <text>bear</text><!--Translate all text tags
       content-->
               <comment>Large heavy animal with thick
       fur</comment><!--Translate all comment tags content-->
             </translation>
           </entry>
       ...
       </kvtml>

2. At the beginning of the file, you should translate the content of the `title` and the `comment` tags which are within the `information` tag. The title will be the one that will appear in the Category menu of the game (where the user chooses the file to play with).

3. Then within the `identifier` tag, please put your language code instead of en in `locale`.

   Please don't translate the file name itself as filenames should never contain any special characters. Thus please save your file with the same English filename.

4. Edit the kvtml files with a text editor (it will be easier if you use the &XML; syntax highlighting) and replace each word inside the `text` tag with a translated word and each hint inside a `comment` with a translated hint. It is not really important that the exact meaning is preserved, but try to keep the length and category of difficulty roughly the same.

   You can include words with white space or - in them, in that case the white space or the - will be shown instead of the _. Please contact the kde-edu mailinglist if there is anything special related to your language so I can adapt the code to it (especially the special and accented characters).

5. You can just translate the words but you can also adapt them following the category and add new words if you want. For example, table is in category easy in English but in your language, it can be category medium. Feel free to adapt the files to your language needs. The number of words in a file is not important, you can add some if you want.

   Remember that all words are nouns.

6. You can then commit your files in l10n-kf5/<lang_code>/data/kdeedu/kdeedu-data/. Do not forget to update the CMakeLists.txt file as well. Please contact the kde-edu mailinglist if you need further information. When you send the files, please do not forget to mention any special characters used in your language (put them in a text file, one per line and add this file in the tarball) and please mention any other specificity.

   Please never commit files in a BRANCH as it might break the game.

Many thanks for your contribution!

### What is stored by &khangman; and where

When you get a new language via Game Get Words in New Language..., the new language data is stored in `$XDG_DATA_HOME/share/apps/kvtml/` in the language code folder. The available language dir names are also stored in the &khangman; config file in `$XDG_DATA_HOME/share/config/khangmanrc`.

The provider name (i.e. the address of the website where to download the new languages) is stored in `$XDG_DATA_DIRS/share/apps/khangman/khangmanrc`.

The English language (default) and the user language from his i18n package(s) (if available) are stored in `$XDG_DATA_DIRS/share/apps/kvtml`.

In the configuration file, stored for each user in `$XDG_DATA_HOME/share/config/khangmanrc` are saved all the game settings such as the background, last category played, ... plus the files that were downloaded from the Get Hot New Stuff! dialog.

## Credits and License

&khangman;

Program copyright 2001-2007 &Anne-Marie.Mahfouf; &Anne-Marie.Mahfouf.mail;

Contributors:

- Hangman graphics: Renaud Blanchard kisukuma@chez.com

- Sounds: Ludovic Grossard ludovic.grossard@libertysurf.fr

- Former maintainer: &Primoz.Anzur; &Primoz.Anzur.mail;

- Swedish data files, coding help, transparent pictures and i18n fixes: Stefan Asserhäll stefan.asserhall@telia.com

- Spanish data files: eXParTaKus expartakus@expartakus.com

- Spanish data hints: Rafael Beccar rafael.beccar@kdemail.net

- Danish data files: Erik Kjaer Pedersen erik@mpim-bonn.mpg.de

- Finnish data files: Niko Lewman niko.lewman@edu.hel.fi

- Brazilian Portuguese data files: João Sebastião de Oliveira Bueno gwidion@mpc.com.br

- Catalan data files: Antoni Bella bella5@teleline.es

- Italian data files: Giovanni Venturi jumpyj@tiscali.it

- Dutch data files: Rinse rinse@kde.nl

- Portuguese data files: Pedro Morais morais@kde.org

- Serbian (Cyrillic and Latin) data files: Chusslove Illich chaslav@sezampro.yu

- Slovenian data files: Jure Repinc jlp@holodeck1.com

- Czech data files: Lukáš Tinkl lukas@kde.org

- Tajik data files: Roger Kovacs rkovacs@khujand.org

- Norwegian (Bokmål) data files: Torger Åge Sinnes torg-a-s@online.no

- Hungarian data files: Tamas Szanto tszanto@mol.hu

- Norwegian (Nynorsk) data files: Gaute Hvoslef Kvalnes gaute@verdsveven.com

- Turkish data files: Mehmet Özel mehmet_ozel2003@hotmail.com

- Bulgarian data files: Radostin Radnev radnev@yahoo.com

- Irish (Gaelic) data files: Kevin Patrick Scannell scannell@slu.edu

- Coding help: &Robert.Gogolok; &Robert.Gogolok.mail;

- Coding help: Benjamin Meyer ben@meyerhome.net

- Code fixes: Lubos Lunàk l.lunak@kde.org

- Code fixes: Albert Astals Cid &Albert.Astals.Cid.mail;

- Usability study: Celeste Paul seele@obso1337.org

Documentation copyright 2001-2007 &Anne-Marie.Mahfouf; &Anne-Marie.Mahfouf.mail;

&underFDL; &underGPL;
&documentation.index;