diff --git a/.vscode/launch.json b/.vscode/launch.json index 755b923..d89ba50 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -17,7 +17,8 @@ "args": [], "cwd": "${workspaceFolder}", // For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console - "console": "internalConsole", + "console": "integratedTerminal", + "internalConsoleOptions": "neverOpen", "stopAtEntry": false }, { diff --git a/Program.cs b/Program.cs index 958dd46..f6dfe88 100644 --- a/Program.cs +++ b/Program.cs @@ -1,5 +1,106 @@ -// See https://aka.ms/new-console-template for more information -Console.WriteLine("Hello, World!"); -Console.WriteLine("this is slow"); +using IdaStar; +string[] labyrinthIN = System.IO.File.ReadAllLines(@"C:\UNI\AI\IDAstar\labyrinth.txt"); + +System.Console.WriteLine("The input labyrinth: "); +foreach (string line in labyrinthIN) +{ + FormattedLabRow(line); +} + +var algoBoard = new IdaStar.WorkingBoard(labyrinthIN.Select((row) => row.ToList()).ToList()); +int step = 0; +bool done = false; +ConsoleColor border = ConsoleColor.Magenta; +algoBoard.AlgorithmStep += (_) => { + Console.Clear(); + step++; + if(done){ + System.Console.WriteLine("The solved labyrinth is:"); + }else if(step/2 == 0) { + System.Console.WriteLine("Computing [· ]"); + }else { + System.Console.WriteLine("Computing [ ·]"); + } + + //top border + Console.BackgroundColor = border; + for (var i=0; i CellStateUtil.ToInput(state)); + var str = string.Join("", charlist); + + //left border + Console.BackgroundColor = border; + Console.Write(" "); + Console.ResetColor(); + + //labyrinth line + FormattedLabRow(str); + + //right border + Console.BackgroundColor = border; + Console.Write(" "); + Console.ResetColor(); + + Console.WriteLine(); + } + + //bottom border + Console.BackgroundColor = border; + for (var i=0; i"); + break; + } + + case 'F': { + Console.BackgroundColor = ConsoleColor.Red; + Console.Write("[ ]"); + break; + } + + case 'p': { + Console.BackgroundColor = ConsoleColor.Blue; + Console.Write(" · "); + break; + } + + default: break; + } + } + Console.ResetColor(); +} \ No newline at end of file diff --git a/labyrinth.txt b/labyrinth.txt new file mode 100644 index 0000000..46414a8 --- /dev/null +++ b/labyrinth.txt @@ -0,0 +1,7 @@ +########## +#S # # F +### # ## # +# # # +## # # +# # ### # +########## \ No newline at end of file diff --git a/labyrinthOUT.txt b/labyrinthOUT.txt new file mode 100644 index 0000000..a56df2b --- /dev/null +++ b/labyrinthOUT.txt @@ -0,0 +1,5 @@ +###S# +# p# +##pp# +#pp## +#F### \ No newline at end of file