Ejemplo n.º 1
0
 private void checkCastleVicinity(Iterable<Position> triggerPositions, int score) {
   for (Position p : triggerPositions) {
     for (Entry<Castle, Position[]> entry : scoreableCastleVicinity.entrySet()) {
       Position[] vicinity = entry.getValue();
       for (int i = 0; i < vicinity.length; i++) {
         if (vicinity[i].equals(p)) {
           Castle master = entry.getKey();
           Integer currentCastleScore = castleScore.get(master);
           if (currentCastleScore == null || currentCastleScore < score) {
             castleScore.put(master, score);
             // chain reaction, one completed castle triggers another
             checkCastleVicinity(Arrays.asList(master.getCastleBase()), score);
           }
           break;
         }
       }
     }
   }
 }