Пример #1
0
 public StateTransitionBuilder(TEntity statedEntity, List <TransitionDefinition <TEntity, TState, TStateEnum> > transitions,
                               IStateEngine <TEntity, TState, TStateEnum> stateEngine)
 {
     if (transitions == null)
     {
         throw new ArgumentNullException(nameof(transitions));
     }
     if (!transitions.Any())
     {
         throw new ArgumentException(@"List may not be empty", nameof(transitions));
     }
     StateEngine  = stateEngine;
     StatedEntity = statedEntity ?? throw new ArgumentNullException(nameof(statedEntity));
     Transitions  = transitions.ToList();
 }
Пример #2
0
        static void Main(string[] args)
        {
            if (null == args || 1 != args.Length)
            {
                Console.Out.WriteLine("Life expects one parameter, a path to a file containing a regular grid of");
                Console.Out.WriteLine("ones and zeros.  Life is finicky like that.");
                Console.Out.WriteLine();
                Console.Out.WriteLine("Life was brought to you by with the musical assistance of Front 242.");
                return;
            }

            var container = new Container(_ => _.For <IFactory>().Use <Factory>().Singleton());

            IState s;

            try
            {
                using (FileLoader fl = new FileLoader(args[0]))
                {
                    IStateReader sr = container.GetInstance <IFactory>().CreateReader(fl.Open());
                    s = sr.Read();
                }
            }
            catch (FileAccessException fae)
            {
                Console.Out.WriteLine("Life could not access the file located at:");
                Console.Out.WriteLine(args[0]);
                return;
            }

            IStateWriter sw = container.GetInstance <IFactory>().CreateWriter(Console.Out);
            IStateEngine se = container.GetInstance <IFactory>().CreateEngine();

            sw.Write(s);
            Console.Out.WriteLine();

            se.Iterate(s);

            sw.Write(s);
            Console.Out.WriteLine();
        }
Пример #3
0
 static Factory()
 {
     StateEngine = new StateEngine();
 }
Пример #4
0
 public void SetUp()
 {
     _factory = _container.GetInstance <IFactory>();
     _engine  = _factory.CreateEngine();
 }
Пример #5
0
 public NaturalStateEngine(IAgent agent, IStateEngine <TypeState, TypeState> stateEngine)
 {
     _agent       = agent;
     _stateEngine = stateEngine;
 }