怎么用C++制作扫雷游戏

怎么用C++制作扫雷游戏

本篇内容主要讲解“怎么用C++制作扫雷游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用C++制作扫雷游戏”吧!

具体代码如下

怎么用C++制作扫雷游戏

#ifndefSAOLEI_H#defineSAOLEI_HclassBlock{friendclassSaoleigame;public:Block();boolisShown();voidsetnum(int);intgetnum();boolisbomb();protected:intnum;boolflag_show;intx;inty;};classSaoleigame{public:Saoleigame();~Saoleigame();void_init_();voidgameStart();voidreflash();voidcheck(intx,inty);voidclick(intx,inty);voidgameOver();private:Blockjuzheng[100];boolflag;intb[10];unsignedintscore;};#endif

以上是编写的头文件

#include<iostream>#include<cstdlib>#include<ctime>#include"Saolei.h"usingnamespacestd;Saoleigame::Saoleigame(){_init_();flag=true;score=0;}Saoleigame::~Saoleigame(){}voidSaoleigame::_init_(){srand(time(NULL));for(inti=0;i<10;i++){b[i]=-1;}for(inti=0;i<10;i++){booltemp_flag=false;do{inttemp=(unsignedint)rand()%100;for(intj=0;j<i;j++){if(temp==b[i]){temp_flag=true;}}if(!temp_flag){b[i]=temp;}}while(temp_flag);}for(inti=0;i<10;i++){juzheng[b[i]].setnum(-1);}for(inti=0;i<10;i++){for(intj=0;j<10;j++){juzheng[i*10+j].x=i+1;juzheng[i*10+j].y=j+1;}}for(intm=0;m<10;m++){for(intn=0;n<10;n++){check(m+1,n+1);}}}voidSaoleigame::check(intx,inty){if(juzheng[(x-1)*10+(y-1)].num==-1)return;inttrans=(x-1)*10+(y-1);intnumber=0;for(inti=-1;i<2;i++){for(intj=-1;j<2;j++){if(!(x+i<=0&&x+i>=10||j+y<=0&&y+j>=10)){if(juzheng[(x+i-1)*10+(y+j-1)].num==-1)number++;}}}juzheng[(x-1)*10+(y-1)].setnum(number);}voidSaoleigame::click(intx,inty){if(juzheng[(x-1)*10+(y-1)].num==0){for(inti=-1;i<2;i++){for(intj=-1;j<2;j++){if(!((x+i<=0||x+i>10)||(j+y<=0||y+j>10))&&!(i==0&&j==0)&&!juzheng[(x+i-1)*10+(y+j-1)].flag_show){juzheng[(x+i-1)*10+(y+j-1)].flag_show=true;click(x+i,y+j);}}}}juzheng[(x-1)*10+(y-1)].flag_show=true;return;}voidSaoleigame::gameStart(){do{reflash();intx,y;cout<<"inputtheposition:";cin>>x>>y;if(juzheng[(x-1)*10+(y-1)].isbomb()){gameOver();return;}else{click(x,y);}}while(flag);}voidSaoleigame::reflash(){system("cls");score=0;cout<<"扫雷"<<endl;cout<<"12345678910"<<endl;cout<<"-------------------"<<endl;for(inti=0;i<100;i++){if(i%10==0){if(i/10+1==10)cout<<10<<"|";elsecout<<i/10+1<<"|";}if(juzheng[i].isShown()){if(juzheng[i].isShown()&&(juzheng[i].getnum())!=-1){score++;}if((juzheng[i].getnum())==-1)cout<<"*"<<"|";elsecout<<juzheng[i].getnum()<<"|";}else{cout<<"|";}if((i+1)%10==0)cout<<endl;}cout<<"-------------------"<<endl;cout<<"score:"<<(score*100)/95<<endl;}voidSaoleigame::gameOver(){for(inti=0;i<10;i++){juzheng[b[i]].flag_show=true;}reflash();cout<<"GameOver"<<endl<<endl;flag=false;}Block::Block(){flag_show=false;num=0;}boolBlock::isShown(){returnflag_show;}voidBlock::setnum(int_num){num=_num;}intBlock::getnum(){returnnum;}boolBlock::isbomb(){returnnum==-1;}

到此,相信大家对“怎么用C++制作扫雷游戏”有了更深的了解,不妨来实际操作一番吧!这里是恰卡编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

发布于 2022-04-15 22:33:33
收藏
分享
海报
0 条评论
36
上一篇:C++怎么实现计算24点的程序 下一篇:C++中如何使用switch语句
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码