У меня проблемы с этим домашним заданием.В задании нам нужно рассчитать кратчайший путь от A до B, используя BFS.Однако сначала я хочу объявить двумерное поле с логическими значениями, в котором «истина» является проходной плиткой, а «ложь» - непроходимой.Только символы:. + ?!допустимы, все остальные - нет.
В первой строке я объявляю длину и ширину плоскости, представленной целыми числами h и b (игнорируем m).Длина поля выполнена правильно, ширина - нет.Ширина должна быть количеством символов, равным b.Это то, что я имею до сих пор.
static void Main()
{
int b, h;
string m;
string firstLine = Console.ReadLine();
string[] declaration = firstLine.Split(' ');
int.TryParse(declaration[0], out b);
int.TryParse(declaration[1], out h);
m = declaration[2];
var input = new bool[h,b];
for (int i = 0; i < h ; i++)
{
string s = Console.ReadLine();
for (int j = 0; j < b ; j++)
{
foreach( char c in s)
{
if (c.Equals('.') || c.Equals('!') || c.Equals('+') || c.Equals('?'))
{
input[i, j] = true;
}
else
{
input[i, j] = false;
}
}
}
}
Console.WriteLine(input);
Console.ReadLine();
}
}
Пример ввода с желаемым выходом:
вход:
6 6 L (игнорировать L)
MMMMMM
M...? M
M .... M
M + ... M
M ...! M
MMMMMM
желаемый вывод:
false false false false falsefalse false
false true true true true false false
false true true true true true false
false true true true true true false
false true true true true true false
false false false false false false false false 1022 *
На данный момент я все еще могу набирать столько символов в строке, сколько я хочу, а не желаемый максимум b.
Также консоль теперь пишет System.Boolean [,]
Что я делаю не так?