public float evaluate(PieceColor color, BoardModel board) { float eval = 1f; float pointSimple = 1f; float pointCapture = 5f; int rows = board.board.GetLength(0); int cols = board.board.GetLength(1); int i; int j; for (i = 0; i < rows; i++) { for (j = 0; j < cols; j++) { PieceModel p = board.board[i, j]; if (p == null) { continue; } if (p.color != color) { continue; } Move[] moves = p.GetMoves(ref board.board); foreach (Move mv in moves) { MoveModel m = (MoveModel)mv; if (m.isCapture()) { eval += pointCapture; } else { eval += pointSimple; } } } } return(eval); }
public override Move[] getMoves() { List <Move> moves = new List <Move>(); int rows = board.GetLength(0); int cols = board.GetLength(1); int i; int j; for (i = 0; i < rows; i++) { for (j = 0; i < cols; j++) { PieceModel p = board[i, j]; if (p == null) { continue; } moves.AddRange(p.GetMoves(ref board)); } } return(moves.ToArray()); }
public Move[] getPiecesMoves(PieceModel piece) { return(piece.GetMoves(ref board)); }