Arkadaşlar selamlar. Bir Sudoku ödevim var. Onu yapmaya çalışıyorum. Ancak bir loop sorunum var. 1'den 9'a kadar atadığı rakamların olduğu metod aşağıda mevcut. Kodun sonunda göreceğiniz MessagBox.Show satırını programı durdurmak için ekledim. Bu kod ile kontroller yapıldıktan sonra rakamlar yerine yerleşiyor ve mesaj kutusu görünüyor. Buraya kadar sorun yok. OK'e basınca tekrar kontrol edip yeni rakamları koyuyuor ve sonsuz bir döngüye giriyor. Buradaki sürekliliği nasıl engelleyebilirim??
static int[,] BSudoku(int value, int px, int py, int[,] field)
{
int[,] sudokuCells = new int[9, 9];
for (int i = 0; i < 9; i++)
{
for (int j = 0; j < 9; j++)
{
sudokuCells[j, i] = field[j, i];
}
}
sudokuCells[px, py] = value;
for (int x = 0; x < 9; x++)
{
for (int y = 0; y < 9; y++)
{
if (sudokuCells[x, y] == 0)
{
for (int val = 1; val <= 9; val++)
{
if (chkAll(y, x, val, sudokuCells))
{
BSudoku(val, x, y, sudokuCells);
}
}
return null;
}
}
}
for (int i = 0; i < 9; i++)
{
for (int j = 0; j < 9; j++)
{
graphicSudokuBoard[j, i].Text = sudokuCells[j, i].ToString();
}
}
MessageBox.Show("fefefe");
return sudokuCells;
}
static int[,] BSudoku(int value, int px, int py, int[,] field)
{
int[,] sudokuCells = new int[9, 9];
for (int i = 0; i < 9; i++)
{
for (int j = 0; j < 9; j++)
{
sudokuCells[j, i] = field[j, i];
}
}
sudokuCells[px, py] = value;
for (int x = 0; x < 9; x++)
{
for (int y = 0; y < 9; y++)
{
if (sudokuCells[x, y] == 0)
{
for (int val = 1; val <= 9; val++)
{
if (chkAll(y, x, val, sudokuCells))
{
BSudoku(val, x, y, sudokuCells);
}
}
return null;
}
}
}
for (int i = 0; i < 9; i++)
{
for (int j = 0; j < 9; j++)
{
graphicSudokuBoard[j, i].Text = sudokuCells[j, i].ToString();
}
}
MessageBox.Show("fefefe");
return sudokuCells;
}