#include <iostream>
#include <stdlib.h>
#include <ctime>
class Minesweeper {
public:
void buildBoards();
void printTopLvlBoard();
void printBottomLvlBoard();
void userEntry(int x, int y);
void gameOver();
bool stateGood();
private:
static const int CLMN_MAX_SIZE = 5;
static const int ROW_MAX_SIZE = 5;
char topLvlBoard[ROW_MAX_SIZE][CLMN_MAX_SIZE];
char bottomLvlBoard[ROW_MAX_SIZE][CLMN_MAX_SIZE];
bool gameState;
};
void Minesweeper::printTopLvlBoard(){
std:: cout << "Board" << std:: endl;
for(int i = 0; i < ROW_MAX_SIZE; i++) {
for(int j = 0; j < CLMN_MAX_SIZE; j++) {
std::cout << topLvlBoard[i][j];
}
std::cout << std::endl;
}
}
void Minesweeper::buildBoards(){
for(int i = 0; i < ROW_MAX_SIZE; i++){
for(int j = 0; j < CLMN_MAX_SIZE; j++){
bottomLvlBoard[i][j] = 'O';
topLvlBoard[i][j] = 'x';
}
}
for(int k = 0; k < 5; k++) {
bottomLvlBoard[**rand()%5**][**rand()%5**] = 'B';
}
gameState = true;
}
void Minesweeper::printBottomLvlBoard(){
for(int i = 0; i < CLMN_MAX_SIZE; i++){
for(int j = 0; j < ROW_MAX_SIZE; j++){
std::cout << bottomLvlBoard[i][j];
}
std::cout << std:: endl;
}
}
void Minesweeper::userEntry(int x,int y){
char bottomTmp = bottomLvlBoard[x-1][y-1];
if(bottomTmp == 'O'){
topLvlBoard[x-1][y-1] = '*';
bottomLvlBoard[x-1][y-1] = 'C';
}
else if(bottomTmp == 'B'){
gameOver();
}
}
void Minesweeper::gameOver() {
std::cout << std:: endl;
std::cout << "**********************" << std:: endl;
std::cout << "**********************" << std:: endl;
std::cout << "*** BOMB BOMB BOMB ***" << std:: endl;
std::cout << "*** BOMB BOMB BOMB ***" << std:: endl;
std::cout << "*** BOMB BOMB BOMB ***" << std:: endl;
std::cout << "*** BOMB BOMB BOMB ***" << std:: endl;
std::cout << "**********************" << std:: endl;
std::cout << "**********************" << std:: endl;
std::cout << std:: endl;
std::cout << "You have landed on a bomb!" << std:: endl;
std::cout << std:: endl;
printBottomLvlBoard();
gameState = false;
}
bool Minesweeper::stateGood(){
bool tmpYesNo = (gameState == true) ? true : false;
return tmpYesNo;
}
是否有通過rand()函數強制執行顯式隨機性的方法?每次我運行這個程序時,我都會在網格中獲得相同的可預測炸彈模式。即使我改變main()中的種子,我仍然只能得到大約3種模式的變體。如何使用rand()執行顯式隨機性
播種是關鍵。你打電話給srand()怎麼樣? –
嘿!沒有任何明確的東西堆棧溢出! –