The KHangMan Handbook

# The KHangMan Handbook

Anne-Marie Mahfouf `<annma@kde.org>`

Revision Applications 20.12 (2020-12-22)

Copyright © 2001, 2009 Anne-Marie Mahfouf

Legal Notice

KHangMan is the classic hangman game for children.

Chapter 1. Introduction
Introduction

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

Chapter 2. Using KHangMan
Using KHangMan

# Chapter 2. Using KHangMan

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 left mouse button. 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.

### Important

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

If you need help guessing the word, you can click on the Display the hint icon in the bottom 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 Quit icon in the top toolbar.

You type the letter you want to try on the keyboard or select it with the left mouse button. 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 top toolbar.

Playing in different languages
Playing in different languages

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

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
A few tips

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

Chapter 3. Menubar and Toolbars
Menubar and Toolbars

# Chapter 3. Menubar and Toolbars

## The Main KHangMan Window

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
A button to change the theme
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
A Reveal Word button for 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 bottom toolbar.

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

Settings
Settings

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

Chapter 4. Developer's Guide to KHangMan
Developer's Guide to KHangMan

# Chapter 4. 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"
       "https://edu.kde.org/kvtml/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
What is stored by KHangMan and where

## What is stored by KHangMan and where

When you get a new language via the Download new language files icon, 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.

Chapter 5. Credits and License
Credits and License

# Chapter 5. Credits and License

KHangMan

Program copyright 2001-2007 Anne-Marie Mahfouf `(annma AT kde.org)`

Contributors:

- Hangman graphics: Renaud Blanchard `(kisukuma AT chez.com)`

- Sounds: Ludovic Grossard `(ludovic.grossard AT libertysurf.fr)`

- Former maintainer: Primoz Anzur `(zerokode AT gmx.net)`

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

- Spanish data files: eXParTaKus `(expartakus AT expartakus.com )`

- Spanish data hints: Rafael Beccar `(rafael.beccar AT kdemail.net )`

- Danish data files: Erik Kjaer Pedersen `(erik AT mpim-bonn.mpg.de )`

- Finnish data files: Niko Lewman `(niko.lewman AT edu.hel.fi )`

- Brazilian Portuguese data files: João Sebastião de Oliveira Bueno `(gwidion AT mpc.com.br )`

- Catalan data files: Antoni Bella `(bella5 AT teleline.es )`

- Italian data files: Giovanni Venturi `(jumpyj AT tiscali.it )`

- Dutch data files: Rinse `(rinse AT kde.nl )`

- Portuguese data files: Pedro Morais `(morais AT kde.org )`

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

- Slovenian data files: Jure Repinc `(jlp AT holodeck1.com )`

- Czech data files: Lukáš Tinkl `(lukas AT kde.org )`

- Tajik data files: Roger Kovacs `(rkovacs AT khujand.org )`

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

- Hungarian data files: Tamas Szanto `(tszanto AT mol.hu )`

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

- Turkish data files: Mehmet Özel `(mehmet_ozel2003 AT hotmail.com )`

- Bulgarian data files: Radostin Radnev `(radnev AT yahoo.com )`

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

- Coding help: Robert Gogolok `(mail AT robert-gogolok.de)`

- Coding help: Benjamin Meyer `(ben AT meyerhome.net)`

- Code fixes: Lubos Lunàk `(l.lunak AT kde.org)`

- Code fixes: Albert Astals Cid `(aacid AT kde.org)`

- Usability study: Celeste Paul `(seele AT obso1337.org)`

Documentation copyright 2001-2007 Anne-Marie Mahfouf `(annma AT kde.org)`

This documentation is licensed under the terms of the GNU Free Documentation License.

This program is licensed under the terms of the GNU General Public License.