/// <summary> /// ChessSquare Constructor /// </summary> public ChessSquare() { chessLocation = new Point(0,0); startLocation = new Point(0,0); chessPiece = null; isLastMove = false; squareID = EnumSquareID.A1; }
/// <summary> /// SetChessSquareID Accessor /// </summary> /// <param name="aSquareID"></param> public void SetID(EnumSquareID aSquareID) { squareID = aSquareID; }
/// <summary> /// GetSquareByID method /// </summary> /// <param name="aLocation"></param> /// <returns>ChessSquare</returns> public ChessSquare GetSquareByID(EnumSquareID aSquareID) { ChessSquare square; for (int i = 0; i < ChessImageConstants.SquareCount; i++) { square = (ChessSquare)squareList[i]; if (square != null) { if (square.GetChessSquareID() == aSquareID) { return square; } } } return null; }
public static EnumSquareID IncrementEnumSquareID(EnumSquareID id) { if (id == EnumSquareID.ER) return id; else return id + 1; }
//private bool isHighlight; //private bool isLastMove; /// <summary> /// ChessSquare Constructor /// </summary> public ChessSquare() { chessLocation = new Point(0, 0); startLocation = new Point(0, 0); squareID = EnumSquareID.A1; }
/// <summary> /// SetChessLocation Accessor /// </summary> /// <param name="aLocation"></param> public void SetChessLocation(Point aLocation) { if ((aLocation.X < 0) || (aLocation.X > 7) || (aLocation.Y < 0) || (aLocation.Y > 7)) throw (new Exception(String.Format( "Square.SetChessLocation : Invalid Location ({0},{1})", aLocation.X, aLocation.Y))); // the new FEN AN way squareID = GetSquareIDfromLocation(aLocation); // the original location way chessLocation = aLocation; }
/// <summary> /// GetSquareIDfromLocation /// </summary> /// <param name="aLocation"></param> /// <returns>EnumSquareID</returns> public EnumSquareID GetSquareIDfromLocation(Point aLocation) { // the Chess Square Designation Way using Algebraic Notation uint theFile = 0; uint theRank = 0; uint aFile = 0; uint aRank = 0; uint j = 1; while (j <= ChessImageConstants.SquareCount) { theFile = (uint)aLocation.X + 1; theRank = (uint)aLocation.Y + 1; aFile = 1 + ((j - 1) % 8); aRank = 8 - ((j - 1) / 8); if (theFile == aFile && theRank == aRank) { squareID = (EnumSquareID)(((aRank - 1) * 8) + (aFile - 1)); break; } j++; } return squareID; }
public static EnumSquareID DecrementEnumSquareID(EnumSquareID id) { if (id == EnumSquareID.A1) return id; else return id - 1; }