private int evaluateUtilityByScore(GameState _prev, GameState _current, int _player){
        int utility = 0;
        
        /// Check to find the opponent
        int tOpponent = 1;
        if(_player == tOpponent){
            tOpponent = 2;
        }
        /// Try not to give opponent score
        utility -= _current.getScore(tOpponent);

        /// Utility based on score
        int score = _current.getScore(_player);
        if(score > 1){
            utility += score;
        }
        else{
            utility += 2;
        }

        /// Check for extra move
        if(_current.getNextPlayer() == _prev.getNextPlayer()){
            utility += 4;
        }
    
        /// Try to figure out a move to prevent the opponent from stealing score
        int move = -1;
        for(int i = 1; i <= 6; ++i){
            if(_prev.getSeeds(i, _player) > 0 && _current.getSeeds(i, _player) == 0 ){
                move = i;
                break;
            }                
        }
        if(move > 0){
            int oMove = _prev.getOppositeAmbo(move);
            if(oMove > 7){
                oMove -= 7;
            }
            if (_prev.getSeeds(oMove, tOpponent) == 0){
                int val = _prev.getSeeds(move, _player);
                utility += val;//Math.pow(2, val * 0.5);;
            }
        }
        return utility; 
    }