public Point ExtendShot() { // Lets consider North, South, East, and West of the current shot. // and measure the potential of each Attack attack = attackVector.Peek(); Board potential = new Board(size); Point[] points = attack.GetNextTargets(); foreach (Point p in points) { if (shotBoard.ShotAt(p)) { potential[p] = 0; continue; } foreach (HunterBoard b in targetBoards) { potential[p] += b.GetWeightAt(p); } } Point shot = potential.GetBestShot(); shotBoard[shot] = Shot.Unresolved; return(shot); }