Subversion Repositories Games.Chess Giants

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. /*
  2.     Protector -- a UCI chess engine
  3.  
  4.     Copyright (C) 2009-2010 Raimund Heid (Raimund_Heid@yahoo.com)
  5.  
  6.     This program is free software: you can redistribute it and/or modify
  7.     it under the terms of the GNU General Public License as published by
  8.     the Free Software Foundation, either version 3 of the License, or
  9.     (at your option) any later version.
  10.  
  11.     This program is distributed in the hope that it will be useful,
  12.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.     GNU General Public License for more details.
  15.  
  16.     You should have received a copy of the GNU General Public License
  17.     along with this program.  If not, see <http://www.gnu.org/licenses/>.
  18.  
  19. */
  20.  
  21. #ifndef _fen_h_
  22. #define _fen_h_
  23.  
  24. #define FEN_GAMESTART "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1"
  25.  
  26. #include "protector.h"
  27. #include "position.h"
  28.  
  29. /**
  30.  * Convert a FEN string to a position object.
  31.  *
  32.  * @param fen the FEN string to be converted
  33.  * @param position the position object that is supposed to contain the
  34.  *        position specified by 'fen'
  35.  *
  36.  * @return 0 if the conversion could be accomplished
  37.  */
  38. int readFen(const char *fen, Position * position);
  39.  
  40. /**
  41.  * Convert a position object to an FEN string.
  42.  *
  43.  * @param position the position object to be converted
  44.  * @param fen the buffer supposed to contain the fen string of the position
  45.  *        specified by 'position'
  46.  */
  47. void getFen(const Position * position, char *fen);
  48.  
  49. /**
  50.  * Initialize this module.
  51.  *
  52.  * @return 0 if no errors occurred.
  53.  */
  54. int initializeModuleFen(void);
  55.  
  56. /**
  57.  * Test this module.
  58.  *
  59.  * @return 0 if all tests succeed.
  60.  */
  61. int testModuleFen(void);
  62.  
  63. #endif
  64.