こんにちは私はちょうどグリッドのコードを完成させました。指示により、右、左、上または下に移動し、移動する特定の値を入力することができます。しかし、現在問題となっているのは、真となる唯一の場所はどの値が入力されたかです。私は全体の量が真実になるように努めています。たとえば、私たちは右に3を移動する、それは3つのスポット=本当に最後の代わりに真でなければなりません。誰もそれで私を助けることができますか?ブール2D配列C#いくつかの値を真にする
// Make a bool 2d array and save already drilled values into the array
bool[,] drill = new bool[401, 200];
drill[200, 1] = true;
drill[200, 2] = true;
drill[200, 3] = true;
drill[201, 3] = true;
drill[202, 3] = true;
drill[203, 3] = true;
drill[203, 4] = true;
drill[203, 5] = true;
drill[204, 5] = true;
drill[205, 5] = true;
drill[205, 4] = true;
drill[205, 3] = true;
drill[206, 3] = true;
drill[207, 3] = true;
drill[207, 4] = true;
drill[207, 5] = true;
drill[207, 6] = true;
drill[207, 7] = true;
drill[206, 7] = true;
drill[205, 7] = true;
drill[204, 7] = true;
drill[203, 7] = true;
drill[202, 7] = true;
drill[201, 7] = true;
drill[200, 7] = true;
drill[199, 7] = true;
drill[199, 6] = true;
drill[199, 5] = true;
// Set some values
bool okay = true;
int column = -1;
int row = -5;
int check_column = 199;
int check_row = 5;
// Run a while loop
do
{
// Ask the user to input a direction
Console.WriteLine("Which direction would you like to go?");
string direction = Console.ReadLine();
// Ask the user to input a movement
Console.WriteLine("What value would you like to move by?");
string distance = Console.ReadLine();
int new_distance = Convert.ToInt32(distance);
// Use if statements
if (direction == "l" || direction == "L")
{
column = column - new_distance;
check_column = check_column - new_distance;
}
else if (direction == "u" || direction == "U")
{
row = row + new_distance;
check_row = check_row - new_distance;
}
else if (direction == "r" || direction == "R")
{
column = column + new_distance;
check_column = check_column + new_distance;
}
else if (direction == "d" || direction == "D")
{
row = row - new_distance;
check_row = check_row + new_distance;
}
else if (direction == "q" || direction == "Q" || new_distance == 0)
{
Console.WriteLine("Program will now end.");
okay = false;
break;
}
while (new_distance > 0)
{
if (drill[check_column, check_row] == true && check_row >= 0 && check_row <=200 && check_column >=0 && check_column <=400 && drill[check_column, check_row] != true)
{
Console.WriteLine("{0},{1} safe", column, row);
break;
}
else
{
Console.WriteLine("{0},{1} danger", column, row);
Console.WriteLine("Program will now end.");
okay = false;
break;
}
}
} while (okay);
if (okay == false)
{
Console.WriteLine("Thanks for using the program!");
}
Console.ReadLine();
あなただけのDOから破壊されているので、物事のカップルは、1) '場合は(大丈夫== false)を'常に真であるため、必要ありませんし、一方あなたのwhileループで、 'drill [check_column、check_row] == true && .. && drill [check_column、check_row]!= true'をチェックして競合しています3)あなたは決して減少していません ' new_distance'あなたのwhileループで4)あなたは3つのスポット=真を意味するものを明確にすることができますか?私はあなたの初期設定を除いてどこに何かを真に設定しているのを見ていません –
たとえば、 "r"と "2"を入力するとグリッド上の2つのスポットが真実になりますが、 EXACT値を2に設定してオリジナルをtrueに設定します – SaltyLegend