资源简介
如题,用了一个较好理解的算法,不过智能还不错,对于人工智能入门的人学习是很有帮助的。在wintc下编译通过。
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#include
#define MouseStatusMouseOn 1
#define LButtonclick 1
#define BackColor BLACK
#define LineColor LIGHTGRAY
#define CorcurColor LIGHTRED
#define BlackChess 1
#define WhiteChess 2
#define OffSetX 40
#define OffSetY 20
#define Max(ab) (a>=b?a:b)
/*===========================全局变量定义============================*/
int arrowMouseDraw[16][10]=
{
/*设计鼠标的形状其中1:表示鼠标的边界2:表示鼠标边界所包围的区域3:表示鼠标以外的区域*/
{1133333333}
{1213333333}
{1221333333}
{1222133333}
{1222213333}
{1222221333}
{1222222133}
{1222222213}
{1222222221}
{1222222133}
{1222221333}
{1213122133}
{1133122133}
{3333312213}
{3333312213}
{3333331123}
};
unsigned int size;
int MouseX=0MouseY=0; /*存放鼠标的水平方向的值*/
int OldCorcur_x=0OldCorcur_y=0;
int NewCorcur_x=0NewCorcur_y=0;
int arrowMousePixSave[16][10];
int AllPoint[15][15];
double Mark[12];
double MaxMark=20000000000000000;
void *BlackBlock;
void *WhiteBlock;
void *CorcurBlock[9];
void *BufBlock[9];
void *BlackCorcur;
void *WhiteCorcur;
/*=========================函数定义===============================*/
void MouseOn(int int );
void SetMouseHori(int int );
void SetMouseVert(int int );
void MouseOff(int int );
void SetMouseXY(int int );
void GetMouseXY();
void initgr(void );
void InitBlock();
void DrawMap();
void DrawChess(int int int);
void DrawCorcur(int int int );
void DrawBuf(int int int );
void GetCorcur(int int );
void End(int );
void Begin();
int CheckWin(int int int);
int IsInChessboard(int int );
double GetStatus(int int int );
void GetMaxScore(int *int *int double *);
void GetBestPoint(int *int *int);
void ShowST(int int int);
int Choose();
/*======================================主函数实现=========================================*/
void main()
{
int MouseMSGMchoose;
int OldMouse_x=100OldMouse_y=100mouseMsg;
int MouseFlag=0CorcurFlag=0TimeFlag=1gap=0;
int ChessNow=BlackChessFind_x=1Find_y=1;
char buf[4];
int nStepBlack=0nStepWhite=0nTimebaseBlacknTimebaseWhite;
choose=Choose();
initgr();
InitBlock();
Begin();
GetMouseXY();
DrawMap();
ShowST(0time(0)BlackChess);
ShowST(0time(0)WhiteChess);
if(choose==1)
{
AllPoint[7][7]=WhiteChess;
DrawChess(77WhiteChess);
}
nTimebaseBlack=time(0);
nTimebaseWhite=time(0);
gap=time(0);
while(!kbhit()) /*主循环,鼠标移动也在循环中*/
{
GetMouseXY();
GetCorcur(MouseX+12MouseY+5);
if(OldMouse_x!=MouseX || OldMouse_y!=MouseY) /*在棋盘中使用光标,而不是鼠标*/
{
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
-rw-r--r-- 16677 1992-02-18 03:00 BGI\TRIP.CHR
-rw-r--r-- 5554 1992-02-18 03:00 BGI\EGAVGA.BGI
-rw-r--r-- 24122 2010-10-31 00:08 wuziqi.c
drwxr-xr-x 0 2006-01-02 11:48 BGI
----------- --------- ---------- ----- ----
46353 4
- 上一篇:c++局域网聊天室软件
- 下一篇:音乐播放器mfc.doc
评论
共有 条评论