public void SetupInterpreter() { interpreter = new ConsoleInterpreter(); #region Quit interpreter.RegisterCommand(new ConsoleCommand(){ CommandText = "quit", CommandDescription = "Quits the app", ParserMethod = x => { done = true; } }); #endregion #region Help interpreter.RegisterCommand(new ConsoleCommand(){ CommandText = "help", CommandDescription = "Prints the help", ParserMethod = _ => { var commandList = interpreter.RegisteredCommands; foreach (var command in commandList) { Console.WriteLine ("{0}... {1}", command.CommandText, command.CommandDescription); } } }); #endregion interpreter.RegisterCommand(new ConsoleCommand(){ CommandText = "echo", CommandDescription = "prints the params", ParserMethod = x => { Console.WriteLine("'{0]'", x); } }); #region Echo #endregion #region random map interpreter.RegisterCommand(new ConsoleCommand(){ CommandText = "map", CommandDescription = "shows a randomly generated map", ParserMethod = (string param) => { IList<string> paramList = new List<string>(param.Split(" ".ToCharArray())); int sizeX = 10; int sizeY = 10; if(paramList.Count >= 1) { int.TryParse(paramList[0], out sizeX); } if(paramList.Count >= 2) { int.TryParse(paramList[1], out sizeY); } IMapGenerator generator = new RandomMapGenerator(); Console.WriteLine("Generating map with x = {0}, y = {1}", sizeX, sizeY); Map map = generator.GenerateMap(sizeX, sizeY); IMapRenderer renderer = new MapRenderer(); renderer.Render(map); } }); #endregion }
public void SetupInterpreter() { interpreter = new ConsoleInterpreter(); #region Quit interpreter.RegisterCommand(new ConsoleCommand(){ CommandText = "quit", CommandDescription = "Quits the app", ParserMethod = x => { done = true; } }); #endregion #region Help interpreter.RegisterCommand(new ConsoleCommand(){ CommandText = "help", CommandDescription = "Prints the help", ParserMethod = _ => { var commandList = interpreter.RegisteredCommands; foreach (var command in commandList) { Console.WriteLine ("{0}... {1}", command.CommandText, command.CommandDescription); } } }); #endregion #region Echo interpreter.RegisterCommand(new ConsoleCommand(){ CommandText = "echo", CommandDescription = "prints the params", ParserMethod = x => { Console.WriteLine("'{0}'", x); } }); #endregion #region random map interpreter.RegisterCommand(new ConsoleCommand(){ CommandText = "map", CommandDescription = "shows a randomly generated map", ParserMethod = (string param) => { // 1. Parse IList<string> paramList = new List<string>(param.Split(" ".ToCharArray())); int sizeX = 10; int sizeY = 10; if(paramList.Count >= 1 && paramList[0] != "") { int.TryParse(paramList[0], out sizeX); } if(paramList.Count >= 2) { int.TryParse(paramList[1], out sizeY); } // 2. Render IMapManipulator manipulator1 = new WaterEdgeMapManipulator(); IMapManipulator manipulator2 = new HeightMapMapManipulator(); ColoredMapRenderer renderer = new ColoredMapRenderer(); Map map = new Map(sizeX, sizeY); Console.WriteLine("Generating map with x = {0}, y = {1}", sizeX, sizeY); manipulator1.Manipulate(map); manipulator2.Manipulate(map); renderer.Render(map); renderer.WithNumbers = true; renderer.Render(map); //System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer(); //string json = serializer.Serialize(map); //Console.WriteLine(json); } }); #endregion #region Battle interpreter.RegisterCommand(new ConsoleCommand(){ CommandText = "fight", CommandDescription = "simulates a battle", ParserMethod = (string param) => { // 1. Parse IList<string> paramList = new List<string>(param.Split(" ".ToCharArray())); int party1 = 10; int party2 = 10; if(paramList.Count >= 1 && paramList[0] != "") { int.TryParse(paramList[0], out party1); } if(paramList.Count >= 2) { int.TryParse(paramList[1], out party2); } BattleService battleService = new BattleService(); Console.WriteLine(battleService.SimulateBattle(party1, party2)); } }); #endregion }