这篇文章将为大家详细讲解有关C++rh 制作扫雷游戏,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
成都创新互联公司长期为1000多家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为共青城企业提供专业的网站设计、成都网站设计,共青城网站改版等技术服务。拥有10多年丰富建站经验和众多成功案例,为您定制开发。
本文实例为大家分享了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; int trans = (x - 1)*10 + (y - 1); int number = 0; for( int i = -1; i < 2; i ++ ) { for(int j = -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); } 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<= 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; } void Saoleigame::gameStart() { do { reflash(); int x, y; cout<<"input the position: "; cin >> 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<<" 扫雷"< 关于“C++rh 制作扫雷游戏”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
文章名称:C++rh制作扫雷游戏
文章链接:http://kswsj.cn/article/poogjs.html