Game.h
上传用户:kkzhu_0
上传日期:2007-01-05
资源大小:214k
文件大小:4k
- ////////////////////////////////////////////////////////////////////////////////////////////
- // Hander file: game.h
- // Copyright( C ) 1997.5-1997.11
- ////////////////////////////////////////////////////////////////////////////////////////////
- #ifndef GAME_H
- #define GAME_H
- #include <afxwin.h>
- #include <afxtempl.h>
- #include <afxmt.h>
- #include <afxext.h>
- #define FIVE_MAX_LINE 15
- #define WZQ_I 2435
- #define WZQ_PING WZQ_I + 1
- #define WZQ_ERROR WZQ_I + 2
- #define WZQ_YOU WZQ_I + 3
- #define WZQ_RUN WZQ_I + 4
- #define WZQ_HAVE WZQ_I + 5
- #define WZQ_NOTHREAD WZQ_I + 6
- #define WZQ_B 'B'
- #define WZQ_W 'W'
- #define WZQ_N 'N'
- ///////////////////////////////////////////////////////////////////////////////////////////
- // CFive
- struct Step
- {
- int m;
- int n;
- char side;
- };
- struct Count
- {
- Step step;
- double count;
- };
- class CFive:public CWinThread
- {
- protected:
- ///////////////////////////////////////////////////////////////////////////////////////////
- // 平分参数
- static int WF1_1;
- static int WF1_2;
- static int WF1_3;
- static int WF1_4;
- static int WF0_1;
- static int WF0_2;
- static int WF0_3;
- static int WF0_4;
- static int WF2_3;
- static int WF2_4;
- static int WF5;
- ///////////////////////////////////////////////////////////////////////////////////////////
- // 搜索参数
- static int DeepMax;
- static int ThreadDeepMax;
- static int BreadthMax;
- static int Delta;
- static char Side;
- static BOOL PlayStateFlags;
- static int PlayIndex;
- static char FiveArea[FIVE_MAX_LINE][FIVE_MAX_LINE];
- static CList<Step,Step> StepList; //每一步的列表
- static CArray<int,int> ImpList;
- static CList<Count,Count> OneCountList;
- static CEvent KillWzqRun;
- static CStatusBar *pInfo;
- //////////////////////////////////////////////////////////////////////////////////////////
- // 临时参数
- int CurDeep;
- int CurThreadDeep;
- int CurBreadth;
- double CurCount;
- char CurSide;
- CList<Count,Count> CountList;
- CList<Step,Step> DeepList;
- static Count PiShen;
- public:
- enum LEVE
- { COUNT_INC, //使参数方分数增加最多
- COUNT_SUB, //使非参数方分数减少最多
- COUNT_MID, //平均
- COUNT_DELTA,
- COUNT_ALPHA,
- };
- static long MemoryCount;
- static int ThreadCount;
- static long JingDuCount;
-
- protected:
- ////////////////////////////////////////////////////////////////////////////////////////////
- // 平分机制
- int Dump( int Num,int Wflag );
- long SreachLine( char *Line,int Num,char Side );
- long SreachArea( char Area[][FIVE_MAX_LINE],char NF );
- void CalRun( char Nf,LEVE leve );
- BOOL BiTest( int& mm,int& nn );
- void ResumePlayState();
- void UpdatePlay();
- ///////////////////////////////////////////////////////////////////////////////////////////
- //
- void ThreadRun();
- void AddDeepList( Step step );
- Step GetLastDeepList();
- double GetStepCount();
- public:
- CEvent EndEvent;
- ///////////////////////////////////////////////////////////////////////////////////////////
- // 初始化
- CFive();
- protected:
- CFive( char side,int deep,int breadth,int threaddeep );
- public:
- ~CFive();
- void WzqInit( char side,BOOL flags = TRUE );
- ///////////////////////////////////////////////////////////////////////////////////////////
- // 参数设置
- void SetDump( int Num,int Wflag,int count );
- int GetDump( int Num,int Wflag );
- void SetParam( int breadth,int deep,int thread,int delta );
- void GetParam( int& breadth,int& deep,int& thread,int& delta );
- int WzqTest( int m,int n );
- int WzqEndTest();
- int WzqRun( int &m,int &n );
- char GetSubPosition( int m,int n );
- char GetSide();
- BOOL HuiOneStep();
- BOOL BackEndStep();
- BOOL BackOneStep();
- BOOL FowardOneStep();
- BOOL OneStep();
- void InListBox( CComboBox& box );
- int GetCurStep(int&m,int&n);
- void KillWzqThread();
- void NoKillThread();
- void SetInfo( CStatusBar*p);
- //////////////////////////////////////////////////////////////////////////////////////////
- // 线程部分
- BOOL InitInstance();
- int ExitInstance();
- void Serialize( CArchive& ar );
- DECLARE_SERIAL( CFive )
- };
- #endif