AIsOfCatan.DebugAgent.PlaceStart C# (CSharp) Method

PlaceStart() public method

public PlaceStart ( IGameState state, IStartActions actions ) : void
state IGameState
actions IStartActions
return void
        public void PlaceStart(IGameState state, IStartActions actions)
        {
            if (!silent)
                Console.WriteLine(id + ": Place starts");
            if (!firstStartPlaced)
            {
                firstStartPlaced = true;
                actions.BuildSettlement(start1);
                if (!silent)
                    Console.WriteLine(id + ": First settlement built succesfully");
                actions.BuildRoad(new Edge(start1.FirstTile, start1.SecondTile));
                if (!silent)
                    Console.WriteLine(id + ": First road built succesfully");
            }
            else
            {
                try
                {
                    actions.BuildSettlement(start1);
                    if (!silent)
                        Console.WriteLine(id + ": Controller allowed a building on top of another");
                }
                catch (IllegalBuildPositionException e)
                {
                    if (!silent)
                        Console.WriteLine(id + ": Controller threw exception as expected: " + e.Message);
                }
                try
                {
                    actions.BuildSettlement(tooClose);
                    if (!silent)
                        Console.WriteLine(id + ": Controller allowed a building too close");
                }
                catch (IllegalBuildPositionException e)
                {
                    if (!silent)
                        Console.WriteLine(id + ": Controller threw exception as expected: " + e.Message);
                }
                actions.BuildSettlement(start2);
                Console.WriteLine(id + ": Second settlement built succesfully");
                try
                {
                    actions.BuildRoad(farRoad);
                    if (!silent)
                        Console.WriteLine(id + ": Controller allowed a building disconnected road");
                }
                catch (IllegalBuildPositionException e)
                {
                    if (!silent)
                        Console.WriteLine(id + ": Controller threw exception as expected: " + e.Message);
                }
                actions.BuildRoad(new Edge(start2.FirstTile,start2.SecondTile));
                if (!silent)
                    Console.WriteLine(id + ": Second road built succesfully");
            }
        }