メソッドのループがまだ機能している間に、値を動的に割り当ててフォーム上で更新するにはどうすればよいですか? 私のプログラムで何が起こるかというと、起動すると終了するまでハングし (数独の解決策が見つかる)、テキストボックスにデータが入力されます。主な方法は次のとおりです。
bool SolveSudoku()
{
if (!FindUnassignedLocation()) return true;
for (int num = 1; num <= 9; num++)
{
if (NoConflicts(emptyRow, emptyCol, num))
{
Grid[emptyRow, emptyCol].Text = num.ToString();
Grid[emptyRow, emptyCol].BackColor = Color.White;
Grid[emptyRow, emptyCol].ForeColor = Color.Black;
if (SolveSudoku()) return true;
Grid[emptyRow, emptyCol].Text = "";
}
}
bool checkIfFirstBackTrack = true;
do {
if (checkIfFirstBackTrack)
{
backtrackCounter++;
checkIfFirstBackTrack = false;
}
if (emptyCol == 0 && emptyRow > 0)
{
emptyCol = 8;
emptyRow--;
}
else if (emptyCol > 0)
{
emptyCol--;
}
}
while(Preset[emptyRow, emptyCol] != "");
return false;
}
}