• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

C++扫雷游戏的简单制作

c++ 搞代码 4年前 (2022-01-06) 33次浏览 已收录 0个评论

这篇文章主要为大家详细介绍了C++扫雷来源gaodai#ma#com搞@@代~&码网游戏的简单制作,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了C++实现扫雷游戏的具体代码,供大家参考,具体内容如下

 #ifndef SAOLEI_H #define SAOLEI_H class Block { friend class Saoleigame; public: Block(); bool isShown(); void setnum(int); int getnum(); bool isbomb(); protected: int num; bool flag_show; int x; int y; }; class Saoleigame { public: Saoleigame(); ~Saoleigame(); void _init_(); void gameStart(); void reflash(); void check(int x, int y); void click(int x, int y); void gameOver(); private: Block juzheng[100]; bool flag; int b[10]; unsigned int score; }; #endif

以上是编写的头文件

 #include #include #include #include"Saolei.h" using namespace std; Saoleigame::Saoleigame() { _init_(); flag = true; score = 0; } Saoleigame::~Saoleigame() { } void Saoleigame::_init_() { srand(time(NULL)); for( int i = 0; i <10; i++ ) { b[i] = -1; } for(int i = 0; i <10; i ++ ) { bool temp_flag = false; do { int temp = (unsigned int)rand()%100; for( int j = 0; j <i; j ++) { if(temp == b[i]) { temp_flag = true; } } if(!temp_flag) { b[i] = temp; } }while(temp_flag); } for(int i = 0; i <10; i++ ) { juzheng[b[i]].setnum(-1); } for( int i = 0; i <10; i ++ ) { for( int j = 0; j <10;j++) { juzheng[i*10+j].x = i+1; juzheng[i*10+j].y = j+1; } } for(int m = 0; m <10; m ++ ) { for( int n = 0; n <10 ; n++ ) { check(m + 1, n 1); } void saoleigame::check(int x, int y) if(juzheng[(x - 1)*10 (y 1)].num== -1)return; trans=(x number=0; for( i < 2; ++ for(int j ++) if(!(x i= 10 || j + y = 10)) { if(juzheng[(x + i - 1)*10 + (y + j - 1)].num == -1) number ++; } } } juzheng[(x - 1)*10 + (y - 1)].setnum(number); } void Saoleigame::click(int x, int y) { if(juzheng[(x- 1)*10 + (y - 1)].num == 0) { for( int i = -1; i <2; i ++ ) { for(int j = -1; j <2; j ++) { if(!((x + i 10 )|| (j + y  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; } void Saoleigame::gameStart() { do { reflash(); int x, y; cout<> x>> y; if(juzheng[(x-1)*10 + (y-1)].isbomb()) { gameOver(); return; } else { click(x , y); } }while(flag); } void Saoleigame::reflash() { system("cls"); score = 0; cout<<"   扫雷"<<endl; cout<<" 1 2 3 4 5 6 7 8 9 10"<<endl; cout<<" -------------------"<<endl; for(int i = 0; i <100; i ++ ) { if(i%10 == 0) { if(i /10 + 1 == 10)cout<<10<<"|"; else cout<<i /10 + 1<<" |"; } if(juzheng[i].isShown()) { if(juzheng[i].isShown() && (juzheng[i].getnum())!=-1) { score ++; } if((juzheng[i].getnum())==-1)cout <<"*"<<"|"; else cout <<juzheng[i].getnum()<<"|"; } else { cout<<" |"; } if((i+1)%10 == 0)cout<<endl; } cout<<" -------------------"<<endl; cout<<"score:"<<(score*100)/95<<endl; } void Saoleigame::gameOver() { for(int i = 0 ; i <10 ; i++ ) { juzheng[b[i]].flag_show=true; } reflash(); cout<<"game over"<<endl<<endl; flag=false; block::block() flag_show=false; num=0; bool block::isshown() return flag_show; void block::setnum(int _num) _num; int block::getnum() num; block::isbomb() -1; }

更多精彩游戏小代码,请点击《游戏专题》阅读

以上就是C++扫雷游戏的简单制作的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:C++扫雷游戏的简单制作
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址