資源簡介
我是北京交大教師程軼平,這是我為我開設的課程“ Windows程序設計”編寫的掃雷代碼,是基于ReactOS的WinEMine改寫的,采用Win32 API。界面完全模仿微軟自帶的掃雷,完整地實現了整個功能。而且代碼很簡潔。

代碼片段和文件信息
/*===========================================================================
??This?is?the?fifth?step?toward?building?the?WinMine?application
??Adapted?for?educational?purpose?by?Yiping?Cheng?
??Beijing?Jiaotong?University?Mar.?2011
??based?on?the?WinMine?program?written?by?the?ReactOS?team
??Original?Copyright?Notice:
?*?WineMine?(main.c)
?*
?*?Copyright?2000?Joshua?Thielen?
?*
?*?This?library?is?free?software;?you?can?redistribute?it?and/or
?*?modify?it?under?the?terms?of?the?GNU?Lesser?General?Public
?*?License?as?published?by?the?Free?Software?Foundation;?either
?*?version?2.1?of?the?License?or?(at?your?option)?any?later?version.
?*
?*?This?library?is?distributed?in?the?hope?that?it?will?be?useful
?*?but?WITHOUT?ANY?WARRANTY;?without?even?the?implied?warranty?of
?*?MERCHANTABILITY?or?FITNESS?FOR?A?PARTICULAR?PURPOSE.??See?the?GNU
?*?Lesser?General?Public?License?for?more?details.
?*
?*?You?should?have?received?a?copy?of?the?GNU?Lesser?General?Public
?*?License?along?with?this?library;?if?not?write?to?the?Free?Software
?*?Foundation?Inc.?51?Franklin?Street?Fifth?Floor?Boston?MA??02110-1301??USA
---------------------------------------------------------------------------*/
#include?
#include?
#include?“resource.h“
#include?“WinMine.h“
//?the?only?global?variable
extern?BOARD?board;
void?TranslateMouseMsg(UINT*?puMsg?WPARAM?wParam)
{
????if?(*puMsg?==?WM_LBUTTONDOWN)
????????SetCapture(board.hWnd);
????else?if?(*puMsg?==?WM_LBUTTONUP)
????????ReleaseCapture();
????else?if?((*puMsg?==?WM_MOUSEMOVE)?&&?(wParam?&?MK_LBUTTON))
????{
????????*puMsg?=?WM_LBUTTONDOWN;
????}
}
void?ProcessMouseMsg(UINT?uMsg?LPARAM?lParam)
{
????POINT?pt;
????int?row?col;
????pt.x?=?GET_X_LPARAM(lParam);
????pt.y?=?GET_Y_LPARAM(lParam);
????if?(PtInRect(&board.FaceRect?pt))
????{
????????if?(uMsg?==?WM_LBUTTONDOWN)
????????{
????????????DisplayFace(FACE_DOWN);
????????}
????????else?if?(uMsg?==?WM_LBUTTONUP)
????????{
????????????NewGame();
????????}
????????return;
????}
????if?(board.GameState?==?GAMEWON)
????{
????????DisplayFace(FACE_WIN);
????????return;
????}
????else?if?(board.GameState?==?GAMELOST)
????{
????????DisplayFace(FACE_LOSE);
????????return;
????}
????Pt2RowCol(pt?&row?&col);
????if?(uMsg?==?WM_LBUTTONDOWN)
????{
????????if?(row?!=?board.rowPressed?||?col?!=?board.colPressed)
????????{
????????????UnPressBox();
????????????PressBox(row?col);
????????}
????????DisplayFace(FACE_CAUTION);
????}
????else
????{
????????UnPressBox();
????????if?(row?0)
????????{
????????????//?row<0?means?we?clicked?outside?the?grid
????????????DisplayFace(FACE_HAPPY);
????????????return;
????????}
????????if?(uMsg?==?WM_LBUTTONUP)
????????{
????????????if?(board.GameState?==?WAITING)
????????????{?
????????????????LayMines(row?col);
????????????????board.GameState?=?PLAYING;
????????????????SetTimer
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????537??2011-03-08?10:24??WinMine\WinMine.dsw
?????文件?????115712??2011-04-19?08:28??WinMine\WinMine.ncb
?????文件???????1412??2011-04-19?08:27??WinMine\WinMine.plg
?????文件??????48640??2011-04-19?08:28??WinMine\WinMine.opt
?????文件???????4238??2011-04-19?07:55??WinMine\WinMine.h
?????文件??????13820??2011-04-19?00:41??WinMine\WinMine.c
?????文件???????8104??2011-04-19?08:13??WinMine\MineGame.c
?????文件???????7325??2011-04-18?21:09??WinMine\WinMine.dsp
?????文件???????3033??2011-04-19?08:15??WinMine\WinMine.rc
?????文件???????1048??2011-04-19?00:22??WinMine\resource.h
?????文件??????62168??2011-04-19?08:15??WinMine\WinMine.aps
?????文件???????5322??2011-04-19?08:13??WinMine\MinePaint.c
????..A.SH.?????22528??2011-03-08?14:53??WinMine\res\Thumbs.db
?????文件??????22542??2011-03-07?00:19??WinMine\res\Mine.ico
?????文件???????2326??2011-03-08?11:33??WinMine\res\leds.BMP
?????文件???????1558??2011-03-08?11:33??WinMine\res\faces.bmp
?????文件???????2166??2011-03-08?11:33??WinMine\res\mines.BMP
?????文件??????65536??2011-04-19?08:27??WinMine\Release\WinMine.exe
?????目錄??????????0??2011-04-19?08:29??WinMine\res
?????目錄??????????0??2011-04-19?08:29??WinMine\Unicode?Debug
?????目錄??????????0??2011-04-19?08:29??WinMine\Unicode?Release
?????目錄??????????0??2011-04-19?08:29??WinMine\Release
?????目錄??????????0??2011-04-19?08:29??WinMine\Debug
?????目錄??????????0??2011-04-19?08:29??WinMine
-----------?---------??----------?-----??----
???????????????388015????????????????????24
- 上一篇:計算機網絡編程vc++學生管理系統
- 下一篇:C語言socket編程實現網絡數據傳輸
評論
共有 條評論