EasyAI.java :  » Game » androidyaniv » com » andro » yaniv » ai » Android Open Source

Android Open Source » Game » androidyaniv 
androidyaniv » com » andro » yaniv » ai » EasyAI.java
package com.andro.yaniv.ai;

import java.util.ArrayList;
import com.andro.yaniv.game.Player;
import com.andro.yaniv.game.PlayerHand;
import com.andro.yaniv.game.PlayingCard;

public class EasyAI extends YanivAI{

  public PlayingCard[] getBestDrop(Player curPlayer){
    PlayerHand playerHand = curPlayer.getHand();
    ArrayList<PlayingCard[]> listOfHands = new ArrayList<PlayingCard[]>();
    ArrayList<PlayingCard> possibleHand = new ArrayList<PlayingCard>();
    
    CombinationGenerator cg = null;
    int number = playerHand.getCardCount();

    
        for (int x = 0; x < number; x++){
            cg = new CombinationGenerator(number,x+1);
            int [] result;
            while (cg.hasMore()){
              possibleHand.clear();
                result = cg.getNext();
                for (int y = 0; y < result.length; y++){
                  possibleHand.add(playerHand.getCard(result[y]));
                }
            PlayingCard[] cardArray = new PlayingCard[possibleHand.size()];
                possibleHand.toArray(cardArray);
                cardArray = sortCardsForDrop(curPlayer,cardArray);
                
                if (cardArray[cardArray.length-1].getFace().getFaceValue() != 0){
                  if (curPlayer.validateDrop(cardArray) != Player.DROPINVALID){
                    listOfHands.add(cardArray);
                  }
                }
            }
        }
        
        PlayingCard[] highestHand = null;
        int highestSum = 0;
        int curSum = 0;
        
        for (int x = 0; x < listOfHands.size(); x++){
          curSum = PlayerHand.getHandSum(listOfHands.get(x));
          if (curSum > highestSum){
            highestSum = curSum;
            highestHand = listOfHands.get(x);
            
          }
        }
        return highestHand;
  }

  public int getBestPickup(Player currentPlayer, PlayerHand discardHand) {
    try{
      if (discardHand.getCard(discardHand.getCardCount()-1).getCountValue() > 5){
        return Player.DECK;
      }else{
        return Player.DISCARD;
      }
    }catch (NullPointerException e){return Player.DECK;}
  }
  
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.