- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VC讲义附录3:两人对弈的中国象棋程序
附录3:可供两人对弈的中国象棋程序
// Sample 10-4: 中国象棋程序
#include afxwin.h
// 棋盘类
class CPlate
{
int m_ndx; // 棋盘格宽
int m_ndy; // 棋盘格高
int m_nLeft; // 棋盘位置
int m_nTop;
int m_nRight;
int m_nBottom;
public:
CPlate();
void ShowPlate(CDC *pDC);
void DrawConer(CDC *pDC, int row, int col, int type);
CPoint GetPosition(int col, int row);
};
// 棋盘类的成员函数
// 构造函数: 初始化
CPlate::CPlate()
{
m_ndx = 50;
m_ndy = 45;
m_nLeft = 198;
m_nTop = 30;
m_nRight = m_nLeft+m_ndx*8;
m_nBottom = m_nTop+m_ndy*9;
}
// 显示棋盘
void CPlate::ShowPlate(CDC *pDC)
{
// 画棋盘方格
CPen penRed2(PS_SOLID,2,RGB(255,0,0));
CPen *pOldPen = pDC-SelectObject(penRed2);
for(int i=0; i10; i++)
{
pDC-MoveTo(m_nLeft, m_nTop+i*m_ndy);
pDC-LineTo(m_nRight, m_nTop+i*m_ndy);
}
for(i=0; i9; i++)
{
if(i==0 || i==8)
{
pDC-MoveTo(m_nLeft+i*m_ndx, m_nTop);
pDC-LineTo(m_nLeft+i*m_ndx, m_nBottom);
}
else{
pDC-MoveTo(m_nLeft+i*m_ndx, m_nTop);
pDC-LineTo(m_nLeft+i*m_ndx, m_nTop+4*m_ndy);
pDC-MoveTo(m_nLeft+i*m_ndx, m_nTop+5*m_ndy);
pDC-LineTo(m_nLeft+i*m_ndx, m_nBottom);
}
}
// 画棋盘斜线
pDC-SelectObject(pOldPen);
CPen penRed1(PS_SOLID,1,RGB(255,0,0));
pOldPen = pDC-SelectObject(penRed1);
pDC-MoveTo(m_nLeft+3*m_ndx, m_nTop);
pDC-LineTo(m_nLeft+5*m_ndx, m_nTop+2*m_ndy);
pDC-MoveTo(m_nLeft+3*m_ndx, m_nTop+2*m_ndy);
pDC-LineTo(m_nLeft+5*m_ndx, m_nTop);
pDC-MoveTo(m_nLeft+3*m_ndx, m_nBottom);
pDC-LineTo(m_nLeft+5*m_ndx, m_nBottom-2*m_ndy);
pDC-MoveTo(m_nLeft+3*m_ndx, m_nBottom-2*m_ndy);
pDC-LineTo(m_nLeft+5*m_ndx, m_nBottom);
pDC-SelectObject(pOldPen);
// 画兵, 炮位标记
DrawConer(pDC, 2, 1, 0);
DrawConer(pDC, 2, 7, 0);
DrawConer(pDC, 3, 0, 1);
DrawConer(pDC, 3, 2, 0);
DrawConer(pDC, 3, 4, 0);
DrawConer(pDC, 3, 6, 0);
DrawConer(pDC, 3, 8, 2);
DrawConer(pDC, 7, 1, 0);
DrawConer(pDC, 7, 7, 0);
DrawConer(pDC, 6, 0, 1);
DrawConer(pDC, 6, 2, 0);
DrawConer(pDC, 6, 4, 0);
DrawConer(pDC, 6, 6, 0);
DrawConer(pDC, 6, 8, 2);
}
// 绘制兵, 炮位标志
void CPlate::DrawConer(CDC *pDC, int row,
您可能关注的文档
最近下载
- 国开电大24春《企业信息管理》形成性考核1-4答案.docx
- 关于小学英语猜食物和饮料的趣味(课件)-2021-2022学年英语三年级上册.ppt VIP
- 2020高中音乐教师新课程标准考试(公共知识+学科专业知识)模拟题及答案 共二套.pdf VIP
- 2024《基于回归模型下的云南咖啡出口竞争力实证分析》11000字.docx
- 高中英语读后续写---贫穷哥哥奋力奔跑为妹妹赢得跑鞋(小鞋子little shoes).docx
- “双减”优秀作业设计:初中数学作业设计案例三篇.docx
- java课件封装继承多态.pdf
- 应用手册 - Eaton.PDF
- 重庆大学《应用数理统计》(钟波--刘琼荪-刘朝林)课后习题解答--科.pdf
- 箱涵模板工程施工组织设计方案.pdf
文档评论(0)