/*
* =====================================================================================
*
* Filename: AbstractChessPiece.h
*
* Description: Representation of a chess piece
*
* Version: 1.0
* Created: 21/02/2011 07:41:33
* Revision: none
* Compiler: gcc
*
* Author: John Ryland (jryland), jryland@xiaofrog.com
* Company: InvertedLogic
*
* =====================================================================================
*/
#ifndef __ABSTRACT_CHESS_PIECE_H__
#define __ABSTRACT_CHESS_PIECE_H__
enum ChessPieceType
{
Pawn,
Bishop,
Knight,
Rook,
Queen,
King
};
enum ChessPieceColor
{
White,
Black
};
struct ChessBoardPosition
{
unsigned int rank : 3;
unsigned int file : 3;
};
class AbstractChessPiece
{
public:
AbstractChessPiece(ChessPieceType type, ChessPieceColor color, int rank, int file);
~AbstractChessPiece();
ChessPieceType type;
ChessPieceColor color;
ChessBoardPosition position;
};
#endif // __ABSTRACT_CHESS_PIECE_H__