Exemplo n.º 1
0
 @Override
 public Agent divine() {
   List<Agent> divineCandidates = new ArrayList<Agent>();
   divineCandidates.addAll(
       COResult.aliveGrayForMe(getLatestDayGameInfo().getAliveAgentList(), getMe()));
   divineCandidates.removeAll(
       COResult.aliveBlack(getLatestDayGameInfo().getAliveAgentList(), getMe()));
   for (Judge judge : getMyJudgeList()) {
     divineCandidates.remove(judge.getTarget());
   }
   if (divineCandidates.size() > 0) {
     return randomSelect(divineCandidates);
   } else {
     divineCandidates.addAll(getLatestDayGameInfo().getAliveAgentList());
     divineCandidates.removeAll(
         COResult.aliveBlack(getLatestDayGameInfo().getAliveAgentList(), getMe()));
     for (Judge judge : getMyJudgeList()) {
       divineCandidates.remove(judge.getTarget());
     }
     if (divineCandidates.size() > 0) {
       return randomSelect(divineCandidates);
     } else {
       divineCandidates.addAll(
           COResult.aliveWhite(getLatestDayGameInfo().getAliveAgentList(), getMe()));
       for (Judge judge : getMyJudgeList()) {
         divineCandidates.remove(judge.getTarget());
       }
       if (divineCandidates.size() > 0) {
         return randomSelect(divineCandidates);
       } else {
         for (Agent seer : COResult.getSeerCOAgent()) {
           divineCandidates.add(seer);
         }
         divineCandidates.remove(getMe());
         for (Judge judge : getMyJudgeList()) {
           divineCandidates.remove(judge.getTarget());
         }
         if (divineCandidates.size() > 0) {
           return randomSelect(divineCandidates);
         } else {
           return getMe();
         }
       }
     }
   }
 }