C++实现扫雷小游戏(控制台版)

2020-03-17 14:01:03王旭

主程序

mineweeper.cpp

#include <iostream>
#include <cstdlib>
#include <conio.h>
#include <ctime>
#include "map.h"
 
using namespace std;
 
int main() {
 Map game;
 float start, end;
 char ch;
 while (1) {
  game.AcceptCond();  //选择模式
  game.InitMap();  //初始化
  game.ShowMap();  //显示地图。 注:此时地图未生成完毕
  game.FirstStep();  //预处理,防止第一步就触雷结束
  game.SetMine();  //设置地雷
  game.SetNumber();  //根据地雷分布计算数字
  game.OpenBlock();  //打开开局预先想要打开的第一个空
  start = clock();
  game.ShowMap();
  if (game.PlayGame()) { //根据PlayGame()接口的返回值判定输赢
   cout << endl << "~ Congratulation ~n ~ You Win ~" << endl;
  }
  else {
   cout << endl << "BOOM!!! ~ Game Over ~n" << endl;
  }
  end = clock();
  printf("nTime : %.2fn", (end - start) / CLK_TCK); //输出游戏所用时间
  cout << endl << "Please enter 'q' to quit, or any other keys to continue" << endl;
  game.SetPosition(); //用于触雷失败时,将光标返回到触雷的位置,提示哪一步失败,同时触碰的雷也将显示为 ‘X'
  ch = getch();
  if ('q' == ch) { // q 用于退出游戏
   system("cls");
   cout << "~ Bye ~" << endl;
   break;
  }
  else {
   game.ResetPosition();
   system("cls");
  }
 }
 system("pause");
 return 0;
}

游戏截图

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易采站长站。