C++ 金币拾取后消失
时间: 2024-04-10 14:27:11 浏览: 13
您可以通过在C++中使用一个二维数组来表示游戏场景,并在玩家拾取金币后将其标记为已经被拾取,从而实现金币在拾取后消失的效果。以下是一个简单的示例代码:
```cpp
#include <iostream>
#include <vector>
// 定义游戏场景的大小
const int ROWS = 5;
const int COLS = 5;
// 定义金币的表示
const char COIN = 'O';
const char EMPTY = '-';
// 定义玩家的位置
struct Position {
int row;
int col;
};
// 在游戏场景中打印当前状态
void printScene(const std::vector<std::vector<char>>& scene) {
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
std::cout << scene[i][j] << " ";
}
std::cout << std::endl;
}
}
// 玩家拾取金币后更新游戏场景
void updateScene(std::vector<std::vector<char>>& scene, const Position& playerPos) {
if (scene[playerPos.row][playerPos.col] == COIN) {
scene[playerPos.row][playerPos.col] = EMPTY;
}
}
int main() {
// 初始化游戏场景
std::vector<std::vector<char>> scene(ROWS, std::vector<char>(COLS, COIN));
// 初始化玩家位置
Position playerPos = {2, 3};
// 打印初始场景状态
std::cout << "初始场景状态:" << std::endl;
printScene(scene);
std::cout << std::endl;
// 玩家拾取金币并更新场景
updateScene(scene, playerPos);
// 打印更新后的场景状态
std::cout << "更新后的场景状态:" << std::endl;
printScene(scene);
return 0;
}
```
在这个示例中,我们使用一个二维字符数组`scene`来表示游戏场景,其中每个元素代表一个位置的状态。初始状态下,所有位置都是金币`COIN`。玩家通过修改自己的位置`playerPos`来拾取金币,并在`updateScene`函数中将拾取的金币标记为已经被拾取,即将对应位置的字符修改为`EMPTY`。
运行上述代码,您将看到初始场景状态和更新后的场景状态。在更新后的场景状态中,玩家所在位置的金币已经消失。