private static void Main(string[] args) { ConsoleFactory factory = new ConsoleFactory(); //Model contruction XmasModel model = factory.ConstructModel(new TestWorld1()); //View construction ThreadSafeEventManager evtman1 = new ThreadSafeEventManager(); ConsoleView view1 = new ConsoleView(model,new Point(0,0), new ConsoleWorldView((TileWorld)model.World,xe => xe is GrabberAgent), new ConsoleViewFactory(evtman1), evtman1); ThreadSafeEventManager evtman2 = new ThreadSafeEventManager(); ConsoleView view2 = new ConsoleView(model, new Point(0,24), new ConsoleWorldView((TileWorld)model.World), new ConsoleViewFactory(evtman2), evtman2); StreamWriter sw = File.CreateText("error.log"); List<XmasView> views = new List<XmasView>(); var loggerevtman = new ThreadSafeEventManager(); var logger = new Logger(sw, DebugLevel.Timing); views.Add(new ConsoleLoggerView(model,new LoggerViewFactory(loggerevtman,logger),loggerevtman,logger)); views.Add(view1); views.Add(view2); //Controller construction var listener = new TcpListener(IPAddress.Parse("127.0.0.1"), 44444); var eisConverter = new ConsoleEisConversionTool(); var iilParser = new ConsoleIilActionParser(); var eisserver = new EISAgentServer(listener, eisConverter, iilParser); var humancontroller = new HumanInterfaceManager(new KeyboardSettings()); List<XmasController> controllers = new List<XmasController>(); controllers.Add(eisserver); controllers.Add(humancontroller); var engine = new XmasEngineManager(factory); engine.StartEngine(model,views,controllers); }
static void Main(string[] args) { //The factory responsible for constructing components needed by the engine XmasModelFactory factory = new XmasModelFactory(); VacuumMap1 map1 = new VacuumMap1(); //Construct the model with all its required components XmasModel model = factory.ConstructModel(map1); //makes a file where all view info is logged StreamWriter sw = File.CreateText("viewlog.log"); //Construct the view for the vacuum world VacuumWorldView view = new VacuumWorldView(model, new Logger(sw, DebugLevel.All)); //Construct the manager for the agent controller with the name of the agent VacuumAgentManager controller = new VacuumAgentManager("vacuum_cleaner"); //Instantiate and start the engine with the view and the controller XmasEngineManager engine = new XmasEngineManager(factory); engine.StartEngine(model, new XmasView[] { view }, new XmasController[] { controller }); }