资源描述:
《C++编写的“扫雷”源程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、//headerfile#include#include#include#include#include//defines#defineKEY_UP0xE048#defineKEY_DOWN0xE050#defineKEY_LEFT0xE04B#defineKEY_RIGHT0xE04D#defineKEY_ESC0x001B#defineKEY_1'1'#defineKEY_2'2'#defineKEY_3'3
2、'#defineGAME_MAX_WIDTH100#defineGAME_MAX_HEIGHT100//StringsResource#defineSTR_GAMETITLE"ArrowKey:MoveCursorKey1:OpenKey2:MarkKey3:OpenNeighbors"#defineSTR_GAMEWIN"Congratulations!YouWin!Thankyouforplaying!"#defineSTR_GAMEOVER"GameOver,thankyouforplayi
3、ng!"#defineSTR_GAMEEND"Presentedbyyzfy.PressESCtoexit"//-------------------------------------------------------------//BaseclassclassCConsoleWnd{public:staticintTextOut(constchar*);staticintGotoXY(int,int);staticintCharOut(int,int,constint);staticint
4、TextOut(int,int,constchar*);staticintGetKey();public:};//{{//classCConsoleWnd////intCConsoleWnd::GetKey()//WaitforstandardinputandreturntheKeyCode//intCConsoleWnd::GetKey(){intnkey=getch(),nk=0;if(nkey>=128
5、
6、nkey==0)nk=getch();returnnk>0?nkey*256+nk:nkey
7、;}////intCConsoleWnd::GotoXY(intx,inty)//Movecursorto(x,y)//OnlyConsoleApplication//intCConsoleWnd::GotoXY(intx,inty){COORDcd;cd.X=x;cd.Y=y;returnSetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),cd);}////intCConsoleWnd::TextOut(constchar*pstr)//O
8、utputastringatcurrentposition//intCConsoleWnd::TextOut(constchar*pstr){for(;*pstr;++pstr)putchar(*pstr);return0;}////intCConsoleWnd::CharOut(intx,inty,constintpstr)//Outputacharat(x,y)//intCConsoleWnd::CharOut(intx,inty,constintpstr){GotoXY(x,y);returnpu
9、tchar(pstr);}////intCConsoleWnd::TextOut(constchar*pstr)//Outputastringat(x,y)//intCConsoleWnd::TextOut(intx,inty,constchar*pstr){GotoXY(x,y);returnTextOut(pstr);}//}}//-------------------------------------------------------------//ApplicationclassclassC
10、SLGame:publicCConsoleWnd{private:private:intcurX,curY;intpoolWidth,poolHeight;intbm_gamepool[GAME_MAX_HEIGHT+2][GAME_MAX_WIDTH+2];public:CSLGame():curX(0),curY(0){poolWidth=poolHeight=0;}intInitPool(int,int,int);intMoveCur