谁会用MFC编数独游戏,帮帮我 ,急需高手!

来源:百度知道 编辑:UC知道 时间:2024/09/19 16:00:34
谁会用MFC编数独游戏,帮帮我 ,急需高手!

#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) ((