Browse Source

Merge branch 'darius'

pull/1/head
DariusTFox24 3 years ago
parent
commit
88626505a7
  1. 3
      .vscode/launch.json
  2. 107
      Program.cs
  3. 7
      labyrinth.txt
  4. 5
      labyrinthOUT.txt

3
.vscode/launch.json vendored

@ -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
},
{

107
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<algoBoard.Board[0].Count()+2; i++){
Console.Write(" ");
}
Console.ResetColor();
Console.WriteLine();
foreach (var line in algoBoard.Board)
{
var charlist = line.Select((state) => 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<algoBoard.Board[0].Count()+2; i++){
Console.Write(" ");
}
Console.ResetColor();
Console.WriteLine();
};
algoBoard.RunIdaStar();
void FormattedLabRow(string line) {
char[] characters = line.ToCharArray();
foreach (char c in characters) {
switch ( c ) {
case '#': {
Console.BackgroundColor = ConsoleColor.White;
Console.Write(" ");
break;
}
case ' ': {
Console.BackgroundColor = ConsoleColor.Black;
Console.Write(" ");
break;
}
case 'S': {
Console.BackgroundColor = ConsoleColor.Green;
Console.Write("<·>");
break;
}
case 'F': {
Console.BackgroundColor = ConsoleColor.Red;
Console.Write("[ ]");
break;
}
case 'p': {
Console.BackgroundColor = ConsoleColor.Blue;
Console.Write(" · ");
break;
}
default: break;
}
}
Console.ResetColor();
}

7
labyrinth.txt

@ -0,0 +1,7 @@
##########
#S # # F
### # ## #
# # #
## # #
# # ### #
##########

5
labyrinthOUT.txt

@ -0,0 +1,5 @@
###S#
# p#
##pp#
#pp##
#F###
Loading…
Cancel
Save