/// <summary> /// Convert array to object /// </summary> /// <param name="maze">maze array</param> /// <returns>object list</returns> public static List <ConsoleBlock> ConvertMazeArrayToObject(int[,] maze, ref ConsolePlayer player, ref ConsoleExitDoor exitDoor) { List <ConsoleBlock> units = new List <ConsoleBlock>(); for (int i = 0; i < maze.GetLength(0); i++) { for (int j = 0; j < maze.GetLength(1); j++) { Position position = new Position(i, j); switch (maze[i, j]) { case -1: exitDoor = new ConsoleExitDoor(position); break; case 1: units.Add(new ConsoleBlock(position)); break; case 2: player = new ConsolePlayer(position); break; } } } return(units); }
//TODO: Remove duplicate code private void Drow(ConsoleExitDoor exitDoor) { Console.ForegroundColor = exitDoor.Color; Console.SetCursorPosition(exitDoor.Position.CoordinateX, exitDoor.Position.CoordinateY); Console.WriteLine("X"); Console.ForegroundColor = defaultColor; }
public void CreateBoard() { var mazeArray = _mazeController.GenerateMazeArray(); ConsolePlayer player = new ConsolePlayer(new Position { }); ConsoleExitDoor exitDoor = new ConsoleExitDoor(new Position { }); List <ConsoleBlock> blocks = Helper.ConvertMazeArrayToObject(mazeArray, ref player, ref exitDoor); //Insert blocks into board _consoleBoard.Insert(blocks); _consoleBoard.Insert(player); _consoleBoard.Insert(exitDoor); _consoleController.DrowBoard(_consoleBoard); var a = _computerController.PlayMazeLogic(_consoleBoard); }