home *** CD-ROM | disk | FTP | other *** search
/ High Voltage Shareware / high1.zip / high1 / DIR2 / CBUFF09.ZIP / SRC.ZIP / LANGUAGE.C < prev    next >
C/C++ Source or Header  |  1993-11-16  |  3KB  |  85 lines

  1. /*  $Id: language.c,v 1.1 1993/07/13 10:11:32 anjo Exp $
  2.  *  
  3.  *  File    language.c
  4.  *  Part of    ChessBase utilities file format (CBUFF)
  5.  *  Author    Anjo Anjewierden, anjo@swi.psy.uva.nl
  6.  *  Purpose    Definition of chess piece names for natural languages
  7.  *  Works with    GNU CC 2.4.5
  8.  *  
  9.  *  Notice    Copyright (c) 1993  Anjo Anjewierden
  10.  *  
  11.  *  History    12/07/93  (Created)
  12.  *          12/07/93  (Last modified)
  13.  */ 
  14.  
  15.  
  16. /*------------------------------------------------------------
  17.  *  Directives
  18.  *------------------------------------------------------------*/
  19.  
  20. #include "cbuff.h"
  21.  
  22.  
  23. /*------------------------------------------------------------
  24.  *  Definitions
  25.  *------------------------------------------------------------
  26.  *
  27.  *  This file defines the abbreviations of chess pieces for
  28.  *  various languages.  The current set has been taken from
  29.  *  the Notation program developed by Henry Thomas
  30.  *  (Henry.Thomas@irisa.fr).
  31.  */
  32.  
  33. struct language
  34. { char *    name;
  35.   char *    king;
  36.   char *    queen;
  37.   char *    rook;
  38.   char *    bishop;
  39.   char *    knight;
  40.   char *    pawn;
  41. } Languages[] =
  42.   /* Name      King  Queen Rook Bishop Knight Pawn */
  43. { { "FIDE",      "K",  "D",  "T", "S",   "N",   "P" },
  44.   { "czech",     "K",  "D",  "V", "S",   "J",   "P" },
  45.   { "dutch",     "K",  "D",  "T", "L",   "P",   "O" },
  46.   { "english",   "K",  "Q",  "R", "B",   "N",   "P" },
  47.   { "french",    "R",  "D",  "T", "F",   "C",   "P" },
  48.   { "german",    "K",  "D",  "T", "L",   "S",   "B" },
  49.   { "hungarian", "K",  "V",  "B", "F",   "H",   "G" },
  50.   { "italian",   "R",  "D",  "T", "A",   "C",   "P" },
  51.   { "polish",    "K",  "H",  "W", "G",   "S",   "P" },
  52.   { "romanian",  "R",  "D",  "T", "N",   "C",   "P" },
  53.   { "spanish",   "R",  "D",  "T", "A",   "C",   "P" },
  54.   {  NULL,        "",   "",   "",  "",    "",    "" }
  55. };
  56.  
  57.  
  58. /*------------------------------------------------------------
  59.  *  Functions
  60.  *------------------------------------------------------------*/
  61.  
  62. void
  63. setLanguage(char *lang)
  64. { struct language *p;
  65.  
  66.   for (p=Languages; p->name!=NULL; p++)
  67.   { if (strcmp(p->name, lang) == 0)
  68.     { AsciiSymbols[KING_SYMBOL] = p->king;
  69.       AsciiSymbols[QUEEN_SYMBOL] = p->queen;
  70.       AsciiSymbols[ROOK_SYMBOL] = p->rook;
  71.       AsciiSymbols[BISHOP_SYMBOL] = p->bishop;
  72.       AsciiSymbols[KNIGHT_SYMBOL] = p->knight;
  73.       AsciiSymbols[PAWN_SYMBOL] = p->pawn;
  74.       return;
  75.     }
  76.   }
  77.   fprintf(stderr, "Fatal: Language %s is not available.\n", lang);
  78.   fprintf(stderr, "       Please mail the piece names to the author.\n\n");
  79.   fprintf(stderr, "Currently the following languages are defined:\n");
  80.   for (p=Languages; p->name != NULL; p++)
  81.     fprintf(stderr, "%-12s  %3s  %3s  %3s  %3s  %3s  %3s\n", p->name,
  82.         p->king, p->queen, p->rook, p->bishop, p->knight, p->pawn);
  83.   exit(0);
  84. }
  85.