mirror of
https://github.com/dancojocaru2000/ai-project-idastar.git
synced 2025-02-23 00:49:34 +02:00
Added option to skip showing all the steps
fixed bugs and such
This commit is contained in:
parent
65108902e6
commit
4818450ced
2 changed files with 74 additions and 51 deletions
116
Program.cs
116
Program.cs
|
@ -1,9 +1,10 @@
|
|||
using IdaStar;
|
||||
|
||||
string[] labyrinthIN = System.IO.File.ReadAllLines(@"./labyrinth.txt");
|
||||
string[] labyrinthIN = File.ReadAllLines(@"./labyrinth.txt");
|
||||
|
||||
Console.OutputEncoding = System.Text.Encoding.UTF8;
|
||||
|
||||
System.Console.WriteLine("The input labyrinth: ");
|
||||
Console.WriteLine("The input labyrinth: ");
|
||||
foreach (string line in labyrinthIN)
|
||||
{
|
||||
FormattedLabRow(line);
|
||||
|
@ -12,17 +13,74 @@ foreach (string line in labyrinthIN)
|
|||
|
||||
var algoBoard = new IdaStar.WorkingBoard(labyrinthIN.Select((row) => row.ToList()).ToList());
|
||||
int step = 0;
|
||||
bool done = false;
|
||||
ConsoleColor border = ConsoleColor.Magenta;
|
||||
algoBoard.AlgorithmStep += (_, threshold) => {
|
||||
bool printSteps = false;
|
||||
|
||||
Console.WriteLine();
|
||||
Console.WriteLine("Show each step? (Y/N) ");
|
||||
if(Console.ReadLine()?.Trim() == "Y") {
|
||||
printSteps = true;
|
||||
}
|
||||
|
||||
if(printSteps) {
|
||||
algoBoard.AlgorithmStep += (_, threshold) => {
|
||||
PrintBoard(threshold, false);
|
||||
};
|
||||
}
|
||||
|
||||
algoBoard.RunIdaStar();
|
||||
PrintBoard(0, true);
|
||||
|
||||
static 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();
|
||||
}
|
||||
|
||||
|
||||
void PrintBoard(int threshold, bool done){
|
||||
Console.Clear();
|
||||
step++;
|
||||
if(done){
|
||||
System.Console.WriteLine("The solved labyrinth is:");
|
||||
Console.WriteLine("The solved labyrinth is:");
|
||||
}else if(step%2 == 0) {
|
||||
System.Console.WriteLine($"Computing (threshold: {threshold}) [• ]");
|
||||
Console.WriteLine($"Computing (threshold: {threshold}) [• ]");
|
||||
}else {
|
||||
System.Console.WriteLine($"Computing (threshold: {threshold}) [ •]");
|
||||
Console.WriteLine($"Computing (threshold: {threshold}) [ •]");
|
||||
}
|
||||
|
||||
//top border
|
||||
|
@ -63,46 +121,4 @@ algoBoard.AlgorithmStep += (_, threshold) => {
|
|||
Console.WriteLine();
|
||||
Thread.Sleep(200);
|
||||
// Console.ReadLine();
|
||||
};
|
||||
|
||||
algoBoard.RunIdaStar();
|
||||
|
||||
static 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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,14 @@
|
|||
##########
|
||||
#S # # F
|
||||
#S # # #
|
||||
### # ## #
|
||||
# # #
|
||||
## # #
|
||||
# # ### #
|
||||
#### ####
|
||||
##### ####
|
||||
# # F
|
||||
### #### #
|
||||
# # #
|
||||
## # #
|
||||
# # ### #
|
||||
##########
|
Loading…
Add table
Reference in a new issue