组员:徐亦农,庞征
这个游戏基本实现了双人对战的功能,但没有进行过多的渲染和扩展。
//函数和变量声明部分
[quote]
private:
void InitChessBoard();
void JudgeSetChess(int i,int j, BOOL &flag);
void TestChessMove();
void TestGameOver();
BOOL PlaySounds(UINT IDSoundRes);
void VisitChessBoard();
void Judge();
void TestButtonPos();
void AddChess(int m_ChessColor, int i, int j);
virtual ~CBWchessView();
private:
CPoint ButtonPos; //鼠标当前位置
CString m_Result; //输出信息
BOOL ArrChess[8][8]; //[j]处是否有棋子
BOOL m_CanMove;
BOOL m_CanSetChess[8]; //[j]八个方位是否可以着棋
BOOL m_NewGame; //新游戏标示
BOOL m_GameOver; //游戏结束标示
int ChessColor[8][8]; //棋盘信息
int x_pos,y_pos; //棋盘数组下标
int m_ChessColor; //当前棋子颜色
int m_BlackChessNum; //棋盘黑色棋子数
int m_WhiteChessNum; //棋盘白色棋子数
int ChessInfo[8][8]; //落子位置提示数组[/quote]
{
CBWchessDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CBitmap bitmap; //产生一个位图变量
bitmap.LoadBitmap(IDB_ChessBoard); //让它和导入的位图ID相关联
CDC dcCompatibale; //产生一个兼容的设备容器变量
dcCompatibale.CreateCompatibleDC(pDC); /*创建一个和OnEraseBkgnd函数所传递的参数pDC,兼容的设备容器*/
dcCompatibale.SelectObject(&bitmap); //将位图变量放入兼容设备中
CRect rect; //产生一个矩形变量rect
GetClientRect(&rect); //获得客户端的矩形区域,并付值给rect
pDC->BitBlt(0,0,rect.Width(),rect.Height(),&dcCompatibale,0,0,SRCCOPY);
/*使用传参的指针所指的设备驱动成员函数,将兼容的设备驱动复制过来
//如果希望显示的位图能自动拉伸或收缩,以适应窗体的大小,将上面这句话改为。
BITMAP map;
bitmap.GetBitmap(&map); //先获取图片的大小付给map变量
pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&dcCompatibale,
0,0,map.bmWidth,map.bmHeight,SRCCOPY); *///然后用可拉伸的函数进行复制
if (m_NewGame)
{
AddChess(1, 4, 4);
AddChess(1, 3, 3);
AddChess(0, 3, 4);
AddChess(0, 4, 3);
TestChessMove();
m_NewGame=FAL