Example #1
0
        private void RobotMove(IRobotContact robotContact, IPlateauInfo plateauInfo)
        {
            IRobotBehaviour robotBehaviour = new RobotBehaviour(robotContact.robotInfo, plateauInfo);

            foreach (var directive in robotContact.route)
            {
                robotBehaviour.NextMove(directive);
            }
        }
        public void SetupPlateauAndRobot(IList <string> input, out IPlateauInfo plateauInfo, out List <IRobotContact> robotContacts)
        {
            robotContacts = new List <IRobotContact>();
            plateauInfo   = SetupPlateau(input.First().Trim());
            //Arazi değerini aldıktan sonra listeden siliyoruz
            input.RemoveAt(0);

            var inputCount = input.Count;

            for (int i = 0; i < inputCount; i++)
            {
                var    robotInfo = SetupRobot(input[i].Trim());
                string routeInfo = string.Empty;
                //Robot için rota verilmediyse rota boş string olur
                routeInfo = i < inputCount - 1 ? SetupRobotRoute(input[++i].Trim().ToUpper()) : "";

                robotContacts.Add(new RobotContact
                {
                    robotInfo = robotInfo,
                    route     = routeInfo
                });
            }
        }
 public RobotBehaviour(IRobotInfo robotInfo, IPlateauInfo plateauInfo)
 {
     _robotInfo   = robotInfo;
     _plateauInfo = plateauInfo;
 }