# The &khangman; Handbook

Anne-Marie
Mahfouf

    &Anne-Marie.Mahfouf.mail;

2001
2007
&Anne-Marie.Mahfouf;
&FDLNotice;
2007-09-26
1.7

&khangman; is the classic hangman game for children, adapted for &kde;.

KDE
kdeedu
KHangMan
hangman
game
child
words

## 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 (animals words) and three difficulty categories: Easy, Medium and Hard. 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 "Sea". 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 combo box on the toolbar. Getting a new word and quitting the game are also easily done by clicking on the corresponding buttons on the toolbar.

### 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 enter the letter in the text box and you either press the &Enter; key or click on the Guess button to see if the letter belongs or not to the word.

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 Show Hint icon in the toolbar and a hint will be displayed to give you some clue about the word. Clicking the Show Hint icon again will hide the hint.

Usually, it is not important whether you type in lowercase or uppercase. The program converts all input into lowercase (except for German words beginning with an uppercase letter). The program does that automatically.

The current category and current language are displayed in the statusbar.

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 4 categories: easy, medium, hard and animals, plus categories for other topics in some languages. The program scans for all data files in all languages and uses &kanagram; words files as well.

In the easy category, the words are quite simple and related to everyday life. It is suitable for children from 6 to 9. The animals category contains only names of animals so they are easier to find. Some of them are easy, others are more difficult. In the medium category, the words are longer and more difficult. It is suitable for ages 9+. The hard category is just that, hard, &ie; the words are difficult to spell and not very well known. This category is challenging, even for adults.

After a word is guessed (or the hangman is completed), you are congratulated and prompted for another word. You can either click on Play again and another word is ready to be guessed or select another Category to play. To quit the game now select Game Quit or click the Quit icon in the toolbar.

You type the letter you want to try in the text box (the mouse cursor is ready in the text box) and you hit the &Enter; key or click the Guess button. If the letter belongs to the word, it takes its place, as many times as it appears in the word. If the letter does not belong to the word, it goes in the Misses field and a further part of the hangman is drawn on the right. 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 going in the Game menu and choosing New or clicking on the New icon on the toolbar. You can also change the category of words using the Category menu (this will bring you a new word for the new category).

The look can easily be changed with the Look toolbar holding the look dropdown box.

The Quit button on the toolbar allows you to easily quit the game.

You can also play the game with a local file installed on your machine that you will open using the Game menu and choosing Open.

### 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 the Game menu and then on Get Words in New Language.... 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 going in the Language and choose the new language.

Please note that you can now type the special characters in a language by displaying the Special Characters toolbar. This toolbar holds buttons with an icon of each special character per language like é in French for example. Clicking on such a button will write the corresponding letter in the input line and you validate your choice with &Enter;. You can of course also use the keyboard layout corresponding to the language. This toolbar can be shown or hidden. The setting is restored next time you play &khangman;.

Please note that you need Arial and URW Bookman fonts in order to display the special characters correctly in some languages. Provided you have those fonts installed, &khangman; will automatically use them. If you see small squares instead of letters, then you may not have one of these fonts installed. Type `fonts:/` into the &konqueror; address bar to check which fonts you have installed.

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

In Brazilian Portuguese, Catalan, Spanish and Portuguese, the accented vowels can be discovered when you type the non accented corresponding vowel. For example, all the accented a are displayed in the word when you type a. This is when Type accented letters on the Languages page of &khangman;'s configuration dialog is not checked. When Type accented letters is checked, then you have to type the accented letters yourself. 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

The Game menu has 3 items: New, Get Words in New Language... and Quit.

New brings you a new game, &ie; a new word to guess, in the same category you already are. Get Words in New Language... will display the Get New Stuff dialog to allow you to download data in a new language. Quit quits the game by closing the main window and writing the actual settings in the configuration file.

The Category menu allows you to choose the category of words you want to play with and also three difficulty categories.

The Language menu allows you to change the language the words are displayed in.

The Look menu proposes two themes: the Sea Theme and the Desert Theme. The background and the font colors change for each theme.

The Settings menu allows you to configure &khangman; easily. First, Toolbars, Show Hint and Show Statusbar give you the possibility to hide or show the toolbars, hints and the statusbar.

There are four toolbars: the Main, Look and Language toolbars which are the one on top with the buttons and combo boxes and the Special Characters toolbar which, when it is shown, is on the bottom. This toolbar has buttons with the special characters for each language: accented letters and other special characters. This allows users to easily play in another language without having to configure a new keyboard layout. You click on a special letter and it is displayed as the letter to try. Pressing &Enter; will make the program see if the letter is present in the word or not. The toolbar can be hidden if you don't want it. This is saved in the configuration file so if the toolbar is hidden, it will be hidden next time you run &khangman;.

It is of course possible to move the toolbars around. Put the mouse cursor on the small handle on the left of the toolbar, press the &LMB; and drag the toolbar to position it on the screen where you want it. If you point the mouse on one of the toolbars and press the right mouse button, a context menu appears to let you choose different options for the toolbar.

Configure Shortcuts... is a standard &kde; setting dialog that allows you to choose different shortcut keys for different actions. For example, &Ctrl;Q is the standard shortcut for Quit.

Configure Toolbars... is also a standard &kde; menu item that allows you to add or suppress items from the toolbar.

&khangman; Desert theme
&khangman; Desert theme

Here you have &khangman; with the Desert theme, French language and category Easy. The Special Characters toolbar is shown here.

The category is chosen with a combo box in the toolbar or via the Category menu in the menubar. Available are Easy, Medium, Animals and Hard and some more. Easy is related to common objects a child aged six or seven knows. Medium regards nouns a bit more challenging, Hard is quite difficult and Animals is only animals nouns. There are also some other categories of words, depending on the language.

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.

### Available Settings

A toolbar is provided for quick access to some settings. You can click on a button to have a new game (i.e. a new word), to see the hint or to quit the game. The theme is easily changed via a combo box on the toolbar.

In Settings Configure &khangman;... you will find tree pages. The first one is for General settings.

#### General Settings

&khangman; General settings
&khangman; General settings

Require more guesses for duplicate letters: this is unchecked as default. When unchecked, if you try the letter "a" and the word has several as, they will be all displayed. For example if the word is "potato" and you try "o", both os will be diaplayed. If you check this option however, only the first "o" will be displayed and you will have to try it one more time to display the second "o" in "potato". This increases the difficulty.

Enable animations: the default is checked, that means that when you win a game, a message box will be displayed to tell you that you won and ask you if you want to play again. If you uncheck this option, this dialog is not displayed anymore, instead a new game starts directly after 3 seconds.

In the Sounds section, if you check Enable sounds then a sound will be played on new game and another sound will be played when you win a game.

#### Languages Settings

The Languages Settings tab allows you to set some settings specific to some languages. If the settings are not available for the language you are playing in then those settings will be grayed and disabled so you cannot choose them.

&khangman; Languages Settings
&khangman; Languages Settings

Type accented letters is available for Spanish, Portuguese and Catalan in &khangman;'s configuration dialog. If you check Type accented letters then you will have to type all accented vowels (like ã). If this remains unchecked, when you type any vowel, all accented vowels will be displayed as well.

#### Timers Settings

The Timers Settings tab allows you to set Time for displaying the Already Guessed Letter tooltip.

&khangman; Timers Settings
&khangman; Timers Settings

Time for displaying the Already Guessed Letter tooltip allows you to increase or decrease the time for displaying the Already Guessed Letter tooltip. This tooltip is a label which appears when you tried a letter that was already tried. Some people will want not to see it for long while children will need time to understand it and thus will need to set the display for a longer duration.

## Command Reference

### Menus and Shortcut Keys

#### The Game Menu

&Ctrl;N Game New

  New game (&ie; new word)

&Ctrl;O Game Open

  Open a local file to play with the words

&Ctrl;G Game Get Words in New Language...

  Display the Get Hot New Stuff! dialog which lists all the data available in the different languages.

&Ctrl;Q Game Quit

  Quits &khangman;

#### The Category Menu

Category Animals

  Choose the list of animals words to guess

  All other installed categories are displayed as items in this menu as well.

Category Easy

  Choose the list of easy words to guess

Category Medium

  Choose the list of medium difficulty words to guess

Category Hard

  Choose the list of difficult words to guess

#### The Language Menu

Language English

  Choose the English language for the words to guess.

  All other installed languages are displayed as items in this menu as well.

#### The Look Menu

Look Sea Theme

  Choose the Sea background picture and associated font colors

Look Desert Theme

  Choose the Desert background picture and associated font colors

#### The Settings Menu

Settings Toolbars

  Toggle the Main, Special Characters, Look and Language toolbars.

&Ctrl;H Settings Show Hint

  Toggle the display of hints.

Settings Show Statusbar

  Toggle the statusbar.

Settings Configure Shortcuts...

  Open standard &kde; setting dialog that allows you to choose different shortcut keys for different actions.

Settings Configure Toolbars...

  Configure the items you want to put in the toolbar.

Settings Configure &khangman;...

  Display the &khangman; settings dialog.

#### The Help Menu

&help.menu.documentation;

## Developer's Guide to &khangman;

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

Please follow the procedure and then send me the files tarred and gzipped to &Anne-Marie.Mahfouf.mail;.

Please have a look in &khangman; Get Words in New Language... in the Game menu 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 me 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-kde4/<lang_code>/data/kdeedu/khangman. Don't forget to update the CMakeLists.txt file as well. Please contact me by email if you need further information. When you send me the files, please don't 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 `$KDEHOME/share/apps/kvtml/` in the language code folder. The available language dir names are also stored in the &khangman; config file in `$KDEHOME/share/config/khangmanrc`.

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

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

In the configuration file, stored for each user in `$KDEHOME/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.

## Questions and Answers

&reporting.bugs; &updating.documentation;

I have an error message telling me the pictures cannot be found.

The game installs by default in `/usr/local/kde` so add `/usr/local/kde/bin` to your path and set the `KDEDIR` variable to `/usr/local/kde` before running the game. An easy way is to configure &khangman; with the option `--prefix`=$`KDEDIR` where $`KDEDIR` is where the rest of &kde; is installed. This could vary widely, depending on the distribution and operating system you have. Better install &khangman; from your distribution!

&khangman; does not start correctly after I upgraded from an earlier version to the &kde; 4 version

There might be a problem due to the change of the configuration file. Please remove the `khangmanrc` file in your `$KDEHOME/share/config` folder.

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

- Blue theme, icons and code: &Primoz.Anzur; &Primoz.Anzur.mail;

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

- Nature theme: Joe Bolin jbolin@users.sourceforge.net

- Softer Hangman Pictures: Matt Howe mdhowe@bigfoot.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 tsdgeos@terra.es

- Usability study: Celeste Paul seele@obso1337.org

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

&underFDL; &underGPL;

## Installation

### How to obtain &khangman;

&install.intro.documentation;

### Compilation and installation

&install.compile.documentation;

&documentation.index;