本程序是基于 API 技术,用 VC++ 6.0 MFC 开发工具编写的,实现了数独小游戏。
以下为全部源
程序代码。
//written by luweikang// shudu.cpp : Defines the entry point for the application. //finished 2010-06-20 #include
#include "stdafx.h" #include #include
#define tPaint 2 //重绘定时器的标识(编号) #define tPaintTime 50 //窗口重绘的时间间隔 #define ROW 9 //方格的行数与列数 #define COL 9 //方格的行数与列数 #define LEN 40 //每个方格大小为 40×40 像素 #define StartY 3 // #define StartX 3 //绘制方格地图时的边界起始位置 int CurrentX=0; int CurrentY=0; //当前操作位置 void InitMap_show( ); //初始化地图
int void int void int void int int void void void bool bool int
value[ROW][COL]; Initvalue( ); judge(); random(); change[9][9]; Initchange(); IsSuccess(); answer[9][9][9]; Initanswer(); bauto(int n); showhelp(); help=0; f; tmp=20;
//记录每个方格中的数字 //初始化方格中的数字为 0 //判断当前位置是否能输入用户想要输入的数字 //实现随机生成整张地图上的数字 //用于记录各个位置的数字是否可改变,0 不可变,1 可变 //初始化 change 数组中的值 //判断是否完成 //用于保存每个方格可以填入的数字 //初始化 answer[81][9][9]全部为 0 //自动求解 //求辅助数据 //是否显示辅助数据 //成功标志 //记录当前地图是哪副
int easy[21][9][9]={ //用于存储初级地图 { {0,0,0,0,3,0,2,0,8}, {0,2,8,0,4,0,1,3,0}, {0,0,9,5,8,0,0,4,7}, {0,3,1,0,2,0,5,9,0}, {0,0,5,3,9,1,7,0,0}, {0,9,0,4,7,5,8,1,3}, {0,0,0,0,6,0,4,0,2}, {0,0,0,0,0,3,0,6,0}, {0,7,6,2,5,4,0,8,0} }, { {0,0,0,0,0,4,0,5,2}, {0,0,5,0,0,7,0,1,4}, {0,0,1,0,0,8,3,0,6}, {0,1,2,0,0,6,4,3,9}, {0,0,9,0,4,1,6,8,5}, {0,0,6,0,3,5,2,7,1}, {0,6,7,0,1,0,0,0,0}, {1,5,0,0,0,3,0,2,8}, {0,2,0,0,5,9,0,6,0} }, { {0,7,8,4,0,0,0,3,6}, {4,1,9,0,0,8,2,0,0}, {0,0,6,0,7,0,0,0,9}, {0,9,5,0,6,4,0,7,1}, {1,0,7,5,0,0,0,0,0},
{0,3,4,0,1,7,5,6,8}, {0,8,1,0,0,9,6,2,4}, {0,0,2,0,0,0,0,0,3}, {0,4,0,0,2,0,0,8,5} }, { {0,9,0,0,0,8,0,2,0}, {0,8,0,0,9,7,0,4,0}, {0,7,0,5,2,0,9,6,8}, {0,0,7,0,4,0,0,5,3}, {0,2,9,0,3,5,0,0,0}, {0,3,5,2,7,1,6,8,0}, {0,0,1,0,8,0,5,0,0}, {0,0,0,7,0,0,0,9,4}, {0,4,8,0,5,2,1,3,6} }, { {0,0,5,0,0,0,1,6,7}, {0,0,7,0,4,0,0,9,0}, {3,0,0,0,0,1,0,0,0}, {0,5,1,0,3,0,0,0,0}, {0,2,3,0,1,8,5,0,0}, {0,8,0,7,9,5,3,0,2}, {1,3,6,0,5,0,2,8,0}, {0,7,0,1,8,3,0,5,6}, {5,9,8,0,6,0,7,0,1} }, { {0,1,8,0,0,0,6,2,0}, {0,7,9,0,0,0,5,8,0}, {0,0,6,0,0,5,0,1,0}, {0,5,2,0,3,7,9,0,8}, {0,0,1,5,2,8,4,7,3}, {0,3,7,0,9,6,0,0,1}, {0,0,0,0,7,4,8,3,2}, {0,0,0,0,1,0,0,4,5}, {0,8,0,0,5,0,0,9,6} }, { //特殊 {0,0,1,0,0,0,0,0,7}, {0,7,8,5,6,0,3,9,2}, {0,0,9,0,4,0,1,6,0}, {0,2,3,0,0,5,9,0,6}, {0,9,7,3,0,2,0,0,0},
{0,0,0,9,0,6,7,2,3}, {0,4,0,1,2,9,0,7,0}, {7,1,0,0,3,8,0,4,9}, {0,8,0,0,5,0,0,3,0} }, { //第八种 {0,1,2,0,0,9,0,5,8}, {0,4,0,0,0,8,6,0,9}, {9,0,8,0,5,0,3,1,2}, {0,0,1,7,9,5,8,0,0}, {0,7,3,0,0,0,0,9,
1}, {0,0,9,0,3,2,0,0,7}, {0,5,7,0,2,4,0,6,3}, {0,9,0,0,0,0,0,0,0}, {0,0,6,5,7,1,0,8,4}
}, { {0,3,6,0,0,9,4,8,5}, {9,4,0,0,0,8,0,7,0}, {0,7,8,0,0,6,0,0,9}, {4,6,0,7,8,0,0,9,0}, {0,0,7,0,0,3,0,4,0}, {0,0,9,0,6,0,7,1,2}, {0,5,3,0,9,0,0,6,4}, {0,9,4,0,0,0,1,5,0}, {0,0,2,6,5,4,0,0,7} }, { {0,0,1,8,9,3,5,6,7}, {0,8,7,4,0,1,0,3,0}, {0,3,9,7,5,0,0,1,0}, {4,0,0,0,3,5,0,0,0}, {0,0,8,0,0,4,0,9,1}, {0,0,2,1,8,6,0,5,0}, {0,2,0,5,