class SomeOne extends Strategy
{
    public int count, leader, lead_score, onetwothree, min, min_bidder;

    public int initial_turn()
    {
	return 3;
    }

    public int turn(int last_turns[], int scores[], int carryOver, int turn_no)
    {
	// Calculate some information with which to detemine the strategy
        // for the round
	lead_score = 0;
	leader = 0;
	onetwothree = 0;
	min = 100;
	for (count = 1; count < opponents; count++)
	{
	    // Find the leader, and their score
	    if (scores[count] > lead_score)
	    {
		lead_score = scores[count];
		leader = count;
	    }

	    // If this player bid something...
	    if (last_turns[count] > 0)
	    {
		// ...count it if it was in the range of 1-3
		if (last_turns[count] < 4) onetwothree++;

		// ...and check to see if it was the low bid
		if (last_turns[count] < min)
		{
		     min = last_turns[count];
		     min_bidder = count;
		}
	    }
	}

	// OK, now decide what to do.

	// If there are multiple low bids about, follow the LeadWatch
	// strategy
	if (onetwothree > 2) return (last_turns[leader]+1);

	// If there are _no_ low bids about, follow the Const1 strategy
	// (thus giving this strategy its name...)
	else if (onetwothree == 0) return 1;

	// If just _one_ other bidder has bid in the 1-3 range, we want
	// to top _that_ bid - unless that bidder is dying, in which case
	// pass and let them die
	else if (scores[min_bidder] > 200) return (min+1);
	else return 0;
    }
}


