C++扫雷游戏的简单制作
本文实例为大家分享了C++实现扫雷游戏的具体代码,供大家参考,具体内容如下
#ifndefSAOLEI_H #defineSAOLEI_H classBlock { 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#include #include #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=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<<"扫雷"< 更多精彩游戏小代码,请点击《游戏专题》阅读
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。