www.pudn.com > Chesssource.rar > Chess.h
#if !defined(_CHESS_H_)
#define _CHESS_H_
enum APP_STATE
{
APPSTATE_SELF = 0,
APPSTATE_AI,
APPSTATE_GAMEOVER,
APPSTATE_ANIMATION,
APPSTATE_GAMEMENU
};
class cChess
{
public:
cGraphics m_Graphics;
cSound m_Sound;
cSoundChannel m_SoundChannel;
cMusicChannel m_MusicChannel;
cSoundData m_SoundData;
cInput m_Input;
cInputDevice m_Mouse;
cInputDevice m_Keyboard;
cFont m_Font;
cFont m_StateFont;
cCamera m_Camera;
cLight m_Light;
cLight m_Light2;
cMesh m_ChessMeshes[7];
cMesh m_PickMeshes[2];
cObject m_PickGreenObjects[30];
cObject m_PickRedObjects[8];
cObject m_ChessObjects[33];
cTexture m_Buttons[4];
// 菜单变量
cVertexBuffer m_MenuVB;
cTexture m_MenuTexture;
cTexture m_MenuSelect;
cTexture m_MenuButtons;
cCamera m_MenuCam;
cTransform m_MenuPos;
cFont m_MenuFont;
float m_xPos, m_zPos;
long m_xTarget, m_zTarget; // 棋子要移动到的目标坐标
long m_xSource, m_zSource; // 棋子要移动前的坐标
float m_CalcuateXMove, m_CalcuateZMove; // 计算移到动画时所用的坐标
float m_FPS;
int m_Pick;
BOOL m_PickGreenDisplay[30];
BOOL m_PickRedDisplay[8];
int m_CalcuateMoveChessman;
BOOL m_IsPick;
int m_AppState;
BOOL m_IsFirstMove[33];
BOOL m_bEndGame;
BOOL m_bMyWin;
int m_Side;
public:
cChess();
~cChess();
BOOL Init(HWND hWnd, HINSTANCE hInstance);
BOOL Shutdown();
BOOL Frame();
BOOL RenderFrame( float Elapsed );
BOOL RenderAnimationFrame( float Elapsed );
BOOL RenderThinkFrame( float Elapsed );
BOOL GameOver( float Elapsed );
BOOL GameMenu();
void OriginalPosition();
BOOL PickChessman();
BOOL PickMove();
BOOL CheckMove();
BOOL PlaySound(long Num);
BOOL PlayMusic(long Num);
BOOL StopMusic();
BOOL CalculateMove( float Elapsed );
BOOL GetMouseHitMesh(long Num, DWORD *Face );
void CalcuateSourceTarget( float xMove, float zMove );
BOOL Think( int &resultman, POINT &resultpoint );
BOOL EnumList(int map[8][8],POINT manposition[33],BOOL tisfirstmove[33], int &tside,int *chessman,POINT *move,int &count);
int Search(int map[8][8],POINT manposition[33],BOOL tisfirstmove[33],int &tside,int man, POINT point,int upmax,int depth);
int Envalue(int map[8][8],POINT manposition[33],BOOL tisfirstmove[33],int &tside);
void QuickSort(int A[],int chessman[],POINT targetpoint[],int low,int high);
void ContactV(int map[8][8],POINT manposition[33],BOOL tisfirstmove[33],int &tside,int activity[33],int contact[33][33]);
};
#endif