diff --git a/src/main/java/controls/BotIntelligence.java b/src/main/java/controls/BotIntelligence.java index e01c2ca..e672d8e 100644 --- a/src/main/java/controls/BotIntelligence.java +++ b/src/main/java/controls/BotIntelligence.java @@ -3,16 +3,13 @@ import interfaces.IAttack; import interfaces.IBotBehavior; -import java.util.AbstractMap; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; +import java.util.*; import static views.Constants.DECK_COUNT; public class BotIntelligence implements IBotBehavior { - BotIntelligence(){ + public BotIntelligence(){ } /** @@ -30,10 +27,12 @@ /** * 相手の手札に対して、候補となる数字を割り当てる + * @param iAttack + * @return 候補のリスト */ - void assignCandidateNumberEachHand(IAttack iAttack){ + List assignCandidateNumberEachHand(IAttack iAttack){ var opponentsHands=iAttack.getOpponentHands(); - var targetList=new ArrayList<>(); + var result=new ArrayList(); for(var card:opponentsHands){//ユーザーの手札を左から見ていく var index=opponentsHands.indexOf(card);//左からindex番目に @@ -44,7 +43,6 @@ candidateList.clear(); }else{ //裏の場合 - //そのカードから右隣のカードを確認していく for(int i=0;i x).toArray()); } + return result; } //公開されていないカードのインデックスを選ぶ(カードにかかれている番号ではない) @Override public int selectAttacker(IAttack iAttack) { - var botsHands = iAttack.getMyHands(); + var botHands = iAttack.getMyHands(); - for(var i:botsHands){ - if(!i.getValue())return botsHands.indexOf(i); + for(var i:botHands){//小さいものから選択 + if(!i.getValue())return botHands.indexOf(i); } return 0; } @Override public int selectTarget(IAttack iAttack) { - - return 0; + var candidate= assignCandidateNumberEachHand(iAttack); + int result=0; + int min=DECK_COUNT; + for(var i:candidate){ + if(i.length(); - for(int i=0;i