This method chooses the number of sticks to pick up based

/**
   * This method chooses the number of sticks to pick up based on the
   * sticksRemaining and actionRanking parameters.
   * Config.MAX_ACTION =3,Config.MIN_ACTION=1

* Algorithm: If there are less than Config.MAX_ACTION sticks remaining

   * then the chooser must pick the minimum number of sticks (Config.MIN_ACTION ).
   * For Config.MAX_ACTION or more sticks remaining then pick based on the
   * actionRanking parameter.
   *
   * The actionRanking array has one element for each possible action. The 0
   * index corresponds to Config.MIN_ACTION and the highest index corresponds
   * to Config.MAX_ACTION. For example, if Config.MIN_ACTION is 1 and
   * Config.MAX_ACTION is 3, an action can be to pick up 1, 2 or 3 sticks.
   * actionRanking[0] corresponds to 1, actionRanking[1] corresponds to 2, etc.
   * The higher the element for an action in comparison to other elements,
   * the more likely the action should be chosen.
   *
   * First calculate the total number of possibilities by summing all the
   * element values. Then choose a particular action based on the relative
   * frequency of the various rankings.
   * For example, if Config.MIN_ACTION is 1 and Config.MAX_ACTION is 3:
   * If the action rankings are {9,90,1}, the total is 100. Since
   * actionRanking[0] is 9, then an action of picking up 1 should be chosen
   * about 9/100 times. 2 should be chosen about 90/100 times and 3 should
   * be chosen about 1/100 times. Use Config.RNG.nextInt(?) method to
   * generate appropriate random numbers.
   *
   * @param sticksRemaining
   * The number of sticks remaining to be picked up.
   * @param actionRanking
   * The counts of each action to take. The 0 index corresponds to
   * Config.MIN_ACTION and the highest index corresponds to
   * Config.MAX_ACTION.
   * @return The number of sticks to pick up. 0 is returned for the following
   * conditions: actionRanking is null, actionRanking has a length of
   * 0, or sticksRemaining is <= 0.
   *
   */
   static int aiChooseAction(int sticksRemaining, int[] actionRanking) {

}

Solution

//Define the config variables and the random method

Config.java

import java.util.Random;
public class Config{

    //declaring random variables

    static int MAX_ACTION = 3;
    static int MIN_ACTION = 1;

    public static class RNG{
        public static int nextInt(int n){
            return new Random().nextInt(n); //returning random int
        }
    }
}

ai.java

public class ai{

    static int aiChooseAction(int sticksRemaining, int[] actionRanking){
        int size = actionRanking.length;
        if (size == 0 || sticksRemaining<0 || actionRanking==null){
            return 0; //boundary conditions (sanity checks)
        }
        else if(sticksRemaining<Config.MAX_ACTION){
            return Config.MIN_ACTION; //return min if less than max
        }
        else{
            int total = 0;
            for(int i=0; i<size; i++){
                total += actionRanking[i]; //calculating total
            }
            int random_no = Config.RNG.nextInt(total);
            System.out.println(\"random: \"+random_no);
            int sum = 0;
            for(int i=0; i<size; i++){
                if(random_no < sum+actionRanking[i]){
                    return i+1;
                }
                else{
                    sum+=actionRanking[i];
                }
            }
        }
        return 0;
    }

    public static void main(String[] args) {
        int[] actionRanking = new int[] {9, 90, 1};
        int sticksRemaining = 10;
        System.out.println(aiChooseAction(sticksRemaining, actionRanking));
    }
}

/** * This method chooses the number of sticks to pick up based on the * sticksRemaining and actionRanking parameters. * Config.MAX_ACTION =3,Config.MIN_ACTION=
/** * This method chooses the number of sticks to pick up based on the * sticksRemaining and actionRanking parameters. * Config.MAX_ACTION =3,Config.MIN_ACTION=

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site