上图:
二、
三、解答数独
部分代码:
private void Make_sudoku()//创建数独
{
//SudokuBuf = new int[SudokuSize,SudokuSize];
SudokuBuf = pu;
for (int i = 0; i < SudokuSize; i++)
{
for (int j = 0; j < SudokuSize; j++)
{
//SudokuBuf[i, j] = Convert.ToInt16(dataGridView1.Rows[i].Cells[j].Value);
if (SudokuBuf[i, j] != 0)
{
dataGridView1.Rows[i].Cells[j].Value = SudokuBuf[i, j];
dataGridView1.Rows[i].Cells[j].Style.BackColor = Color.LightPink;
}
else
{
dataGridView1.Rows[i].Cells[j].Value = "";
dataGridView1.Rows[i].Cells[j].Style.BackColor = Color.LightBlue;
}
}
}
}
//循环产生数据1 -> n
for (int i = 1; i <= SudokuSize; i++)
{
//此数据是否已经尝试过
for (int j = 0; j < SudokuSize; j++)
{
if (i == WrongNumBuf[j])//尝试过,是错误数据
{
goto bb;
}
}
//判断行检测和列检测都能通过
if (Check_row(SourceBuf, RowNum, i) && Check_column(SourceBuf, ColumnNum, i))
{
if (Check_group(SourceBuf, RowNum, ColumnNum, i))
{
return i;
}
}
bb:
;
}
//没有数据能够产生
return -1;
个人微信公众号已经上线,欢迎大家扫描关注: