鼠标点击1到9获得数字,在数独九宫格中点击放入,用c++编程
时间: 2024-02-23 21:57:47 浏览: 25
好的,下面是一个简单的C++代码实现:
```c++
#include <iostream>
using namespace std;
int main()
{
int sudoku[9][9] = {0}; // 初始化数独九宫格为0
int row, col, num;
while (true)
{
// 输出数独九宫格
cout << "-------------------------" << endl;
for (int i = 0; i < 9; i++)
{
for (int j = 0; j < 9; j++)
{
cout << sudoku[i][j] << " ";
if ((j + 1) % 3 == 0)
cout << "| ";
}
cout << endl;
if ((i + 1) % 3 == 0)
cout << "-------------------------" << endl;
}
// 输入数字
cout << "Please input the row(1-9): ";
cin >> row;
cout << "Please input the column(1-9): ";
cin >> col;
cout << "Please input the number(1-9): ";
cin >> num;
// 判断输入是否合法
if (row < 1 || row > 9 || col < 1 || col > 9 || num < 1 || num > 9)
cout << "Invalid input, please input again." << endl;
else if (sudoku[row - 1][col - 1] != 0)
cout << "This position already has a number, please choose another position." << endl;
else
{
// 判断数字是否符合数独规则
bool flag = true;
for (int i = 0; i < 9; i++)
{
if (sudoku[row - 1][i] == num || sudoku[i][col - 1] == num)
{
flag = false;
break;
}
}
if (flag)
{
int sub_row = (row - 1) / 3 * 3;
int sub_col = (col - 1) / 3 * 3;
for (int i = sub_row; i < sub_row + 3; i++)
{
for (int j = sub_col; j < sub_col + 3; j++)
{
if (sudoku[i][j] == num)
{
flag = false;
break;
}
}
if (!flag)
break;
}
}
// 如果数字符合数独规则,则放入数独九宫格中
if (flag)
{
sudoku[row - 1][col - 1] = num;
cout << "Success!" << endl;
}
else
cout << "This number cannot be placed here, please choose another number." << endl;
}
}
return 0;
}
```
这个程序实现了一个简单的数独游戏,用户可以通过键盘输入数字,然后放入数独九宫格中。程序会自动判断输入是否合法,并判断输入的数字是否符合数独规则。