// Path: app/src/main/java/com/earthblood/tictactoe/application/Toe.java
// public class Toe extends Application {
// 
//     public static final String TAG = "EARTHBLOOD_TOE";
//     private static Context context;
// 
//     @Override
//     public void onCreate() {
//         super.onCreate();
// 
//         RoboGuice.overrideApplicationInjector(this, new ToeRoboModule());
// 
//         context = this;
//     }
// 
//     public static String getResourceString(int resourceId){
//         return context.getString(resourceId);
//     }
// }
// 
// Path: app/src/main/java/com/earthblood/tictactoe/util/GameSymbol.java
// public enum GameSymbol {
//     X(1,"X"),
//     O(2,"O");
// 
//     private int id;
//     private String value;
// 
//     private GameSymbol(int id, String value){
//         this.id = id;
//         this.value = value;
//     }
// 
//     public int getId() {
//         return id;
//     }
// 
//     public String getValue() {
//         return value;
//     }
// 
//     public static GameSymbol byId(int id) {
//         for (GameSymbol gameSymbol : values()) {
//             if(gameSymbol.getId() == id){
//                 return gameSymbol;
//             }
//         }
//         return null;
//     }
// }


import android.util.Log;
import com.earthblood.tictactoe.application.Toe;
import com.earthblood.tictactoe.util.GameSymbol;
import org.apache.commons.lang3.ArrayUtils;
import java.util.Random;
/**
 * @author John Piser developer@earthblood.com
 *
 * Copyright (C) 2014 EARTHBLOOD, LLC
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 */
package com.earthblood.tictactoe.strategy;





public class StrategyItem {

    public static final int[] ALL_BOXES = {1,2,3,4,5,6,7,8,9};
    public static final int[] DEFAULT_ZEROS = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    public static final int NOT_FOUND = -1;
    public static final int MIDDLE_BOX_POSITION = 5;

    private StrategyItem successor;
    protected int[] currentlySelectedBoxes;
    protected int[] availableBoxes;

    protected Random random = new Random();

    public int getRandom(int min, int max){
        return random.nextInt(max - min + 1) + min;
    }
    public Random getRandomObject(){
        return this.random;
    }

    protected int getBoxId(int[] selectedXBoxIds, int[] selectedOBoxIds, GameSymbol androidSymbol){
        return NOT_FOUND;
    }

    public int execute(int[] selectedXBoxIds, int[] selectedOBoxIds, GameSymbol androidSymbol){
// Path: app/src/main/java/com/earthblood/tictactoe/application/Toe.java
// public class Toe extends Application {
// 
//     public static final String TAG = "EARTHBLOOD_TOE";
//     private static Context context;
// 
//     @Override
//     public void onCreate() {
//         super.onCreate();
// 
//         RoboGuice.overrideApplicationInjector(this, new ToeRoboModule());
// 
//         context = this;
//     }
// 
//     public static String getResourceString(int resourceId){
//         return context.getString(resourceId);
//     }
// }
// 
// Path: app/src/main/java/com/earthblood/tictactoe/util/GameSymbol.java
// public enum GameSymbol {
//     X(1,"X"),
//     O(2,"O");
// 
//     private int id;
//     private String value;
// 
//     private GameSymbol(int id, String value){
//         this.id = id;
//         this.value = value;
//     }
// 
//     public int getId() {
//         return id;
//     }
// 
//     public String getValue() {
//         return value;
//     }
// 
//     public static GameSymbol byId(int id) {
//         for (GameSymbol gameSymbol : values()) {
//             if(gameSymbol.getId() == id){
//                 return gameSymbol;
//             }
//         }
//         return null;
//     }
// }


// Path: app/src/main/java/com/earthblood/tictactoe/strategy/StrategyItem.java
import android.util.Log;
import com.earthblood.tictactoe.application.Toe;
import com.earthblood.tictactoe.util.GameSymbol;
import org.apache.commons.lang3.ArrayUtils;
import java.util.Random;

/**
 * @author John Piser developer@earthblood.com
 *
 * Copyright (C) 2014 EARTHBLOOD, LLC
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 */
package com.earthblood.tictactoe.strategy;





public class StrategyItem {

    public static final int[] ALL_BOXES = {1,2,3,4,5,6,7,8,9};
    public static final int[] DEFAULT_ZEROS = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    public static final int NOT_FOUND = -1;
    public static final int MIDDLE_BOX_POSITION = 5;

    private StrategyItem successor;
    protected int[] currentlySelectedBoxes;
    protected int[] availableBoxes;

    protected Random random = new Random();

    public int getRandom(int min, int max){
        return random.nextInt(max - min + 1) + min;
    }
    public Random getRandomObject(){
        return this.random;
    }

    protected int getBoxId(int[] selectedXBoxIds, int[] selectedOBoxIds, GameSymbol androidSymbol){
        return NOT_FOUND;
    }

    public int execute(int[] selectedXBoxIds, int[] selectedOBoxIds, GameSymbol androidSymbol){
        Log.i(Toe.TAG, "Inside: " + getClass().getName());