DariusTFox24
3 years ago
4 changed files with 118 additions and 4 deletions
@ -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(); |
||||
} |
@ -0,0 +1,7 @@
|
||||
########## |
||||
#S # # F |
||||
### # ## # |
||||
# # # |
||||
## # # |
||||
# # ### # |
||||
########## |
Loading…
Reference in new issue