AIsOfCatan.StarterAgent.MoveRobber C# (CSharp) Method

MoveRobber() public method

public MoveRobber ( IGameState state ) : int
state IGameState
return int
        public int MoveRobber(IGameState state)
        {
            if (!silent)
                Console.WriteLine(id + ": Move robber");

            // get locations not connected to ours
            List<int> options = new List<int>(45);
            for (int i = 0; i < 45; i++) options.Add(i);

            int choice = options.Where(t => state.Board.GetTile(t).Terrain != Terrain.Water
                        && state.Board.GetTile(t).Terrain != Terrain.Desert
                        && t != state.Board.GetRobberLocation()) // legal
                .OrderBy(t => OwnTileValue(t, state.Board) - OpponentTileValue(t, state.Board)).First(); // own value - opponent value, lowest is best for us

            return choice;
        }