@Override
	public int decidePlay(int turns, int drawn, boolean fromDiscard) {
		int rval = -1;
		
		createPlayHistory(drawn);
		if (!USE_RAND && net_play_count < RAND_LIMIT && games_played > RAND_ROUNDS){
			playNet.compute(play_instance.inputs);
			rval = playNet.getOutput()-1;
		}
		else{
			rand_count++;
			net_play_count = 0;
			rval = RAND.nextInt(game.rack_size+1) - 1;
		}
		//We use -1 to represent a discard action
		//The neural network needs a value between 0 to rack_size+1
		play_instance.setOutput(rval+1, 1);
		
		//If we think this move was good, we'll keep it
		if (rval != -1){
			int temp_swap = rack.swap(drawn, rval);
			double newScore = scoreMetric();
			rack.swap(temp_swap, rval);
			if (newScore-currentScore > 0){
				drawHistory.add(draw_instance);
				playHistory.add(play_instance);
			}
			currentScore = newScore;
		}
		
		return rval;
	}