// Noch eine einfache Familie aggressiver Strategien
class Tyranno1 extends Strategy
{
	int step() { return 1; }

	public int initial_turn () { return 2; }

	public int turn(int last_turns[], int scores[],
					int carryOver, int turn_no)
	{
		int i, i0;

		if ( 2*last_turns[0] >= maxPlayableNumber && Math.random() < 0.5)
		{
			return 1;
		}

		i0 = 0;
		for (i = 1; i < opponents; i++)
		{
			if ( scores[i] >= scores[i0] ) i0 = i;
		}
		return Math.min(maxPlayableNumber, last_turns[i0] + step());
	}
}

class Tyranno1b extends Tyranno1
{
	public int initial_turn () { return 4; }

	public int turn(int last_turns[], int scores[],
					int carryOver, int turn_no)
	{
		int i, i0;

		i0 = 0;
		for (i = 1; i < opponents; i++)
		{
			if ( scores[i] >= scores[i0] ) i0 = i;
		}
		return Math.min(maxPlayableNumber, last_turns[i0] + step());
	}
}

class Tyranno2 extends Tyranno1
{
	int step() { return 2; }
}

class Tyranno2b extends Tyranno1b
{
	int step() { return 2; }
}


class Tyranno3 extends Tyranno1
{
	int step() { return 3; }
}

class Tyranno3b extends Tyranno1b
{
	int step() { return 3; }
}


class Tyranno4 extends Tyranno1
{
	int step() { return 4; }
}

class Tyranno4b extends Tyranno1b
{
	int step() { return 4; }
}

class Tyranno5 extends Tyranno1
{
	int step() { return 5; }
}

class Tyranno5b extends Tyranno1b
{
	int step() { return 5; }
}

class Tyranno6 extends Tyranno1
{
	int step() { return 6; }
}

class Tyranno6b extends Tyranno1b
{
	int step() { return 6; }
}

class Tyranno7 extends Tyranno1
{
	int step() { return 7; }
}

class Tyranno7b extends Tyranno1b
{
	int step() { return 7; }
}
