版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、44級务枚摩院网络操作系统报告(应用程序开发)题目:基于linux平台GCC环境下扫雷应用程序开发姓名:李磊学院:理学院专业:网络工程班级:092学号:18870902112012年01月01日基于Linux平台GCC环境下扫雷应用程序开发应用程序功能通过模拟windows系统中的扫雷应用程序,在linux平台gcc环境下实现C语言扫雷应用程序。硬件平台内存2.0G,硬盘320G,CPUPentium4以上PC机一台软件平台31操作系统平台linuxcygwin环境32应用软件平台(黑体小四号)VisualC+6.0或其他C语言编译程序,linuxcygwin环境,GCC编译条件3.3应用程序
2、/headerfile#include#include#include#include#include/defines#defineKEY_UP0 xE048#defineKEY_DOWN0 xE050#defineKEY_LEFT0 xE04B#defineKEY_RIGHT0 xE04D#defineKEY_ESC0 x001BTOC o 1-5 h z#defineKEY_11#defineKEY_22#defineKEY_33#defineGAME_MAX_WIDTH100#defineGAME_MAX_HEIGHT100/StringsResource#defineSTR_GAMET
3、ITLE程序说明:数字键1打开数字键2标记数字键3打开附近盒子#defineSTR_GAMEWIN亲,祝贺你赢了哦,再接再厉哦!n#defineSTR_GAMEOVER亲,你咋那么笨呢?挂了吧!n#defineSTR_GAMEEND亲,按ESC键退出程序n/BaseclassclassCConsoleWndpublic:staticintTextOut(constchar*);staticintGotoXY(int,int);staticintCharOut(int,int,constint);staticintTextOut(int,int,constchar*)staticintGetKe
4、y();public:;/classCConsoleWnd/intCConsoleWnd:GetKey()/WaitforstandardinputandreturntheKeyCode/intCConsoleWnd:GetKey()intnkey=getch(),nk=0;if(nkey=128|nkey=0)nk=getch();returnnk0?nkey*256+nk:nkey;/intCConsoleWnd:GotoXY(intx,inty)/Movecursorto(x,y)/OnlyConsoleApplication/intCConsoleWnd:GotoXY(intx,int
5、y)COORDcd;cd.X=x;cd.Y=y;returnSetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),cd);/intCConsoleWnd:TextOut(constchar*pstr)/Outputastringatcurrentposition/intCConsoleWnd:TextOut(constchar*pstr)for(;*pstr;+pstr)putchar(*pstr);return0;/intCConsoleWnd:CharOut(intx,inty,constintpstr)/Outputachara
6、t(x,y)/intCConsoleWnd:CharOut(intx,inty,constintpstr)GotoXY(x,y);returnputchar(pstr);/intCConsoleWnd:TextOut(constchar*pstr)/Outputastringat(x,y)/intCConsoleWnd:TextOut(intx,inty,constchar*pstr)GotoXY(x,y);returnTextOut(pstr);/ApplicationclassclassCSLGame:publicCConsoleWndprivate:private:intcurX,cur
7、Y;intpoolWidth,poolHeight;intbm_gamepoolGAME_MAX_HEIGHT+2GAME_MAX_WIDTH+2;public:CSLGame():curX(0),curY(0)poolWidth=poolHeight=0;intInitPool(int,int,int);intMoveCursor()returnCConsoleWnd:GotoXY(curX,curY);intDrawPool(int);intWaitMessage();intGetShowNum(int,int);intTryOpen(int,int);private:intDFSShow
8、Num(int,int);private:conststaticintGMARK_BOOM;conststaticintGMARK_EMPTY;conststaticintGMARK_MARK;constintCSLGame:GMARK_BOOM=0 x10;constintCSLGame:GMARK_EMPTY=0 x100;constintCSLGame:GMARK_MARK=0 x200;/classCSLGame:publicCConsoleWnd/intCSLGame:InitPool(intWidth,intHeight,intnBoom)/Initializethegamepoo
9、l./IfWidth*Height=nBoom,ornBoom=0,/orWidthandHeightexceedlimit,thenreturn1/otherwisereturn0/intCSLGame:InitPool(intWidth,intHeight,intnBoom)poolWidth=Width;poolHeight=Height;if(nBoom=Width*Height|WidthGAME_MAX_WIDTH|HeightGAME_MAX_HEIGHT)return1;/zeromemoryfor(inty=0;y=Height+1;+y)for(intx=0;x=Width
10、+1;+x)bm_gamepoolyx=0;/initseedsrand(time(NULL);/initBoomswhile(nBoom)intx=rand()%Width+1,y=rand()%Height+1;if(bm_gamepoolyx=0)bm_gamepoolyx=GMARK_BOOM;-nBoom;/initcursorpositioncurX=curY=1;MoveCursor();return0;/intCSLGame:DrawPool(intbDrawBoom=0)/DrawgamepooltoConsolewindow/intCSLGame:DrawPool(intb
11、DrawBoom=0)for(inty=1;y=poolHeight;+y)CConsoleWnd:GotoXY(1,y);for(intx=1;x0&bm_gamepoolyx=8)putchar(0+bm_gamepoolyx);elseif(bDrawBoom=0&(bm_gamepoolyx&GMARK_MARK)putchar(#);elseif(bm_gamepoolyx&GMARK_BOOM)if(bDrawBoom)putchar(*);elseputchar(.);return0;/intCSLGame:GetShowNum(intx,inty)/returnShowNuma
12、t(x,y)/intCSLGame:GetShowNum(intx,inty)intnCount=0;for(intY=-1;Y=1;+Y)for(intX=-1;X=1;+X)if(bm_gamepooly+Yx+X&GMARK_BOOM)+nCount;returnnCount;/intCSLGame:TryOpen(intx,inty)/Tryopen(x,y)andshowthenumber/Ifthereisaboom,thenreturnEOF/intCSLGame:TryOpen(intx,inty)intnRT=0;if(bm_gamepoolyx&GMARK_BOOM)nRT
13、=EOF;elseintnCount=GetShowNum(x,y);if(nCount=0)DFSShowNum(x,y);elsebm_gamepoolyx=nCount;returnnRT;/intCSLGame:DFSShowNum(intx,inty)/Privatefunction,nocomment/intCSLGame:DFSShowNum(intx,inty)if(0 x&x=poolWidth)&(0y&y=poolHeight)&(bm_gamepoolyx=0)intnCount=GetShowNum(x,y);if(nCount=0)bm_gamepoolyx=GMA
14、RK_EMPTY;for(intY=-1;Y=1;+Y)for(intX=-1;X1)-curY;nArrow=1;break;caseKEY_DOWN:if(curY1)-curX;nArrow=1;break;caseKEY_RIGHT:if(curXpoolWidth)+curX;nArrow=1;break;caseKEY_1:nRT=TryOpen(curX,curY);break;caseKEY_2:if(bm_gamepoolcurYcurX&(GMARK_MARK|GMARK_BOOM)=0)bm_gamepoolcurYcurX八二GMARK_MARK;break;caseK
15、EY_3:if(bm_gamepoolcurYcurX&0 xF)intnb=bm_gamepoolcurYcurX&0 xF;for(inty=-1;y=1;+y)for(intx=-1;x=1;+x)if(bm_gamepoolcurY+ycurX+x&GMARK_MARK)-nb;if(nb=0)for(inty=-1;y=1;+y)for(intx=-1;x=1;+x)if(bm_gamepoolcurY+ycurX+x&(0 xF|GMARK_MARK)=0)nRT|=TryOpen(curX+x,curY+y);break;caseKEY_ESC:nRT=EOF;break;if(
16、nKey=KEY_1|nKey=KEY_3)inty=1;for(;y=poolHeight;+y)intx=1;for(;x=poolWidth;+x)if(bm_gamepoolyx=0)break;if(x=poolWidth)break;if(!(y=poolHeight)nRT=1;if(nArrow=0)DrawPool();MoveCursor();returnnRT;/mainfunction/intmain(void)intx=50,y=20,b=100,n;/definewidth&height&n_boomsCSLGameslGame;/InitGameCConsoleWnd:GotoXY(0,0);CConsoleWnd:TextOut(STR_GAMETITLE);slGame.InitPool(x,y,b);slGame.DrawPool();slGame.MoveCursor();while(n=slGame.WaitMessage()=0)/GameMessageLoop/EndoftheGameslGame.DrawPool(1);CConsoleWnd:TextOut(n);if(n=1)CConsoleWnd:TextOut(STR_GAMEWIN);elseCConsoleWnd:TextOu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 永州市双牌县2025-2026学年第二学期四年级语文第八单元测试卷(部编版含答案)
- 嘉峪关市市辖区2025-2026学年第二学期二年级语文第七单元测试卷部编版含答案
- 阿里地区革吉县2025-2026学年第二学期三年级语文第七单元测试卷(部编版含答案)
- 加气混凝土钢筋工班组协作水平考核试卷含答案
- 粉末冶金烧结工岗前能力评估考核试卷含答案
- 润滑油调合操作工岗前工作合规化考核试卷含答案
- 溶剂发酵工安全文化知识考核试卷含答案
- 大地测量员变革管理强化考核试卷含答案
- 肇庆市高要市2025-2026学年第二学期二年级语文第八单元测试卷部编版含答案
- 遂宁市大英县2025-2026学年第二学期二年级语文期末考试卷部编版含答案
- (2026年)建筑施工企业管理人员安全生产考核试卷附答案
- 档案数字资源安全存储与备份方案
- 2026青海海南州同仁市融媒体中心编外专业技术人员招聘12人考试备考题库及答案解析
- 爱国卫生经费管理制度
- JBT 7363-2023 滚动轴承 零件碳氮共渗 热处理技术规范 (正式版)
- 浙江省杭州北斗联盟2023-2024学年高一上学期期中联考英语试题
- 眼科质控手册
- 《电力设备典型消防规程》考试复习题库(含答案)
- 加热炉推料结构设计论文(1)-学位论文
- 英语人教新目标七年级下册My favorite animals
- CB/T 615-1995船底吸入格栅
评论
0/150
提交评论