数字数独游戏完整源代码程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
settextstyle(20, 0, _T("楷体"));
outtextxy(120, 99, _T("求解中......"));
if (SecondCheck() == true) // 第二次检查,防止不必要的死循环
{
trace(0, 0); // 溯回法判断
bool Point[3][3];
int main()
{
initgraph(WIDTH, HEIGHT);
drawframe(); // 绘制表格框架
while (true)
{
while (true)
{
int m_x, m_y, number;
void Output(); // 输出答案
int MouseNumber = 0;
int sum = 0; // 数独多解的记录
int trace(int x, int y); // 算法的核心回溯法
int check(int x, int y); // 每次判断
outtextxy(120, 99, _T("该数独无解!"));
continue;
}
if (sum == 1)
{
setbkmode(OPAQUE);
settextcolor(0xf4b1a4);
settextstyle(20, 0, _T("楷体"));
break;
}
save(number, m_x, m_y);
if (FirstCheck() == false)
{
settextstyle(20, 0, _T("楷体"));
settextcolor(0xf4b1a4);
outtextxy(120, 99, _T("输入有误,请检查!"));
outtextxy(120, 99, _T(" "));
outtextxy(120, 99, _T("该数独只有一个解"));
sum = 0;
continue;
}
if (sum > 1)
{
setbkmode(OPAQUE);
} ifΒιβλιοθήκη (FirstCheck() == true)
{
settextstyle(20, 0, _T("楷体"));
outtextxy(120, 99, _T(" "));
}
}
settextcolor(0xf4b1a4);
bool newmatrix[9][9];
void Tofalse(); // 将数组全部置为 false
int CheckNumber(int n); // 判断里面有没有这个数
int Totrue(int n);
bool SecondCheck(); // 第二次判断
number = MouseMessage(&m_x, &m_y); // 鼠标消息
if (number == 10)
{
MouseNumber = 0;
if (FirstCheck() == false)
continue;
else
#include <graphics.h>
#define WIDTH 480
#define HEIGHT 640
const wchar_t wPROGRAMINFO[] = _T("程序名称:数独辅助器 \n\n操作说明:\n1.鼠标左击下方不同的数字进行选取 \n2.再左击九宫格相应位置进行填入 \n3.选择后可重复填入 \n4.点击求解键后开始处理数独 \n4.点击清空将清除掉九宫格内的数\n");
int matrix[9][9] = { 0 }; // 定义一个二维数组储存数独
void drawframe(); // 绘制九宫格及修饰的相关图形
void grain(); // 纹路
void Prompt(); // 绘制提示符
void Solution(); // 求解按钮
void ClearButton(); // 清空按钮
void OUTTEXT(int i, int x, int y); // 绘制输出数字
int MouseMessage(int* m_x, int* m_y); // 处理鼠标消息,返回数与鼠标的坐标
}
else sum = 0;
if (sum == 0)
{
setbkmode(OPAQUE);
settextcolor(0xf4b1a4);
settextstyle(20, 0, _T("楷体"));
outtextxy(120, 99, _T(" "));
settextcolor(0xf4b1a4);
settextstyle(20, 0, _T("楷体"));
outtextxy(120, 99, _T(" "));
outtextxy(120, 99, _T("该数独有多个解"));
sum = 0;
void retrace(int number, COLORREF color); // 重新复原边框颜色等
void save(int n, int x, int y); // 储存和输出
void ClearScreen(); // 清空九宫格
bool FirstCheck(); // 初次判断检查
相关文档
最新文档