黄金矿工 C++ 多文件 并且详细展示各文件作用
时间: 2024-01-24 20:17:37 浏览: 146
c语言课设——黄金矿工上.zip
5星 · 资源好评率100%
黄金矿工是一款比较经典的休闲游戏,下面是一个用 C++ 多文件实现的黄金矿工小游戏的示例。
该示例包含四个文件:main.cpp、Game.h、Game.cpp、Gold.h、Gold.cpp。
1. main.cpp
```c++
#include <iostream>
#include "Game.h"
using namespace std;
int main() {
Game game;
game.start();
return 0;
}
```
main.cpp 文件中主要包含了程序的入口函数 main(),其中创建了一个名为 game 的 Game 类型对象,并调用了 start() 函数,开始游戏。
2. Game.h
```c++
#ifndef GAME_H
#define GAME_H
#include <iostream>
#include <vector>
#include "Gold.h"
using namespace std;
class Game {
public:
Game();
void start();
private:
vector<Gold> golds;
int score;
int level;
int maxLevel;
void init();
void createGold();
void showInfo();
void play();
};
#endif
```
Game.h 文件主要包含了 Game 类的定义,该类包含了黄金矿工游戏的各种属性和方法,包括游戏中的金块、得分、关卡等信息,以及游戏的初始化、创建金块、展示信息和游戏玩法等方法。
3. Game.cpp
```c++
#include "Game.h"
Game::Game() {
score = 0;
level = 0;
maxLevel = 10;
}
void Game::init() {
score = 0;
level = 0;
golds.clear();
}
void Game::createGold() {
Gold gold;
gold.generate();
golds.push_back(gold);
}
void Game::showInfo() {
cout << "Score: " << score << endl;
cout << "Level: " << level << endl;
}
void Game::play() {
char c;
while (true) {
cout << "Press any key to dig a gold: ";
cin >> c;
if (c == 'q' || c == 'Q') {
break;
}
Gold gold = golds.back();
golds.pop_back();
score += gold.getValue();
if (golds.empty()) {
createGold();
level++;
}
showInfo();
}
cout << "Game over!" << endl;
}
void Game::start() {
init();
createGold();
play();
}
```
Game.cpp 文件中实现了 Game 类中定义的各种方法,包括游戏的初始化、创建金块、展示信息和游戏玩法等方法。
4. Gold.h
```c++
#ifndef GOLD_H
#define GOLD_H
#include <iostream>
#include <cstdlib>
using namespace std;
class Gold {
public:
Gold();
void generate();
int getValue();
private:
int value;
};
#endif
```
Gold.h 文件中主要包含了 Gold 类的定义,该类表示游戏中的一个金块,包含了金块的价值和生成金块的方法。
5. Gold.cpp
```c++
#include "Gold.h"
Gold::Gold() {
value = 0;
}
void Gold::generate() {
value = rand() % 100 + 1;
}
int Gold::getValue() {
return value;
}
```
Gold.cpp 文件中实现了 Gold 类中定义的各种方法,包括生成金块和获取金块价值等方法。
以上就是黄金矿工 C++ 多文件的示例代码,通过将不同的功能模块分别封装成不同的文件,使得代码更加清晰、易于维护。
阅读全文