欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于C++和MFC開發(fā)象棋程序

 更新時間:2017年10月27日 15:35:45   作者:月影獨(dú)行  
這篇文章主要為大家詳細(xì)介紹了基于C++和MFC開發(fā)象棋程序,具有一定的參考價值,感興趣的小伙伴們可以參考一下

這是我要和大家分享的基于C++和MFC開發(fā)的一個象棋程序,目的是練習(xí)編程實踐和大家分享同時希望大家能給出指教。

進(jìn)入主題

一、棋盤分析

  這是我繪制的棋盤,棋盤的組成由9條豎線和10條橫線構(gòu)成。這兒我們設(shè)置每條線間的間隔是50。

二、繪制過程

1、在vs中新建MFC程序,去除環(huán)境自動生成的按鈕和文字。

2、打開***Dlg.cpp文件,在void CChessDlg::OnPaint()中定義一個棋盤間隔值和繪圖設(shè)備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)
{
  //繪制棋盤兩側(cè)線段
 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);

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++空類默認(rèn)函數(shù)詳細(xì)解析

    C++空類默認(rèn)函數(shù)詳細(xì)解析

    如果你只是聲明一個空類,不做任何事情的話,編譯器會自動為你生成一個默認(rèn)構(gòu)造函數(shù)、一個拷貝默認(rèn)構(gòu)造函數(shù)、一個默認(rèn)拷貝賦值操作符和一個默認(rèn)析構(gòu)函數(shù)
    2013-10-10
  • C語言求冪計算的高效解法

    C語言求冪計算的高效解法

    這篇文章主要介紹了C語言求冪計算的高效解法,分別演示了求冪運(yùn)算與整數(shù)次方的解法,具有不錯的參考借鑒價值,需要的朋友可以參考下
    2014-09-09
  • 在Visual Studio 2019中修改項目名的方法

    在Visual Studio 2019中修改項目名的方法

    這篇文章主要介紹了在Visual Studio 2019中修改項目名的方法,文中通過示例介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • C++/GoLang如何實現(xiàn)自底向上的歸并排序

    C++/GoLang如何實現(xiàn)自底向上的歸并排序

    這篇文章主要給大家介紹了關(guān)于C++/GoLang如何實現(xiàn)自底向上的歸并排序的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • C++超詳細(xì)講解拷貝構(gòu)造函數(shù)

    C++超詳細(xì)講解拷貝構(gòu)造函數(shù)

    我們經(jīng)常會用一個變量去初始化一個同類型的變量,那么對于自定義的類型也應(yīng)該有類似的操作,那么創(chuàng)建對象時如何使用一個已經(jīng)存在的對象去創(chuàng)建另一個與之相同的對象呢
    2022-06-06
  • windows上配置vscode?C/C++代碼跳轉(zhuǎn)的實現(xiàn)

    windows上配置vscode?C/C++代碼跳轉(zhuǎn)的實現(xiàn)

    C/C++官方的C/C++插件,必備的插件,是代碼跳轉(zhuǎn)、自動補(bǔ)全、代碼大綱顯示等功能的基礎(chǔ),本文主要介紹了windows上配置vscode?C/C++代碼跳轉(zhuǎn),感興趣的可以了解一下
    2023-09-09
  • 淺談C++虛重載操作符 virtual operator= 的使用方法

    淺談C++虛重載操作符 virtual operator= 的使用方法

    下面小編就為大家?guī)硪黄獪\談C++虛重載操作符 virtual operator= 的使用方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • 基于C++中常見內(nèi)存錯誤的總結(jié)

    基于C++中常見內(nèi)存錯誤的總結(jié)

    本篇文章是對C++中常見的內(nèi)存錯誤進(jìn)行了總結(jié)介紹。需要的朋友參考下
    2013-05-05
  • 如何在C++中調(diào)用python代碼你知道嗎

    如何在C++中調(diào)用python代碼你知道嗎

    這篇文章主要為大家介紹了C++中調(diào)用python代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • 利用C++編寫一個Json解析器

    利用C++編寫一個Json解析器

    這篇文章主要為大家詳細(xì)介紹了如何利用C++編寫一個簡單又好用的Json解析器,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-03-03

最新評論