Program: 112817
Project: 112817
Buggy source:
/** 
 * Board score function The all important board score function.  It is a function that measures how 'good' the given board is.  As a convention, this function should be an increasing function of the board's goodness.
 * @param board The current board state
 * @return
 */
public double boardScore(BoardState board){
  LinkedList<Minion> myBoardCards;
  LinkedList<Minion> opBoardCards;
  LinkedList<Card> myHandCards;
  myBoardCards=board.getMinions_p0();
  opBoardCards=board.getMinions_p1();
  myHandCards=board.getCards_hand_p0();
  double myScore=0.0;
  for (  final Minion minion : myBoardCards) {
    myScore+=minion.getAttack() * my_wAttack_;
    myScore+=minion.getHealth() * my_wHealth_;
    myScore+=(minion.getTaunt() ? 1.0 : 0.0) * wTaunt_;
    if (minion.getDivineShield())     myScore+=((minion.getAttack() + minion.getHealth()) * my_wDivineShield_);
  }
  double opScore=0.0;
  for (  final Minion minion : opBoardCards) {
    opScore+=minion.getAttack() * enemy_wAttack_;
    opScore+=minion.getHealth() * enemy_wHealth_;
    opScore+=(minion.getTaunt() ? 1.0 : 0.0) * wTaunt_;
    if (minion.getDivineShield())     opScore+=(minion.getAttack() + minion.getHealth()) * enemy_wDivineShield_;
  }
  double weaponScore=0.0;
  weaponScore+=board.getHero_p0().getAttack() * board.getHero_p0().getWeaponCharge() * my_wWeapon_;
  weaponScore-=board.getHero_p1().getAttack() * board.getHero_p1().getWeaponCharge() * enemy_wWeapon_;
  double handScore=0.0;
  for (  final Card card : myHandCards) {
    handScore+=this.cardInHandScore(card);
  }
  double heroScore=0;
  heroScore+=heroHealthScore_p0(board.getHero_p0().getHealth(),board.getHero_p0().getArmor());
  heroScore-=heroHealthScore_p1(board.getHero_p1().getHealth(),board.getHero_p1().getArmor());
  double minionScore=0.0;
  minionScore+=my_wNumMinions_ * (board.getNumMinions_p0());
  minionScore-=enemy_wNumMinions_ * (board.getNumMinions_p1());
  double score=myScore - opScore + handScore + heroScore + minionScore + weaponScore;
  return score;
}

Fixed version (ground truth):
/** 
 * Board score function The all important board score function.  It is a function that measures how 'good' the given board is.  As a convention, this function should be an increasing function of the board's goodness.
 * @param board The current board state
 * @return
 */
public double boardScore(BoardState board){
  LinkedList<Minion> myBoardCards;
  LinkedList<Minion> opBoardCards;
  LinkedList<Card> myHandCards;
  myBoardCards=board.getMinions_p0();
  opBoardCards=board.getMinions_p1();
  myHandCards=board.getCards_hand_p0();
  double myScore=0.0;
  for (  final Minion minion : myBoardCards) {
    myScore+=minion.getAttack() * my_wAttack_;
    myScore+=minion.getHealth() * my_wHealth_;
    myScore+=(minion.getTaunt() ? 1.0 : 0.0) * wTaunt_;
    if (minion.getDivineShield())     myScore+=((minion.getAttack() + minion.getHealth()) * my_wDivineShield_);
  }
  double opScore=0.0;
  for (  final Minion minion : opBoardCards) {
    opScore+=minion.getAttack() * enemy_wAttack_;
    opScore+=minion.getHealth() * enemy_wHealth_;
    opScore+=(minion.getTaunt() ? 1.0 : 0.0) * wTaunt_;
    if (minion.getDivineShield())     opScore+=(minion.getAttack() + minion.getHealth()) * enemy_wDivineShield_;
  }
  double weaponScore=0.0;
  weaponScore+=board.getHero_p0().getAttack() * board.getHero_p0().getWeaponCharge() * my_wWeapon_;
  weaponScore-=board.getHero_p1().getAttack() * board.getHero_p1().getWeaponCharge() * enemy_wWeapon_;
  double handScore=0.0;
  for (  final Card card : myHandCards) {
    handScore+=this.cardInHandScore(card);
  }
  double heroScore=0;
  heroScore+=heroHealthScore_p0(board.getHero_p0().getHealth(),board.getHero_p0().getArmor());
  heroScore+=heroHealthScore_p1(board.getHero_p1().getHealth(),board.getHero_p1().getArmor());
  double minionScore=0.0;
  minionScore+=my_wNumMinions_ * (board.getNumMinions_p0());
  minionScore-=enemy_wNumMinions_ * (board.getNumMinions_p1());
  double score=myScore - opScore + handScore + heroScore + minionScore + weaponScore;
  return score;
}