谁会用MFC编数独游戏,帮帮我 ,急需高手!
来源:百度知道 编辑:UC知道 时间:2024/09/19 16:00:34
#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
typedef unsigned int UINT ;
typedef struct tag_Sudu {
char **rSudu;
char **xNumberStatus; //xNumberStatus[i][x]=y 表示数字i+1放在坐标(x,y),如果y=NOLAY,表示第x列没有放置数字i+1
char **yNumberStatus; //同xNumStatus,不过是按照y方向处理
UINT uEmptyPosition; //记录sudu中总的空格数目。
}Sudu;
int xNumberPolicy(Sudu *lpSudu);
int yNumberPolicy(Sudu *lpSudu);
//可以在这里不断的添加想到的策略.
//如果函数的返回值是-1,说明Sudu的当前状态是错误的,就是所Sudu无解.
//如果函数的返回值是0,说明Sudu暂时是合法的,就是说可能有解.
typedef int(*pFunPolicy)(Sudu *lpSudu);
pFunPolicy pfnPolicy[] = {
xNumberPolicy,
yNumberPolicy
};
#define NOLAY -1
#define XVALID(lpSudu, index, x) ((lpSudu)->xNumberStatus[index][x] == NOLAY)
#define YVALID(lpSudu, index, y) ((lpSudu)->yNumberStatus[index][y] == NOLAY)
#define EMPTYGRID(lpSudu, x, y) ((