欢迎来到代码驿站!

C代码

当前位置:首页 > 软件编程 > C代码

基于C++和MFC开发象棋程序

时间:2021-02-18 11:21:04|栏目:C代码|点击:

这是我要和大家分享的基于C++和MFC开发的一个象棋程序,目的是练习编程实践和大家分享同时希望大家能给出指教。

进入主题

一、棋盘分析

  这是我绘制的棋盘,棋盘的组成由9条竖线和10条横线构成。这儿我们设置每条线间的间隔是50。

二、绘制过程

1、在vs中新建MFC程序,去除环境自动生成的按钮和文字。

2、打开***Dlg.cpp文件,在void CChessDlg::OnPaint()中定义一个棋盘间隔值和绘图设备CDC *cd = CWnd::GetDC();

int nWid = 50;
CDC *cd = CWnd::GetDC();

3、绘制棋盘横线

//画横线
for (int i = 1; i < 11; ++i)
{
 cd->MoveTo(nWid, i * nWid);
 cd->LineTo(9 * nWid, i * nWid);
}

4、绘制棋盘竖线

//画竖线
for (int i = 1; i < 10; ++i)
{
  //绘制棋盘两侧线段
 if(1 == i || 9 == i)
 {
  cd->MoveTo(i * nWid ,nWid);
  cd->LineTo(i * nWid,10 * nWid);
 }
 else//绘制棋盘中间的几条竖线
 {
  cd->MoveTo(i * nWid ,nWid);
  cd->LineTo(i * nWid,5 * nWid);

  cd->MoveTo(i * nWid,6 * nWid);
  cd->LineTo(i * nWid,10 * nWid);
 }
}

5、绘制九宫格

//画九宫格
cd->MoveTo(4 * nWid ,nWid);
cd->LineTo(6 * nWid,3 * nWid);

cd->MoveTo(6 * nWid, nWid);
cd->LineTo(4 * nWid,3 * nWid);

cd->MoveTo(4 * nWid ,8 * nWid);
cd->LineTo(6 * nWid,10 * nWid);

cd->MoveTo(6 * nWid, 8 * nWid);
cd->LineTo(4 * nWid,10 * nWid);

到这里我们的棋盘就绘制好了下面是完整代码

  CDialogEx::OnPaint();
  int nWid = 50;
  CDC *cd = CWnd::GetDC();

  //画横线
  for (int i = 1; i < 11; ++i)
  {
   cd->MoveTo(nWid, i * nWid);
   cd->LineTo(9 * nWid, i * nWid);
  }

  //画竖线
  for (int i = 1; i < 10; ++i)
  {
   if(1 == i || 9 == i)
   {
    cd->MoveTo(i * nWid ,nWid);
    cd->LineTo(i * nWid,10 * nWid);
   }
   else
   {
    cd->MoveTo(i * nWid ,nWid);
    cd->LineTo(i * nWid,5 * nWid);

    cd->MoveTo(i * nWid,6 * nWid);
    cd->LineTo(i * nWid,10 * nWid);
   }
  }

  //画九宫格
  cd->MoveTo(4 * nWid ,nWid);
  cd->LineTo(6 * nWid,3 * nWid);

  cd->MoveTo(6 * nWid, nWid);
  cd->LineTo(4 * nWid,3 * nWid);

  cd->MoveTo(4 * nWid ,8 * nWid);
  cd->LineTo(6 * nWid,10 * nWid);

  cd->MoveTo(6 * nWid, 8 * nWid);
  cd->LineTo(4 * nWid,10 * nWid);

上一篇:用标准c++实现string与各种类型之间的转换

栏    目:C代码

下一篇:Qt自定义控件实现线条型加载条

本文标题:基于C++和MFC开发象棋程序

本文地址:http://www.codeinn.net/misctech/65419.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有