bionic (6) xletters.6.gz

Provided by: xletters_1.1.1-5build1_amd64 bug

NAME

       xletters - catch falling words

SYNOPSIS

       xletters [ options ]

DESCRIPTION

       X Letters is a game under X to improve your typing skill.  It is inspired by the game letters(6) by Larry
       Moss and Brent Nordquist (which itself is inspired by the game Letter Invaders,  and  ultimately  by  the
       famous Space Invaders).

       The  goal  of  the game is to destroy the words that fall down from the top before they reach the bottom.
       To destroy a word, you must simply type it.

       The game is organized in levels of increasing difficulty.  Each level is divided into two parts: a normal
       part  and  a  bonus  part.   During  the normal part, ordinary english words will fall down (found in the
       system's dictionary, usually /usr/dict/words).  During the bonus part, the words are  randomly  generated
       from printable ascii characters.

       If  a  word  hits the ground during the normal part, you lose a life (you have five lives initially), and
       the word disappears (but the others keep on falling).  If a word hits the ground during the  bonus  part,
       the bonus part simply ends, with no additional penalty, and the game proceeds to the next level.

       The  normal  part  of  a  level  ends when a certain time has elapsed.  The bonus part ends when either a
       certain time has elapsed or when a word has hit the ground.  The normal duration of a half-level  is  600
       time units, or 45 seconds (whatever the level).

       Typing  a  word  correctly  makes  the word disappear and scores you one point per letter, plus five more
       points, plus another extra three points if the word was destroyed in the top fifth of the  window.   This
       is  the  only  way  of  gaining  points: partially typed words are not worth anything, and even moving to
       another level doesn't bring you points (this is because even if you  don't  type  anything  you  will  go
       beyond the first level).

       Short  words  fall  faster  than  long  ones.   Unless otherwise specified at compile time, words are not
       allowed to collide into one another.  Therefore, when a new word appears, the game makes  sure  that  all
       the words below it fall at least as fast as it.  The fall rate of the words also increases with the level
       (it is, however, the same between the normal part and the bonus part of the same  level).   The  rate  at
       which words appear is constant on a given level, but it increases with the level.

       A  word is considered typed when the last printable characters that you typed since the word appeared are
       precisely the letters of the word.  This means in particular that it is possible to ``kill two birds with
       one  stone''  if one word ends with the letters with which another one begins - in fact, if two identical
       words appear (an unlikely but not impossible situation), you need only type one of them.  To  say  things
       differently,  if  you type a correct letter it will make your position in the word advance by one letter,
       and if you type an incorrect letter, it will make your position move back to the last place in  the  word
       that  matches  the  characters  you typed.  The current position in each word is indicated by putting the
       already typed letters in a different color (normally red).  Note that a different behaviour is selectable
       at  compile  time  with  which  a wrong letter will cause all letters to be considered wrong (to make the
       difference obvious, consider the word ``abracadabrx'': if after having typed ``abracadabr'' you press  an
       ``a'',  the normal behaviour will take you back to ``abra'' whereas the alternate behaviour will take you
       back to the beginning).

       The game keeps a high score table.  When the game is over, one way or another, xletters  will  show,  for
       the  user  and  for  the  twenty best players, the name, the level reached, the final score, and the time
       during which the game was running.  Normally, each player is allowed only one entry  in  the  high  score
       table.  This can be modified at compilation time, however.

CONTROLS

       The  top  of  the  window  shows three buttons.  The Quit button will take you out of the game, the Pause
       button will pause the game or resume it if it was already paused, and the Next button will  move  to  the
       next  level  (normal  part).  These buttons can also be accessed through accelerators: the ``Escape'' key
       will quit the game, the ``Tab'' key (or ``Pause'' if you have one) will suspend it or resume it, and  the
       ``Page Down'' key (or ``Next'' if it is so labeled) will advance one level.

       Three labels on the right of the buttons are used to indicate your lives, score and current level.

       Other  than  that,  to  play  the  game  you  must  simply type the words.  In order for the typing to be
       effective, your mouse cursor must be in the game space (the large  square  area  below  the  buttons  and
       labels).  If you start typing while the game is paused, it will automatically resume.

       Scoring  is made much more complicated if you choose to use the Next button to warp through levels.  (The
       point is that it should be used to avoid having to go through all the easy levels  if  you  already  type
       very fast.  So it should not handicap you excessively by giving you no points which you would have gotten
       if you had worked your way through those levels.  On the other hand, it should not be an obvious  way  of
       gaining  arbitrarily many points.)  Here is the way it works: when you use the Next button to warp to the
       next level, you gain 350 ``virtual'' points.  Those points are indicated in parentheses after  your  real
       points  in  the  score label.  They are not worth anything by themselves.  On the other hand, if you have
       virtual points, every time you gain some points, that many virtual points will also be converted to  real
       points  (until  you no longer have virtual points).  Thus, virtual points are worth something only if you
       prove yourself good enough to make them so.

       There are some restrictions to the use of the Next button.  First, it will only work in the bonus part of
       a level, or if no word has fallen lower than the top fifth of the screen.  This is so you can't use it to
       get yourself easily out of a tricky situation.  Second, if you already scored some points on the  current
       level, using the Next button will award you fewer than the normal 350 virtual points (see above), in fact
       precisely twice fewer than as many points as you gained on the level (but no less than zero, of course).

TRAINING MODE

       xletters has a training mode, which you can invoke using the -train command  line  option.   In  training
       mode, only one (english) word appears at a time, anywhere on the game space, and it does not fall.  A new
       word appears as soon as you finish typing the previous one.   In  training  mode,  there  are  no  lives,
       points, levels, or bonus words.

DEATHMATCH AND DUEL

       xletters  also  has  the  amazing  ``deathmatch'' mode.  To invoke this mode, use the -death command line
       option.  This has the following effects on the behaviour of xletters: first, it will read  words  on  the
       standard  input,  and  make  them fall.  Second, you can choose between typing falling words, or typing a
       special word in a special part of the display, just above the game space.  To switch between both  modes,
       use  the  Mode button or press the ``Backspace'' key.  The special word typed must be an english word: if
       the letter you type makes the word fragment no longer begin a word  in  the  dictionary,  it  immediately
       disappears.   When you type a full word, you can then send it by using the Send button or by pressing the
       ``Return'' key.  The word sent gets printed on the standard output.

       These features make sense when two copies of xletters are run  in  deathmatch  mode,  with  the  standard
       output  of  each  being  sent to the standard input of the other (possibly across the network).  Then the
       player on each game can not only kill his falling words but also send words to the other player.

       Even more extreme than the ``deathmatch'' mode is the ``duel'' mode, activated through the -duel  command
       switch.   In  duel  mode,  the  computer  does not send words of its own, and only words sent through the
       standard input will appear.  In this case, there is no Next button, and switching to the next  level  can
       only occur after a certain amount of time.  In fact, there are no bonus parts of levels, so levels change
       twice more rapidly than in normal play.  Moreover, a level change does not erase all  the  current  words
       contrary to what happens in normal (or deathmatch) mode.

       The X Letters distribution includes a shell script named xletters-duel which uses Avian Research's netcat
       program (nc) to open a socket, run xletters in duel mode, and try to connect to  the  same  socket  on  a
       given  computer.   Thus,  two people on two different computers can play a duel by each running xletters-
       duel with the name of the other's computer as parameter.  (Both copies must be run within five seconds of
       the other.)

OPTIONS

       X Letters recognizes all the standard X Toolkit command line options, among which the following:

       -bg color
              Specifies the background color to use.

       -fg color
              Specifies the foreground color to use for the labels and buttons.

       -fn font
              Specifies the font to use for displaying the labels and buttons.

       -name name
              Specifies  the  application  name  under which resources are to be obtained, rather than under the
              default executable file name.  name should not contain ``.'' or ``*'' characters.

       -title string
              Specifies the window title string.

       -geometry geometry
              Specifies the preferred position of the window.  Specifying a size is not recommended.

       -display display
              Specifies the X server to use.

       -xrm resourcestring
              Explicitely give a resource string.

       The following additional options are recognized by xletters:

       -wfn font
              Specifies the font to use for the falling words.  (Sets the wordFont resource.)

       -wc color
              Specifies which color to use for the words.  (Sets the wordColor resource.)

       -tc color
              Specifies which color to use for the correctly typed part of  the  words.   (Sets  the  typedColor
              resource.)

       -gbg color
              Specifies which color to use for the background of the game space.  (Sets the gameSpace.background
              resource.)

       -notrain
              Do not go in training mode (this is the default).  (Sets the trainingMode resource to ``False''.)

       -train Run the game in training mode (see TRAINING MODE  above).   (Sets  the  trainingMode  resource  to
              ``True''.)

       -nodeath
              Do  not  run  in  deathmatch  or duel mode (this is the default).  (Sets the deathMode resource to
              ``normal''.)

       -death Run in deathmatch mode  (see  DEATHMATCH  AND  DUEL  above).   (Sets  the  deathMode  resource  to
              ``death''.)

       -duel  Run in duel mode (see DEATHMATCH AND DUEL above).  (Sets the deathMode resource to ``duel''.)

       In addition, xletters recognizes -help and -version options.

WIDGETS

       groundBox (class Box, parent (toplevel))
              This is the main application box that supports all the other widgets.

       label (class Label, parent groundBox)
              The xletters label.  The text of this label cannot be changed.

       quitButton (class Command, parent groundBox)
              The Quit button.

       pauseButton (class Toggle, parent groundBox)
              The Pause button.

       livesLabel (class Label, parent groundBox)
              The lives label.

       scoreLabel (class Label, parent groundBox)
              The score label.

       levelLabel (class Label, parent groundBox)
              The level label.

       gameSpace (class Core, parent groundBox)
              The  game  space in which the words fall.  Key presses and Expose events are handled through event
              handlers and not the ordinary translation/action mechanism.

RESOURCES

       In addition to the resources of the various widgets, the  xletters  application  itself  recognizes  some
       resources.  These are:

       wordFont (class Font, type FontStruct)
              The font in which the falling words are written.

       wordColor (class Foreground, type Pixel)
              The color in which the (untyped part of the) falling words are written.

       typedColor (class HighlightColor, type Pixel)
              The color in which the typed part of the falling words are written.

       deathMode (class DeathMode, type String)
              Either  normal,  death  or  duel according as the game should be run in normal, deathmatch or duel
              mode (see DEATHMATCH AND DUEL above).

       trainingMode (class TrainingMode, type Boolean)
              Whether the game should be run in training  mode  (this  overrides  any  value  of  the  deathMode
              resource (see TRAINING MODE above).

FILES

       (If not overriden at compile time)

       /usr/share/dict/words
              The dictionary of words.

       /var/games/xletters/scores
              The high score table.

CONFIGURATION SUGGESTION

       xletters   -wfn  '-bitstream-terminal-medium-r-normal--18-*-*-*-c-*-iso8859-1'  -gbg  'MidnightBlue'  -wc
       'PaleGoldenrod' -tc 'Orchid'

BUGS

       None known.  Surely a very temporary situation :-)

       This is one of the ugliest programs I ever wrote.  I would not be surprized to discover plenty of bugs in
       it.  Version 1.0.0 was ugly enough.  Version 1.1.0 gave a whole new meaning to the word ``uglyfication''.

SECURITY

       xletters  wants to access a high score table.  If this score table is to be shared between several users,
       xletters will probably be made sgid games or some such thing.  Beware that it is probably  very  easy  to
       fool  (or  even  brake to pieces).  I have no doubt that running it against a fake X server (and probably
       other similar  things)  can  give  not-too-hard  access  to  whatever  permissions  it  has  been  given.
       Consequently, it should not be given any critical permissions.

AUTHORS

       Peter  Horvai (peter.horvai@ens.fr) wrote the deathmatch feature and implemented mmap()ing the dictionary
       file.

       David Madore (david.madore@ens.fr) wrote version 1.0.0, all the X Windows parts of the game, and this man
       page.

COPYING

       GNU public license.  See the file COPYING for more information.

SEE ALSO

       letters(6), xtetris(6)

                                                   05 NOV 1998                                       XLETTERS(6)