001 package ai; 002 import rules.Board; 003 import rules.GameState; 004 import core.Color; 005 import core.Piece; 006 007 /** 008 * The PieceHeuristic simply minimizes the number of piece controlled. 009 */ 010 public class PieceHeuristic implements Heuristic { 011 012 /** 013 * @see Heuristic 014 */ 015 public int heuristic(GameState currentState) { 016 int total = 0; 017 Board board = ((GameState) currentState).getBoard(); 018 for(int x = 0; x < 8; x++){ 019 for(int y = 0; y < 8; y++){ 020 Piece p = board.get(x, y); 021 if (p.getColor() == Color.WHITE){ 022 total -= 1; 023 } else if (p.getColor() == Color.BLACK) { 024 total += 1; 025 } 026 } 027 } 028 if (currentState.getCurrentColor() == Color.BLACK) 029 return -total; 030 else 031 return total; 032 } 033 }