最近待業中,趁這段時間想實現乙個vc版的五子棋軟體,並且把每天的工作內容寫出來當作對自己工作的總結,同時希望能達到拋磚引玉的效果,希望各位大俠多多指教。
首先建立乙個mfc工程,如下圖:
工程建好後我們先完成棋盤的繪製。這裡我們使用gdi+來繪圖。要使用gdi+,先要完成如下工作。
(1)將以下**加入到stdafx.h標頭檔案中:
#include(2) 在程式初始化部分加入以下**:#ifndef ulong_ptr
#define ulong_ptr unsignedlong*
#include "gdiplus.h"
using namespace gdiplus;
#endif
#pragma comment(lib,"gdiplus.lib")
// 裝載gdi+(3) 在程式結束部分前加入如下**:gdiplusstartupinput gdiplusstartupinput;
ulong_ptr pgditoken;
gdiplusstartup(&pgditoken,&gdiplusstartupinput,null);
// 解除安裝gdi+這樣這個工程就可以使用gdi+了。gdiplusshutdown(pgidtoken);
在onpaint()中新增繪圖部分**如下:
void繪製棋盤的方法實現如下cfivedlg::onpaint()
else
else
cpaintdc
dc(this);
graphics
graphics(dc.m_hdc);
// 繪製棋盤
drawchessboard(&graphics);
// 繪製棋子
drawchess(&graphics);
cdialog::onpaint();
}
void繪製棋子的方法實現如下,這裡只是簡單的繪製了兩顆棋子。cfivedlg::drawchessboard(graphics *g)
}
void好了,到這裡就完成了棋盤的繪製了,看看執行之後的效果吧。cfivedlg::drawchess(graphics *g)
{image
whitechess(l
"img/whitestone.png",false);
image
blackchess(l
"img/blackstone.png",false);
intchessleft= m_left - m_blocksize/ 2;
intchesstop= m_top - m_blocksize/ 2;
intchesssize= m_blocksize;
g->drawimage(&whitechess,chessleft+ 7 * m_blocksize,chesstop+ 7 * m_blocksize,chesssize,chesssize);
g->drawimage(&blackchess,chessleft+ 6 * m_blocksize,chesstop+ 7 * m_blocksize,chesssize,chesssize);
這棋盤和棋子可是我用photoshop借鑑了n多教程後繪製的,怎麼樣,還不錯吧!
一步一步實現五子棋5
前面弱智版五子棋雖然實現了讓電腦下棋,但是完全沒有思考能力。下面我們就來為電腦提公升智力,學會思考後再下棋。計算機的思考能力體現在對盤面的分析上,通過分析可能形成的盤面,從中選擇最優結果,形成這個最優結果的著法即為計算機本次的選擇。盤面分析的過程就是查詢能形成五連珠的棋形,每種棋形賦予一定的分數,分...
一步一步實現FormsAuthentic驗證登入
本文不講原理,只講用法,原理性的東西網上特別多,不過還是會對一些要用到的東西進行解釋,不深入講原理。本文中用的是vs2012 net mvc 4.0。原理看這篇文章 看完這個文章絕對受益匪淺。說下登入的整個流程 使用者輸入賬號密碼 點選提交 資料提交到後台控制器 去資料庫取得使用者資料 如果登入成功...
一步一步學習hadoop(五)
hadoop分布式檔案系統 hdfs 首先介紹一下hdfs的特點 1.擅長處理大檔案,超大檔案。幾十g甚至pb級別的檔案 2.擅長流式資料訪問,一次寫入多次讀取是最高效的訪問模式 3.可以執行在普通的機器上,一般只要求記憶體是ecc記憶體,可以對資料進行糾錯。4.擅長執行非實時的分析或者是近實時的資...