C++实现捡漂流瓶的代码
时间: 2024-01-01 21:04:52 浏览: 188
漂流瓶html代码,捞瓶子功能,实现随机捞瓶子,并且有捞瓶子特效,支持捞男生,捞女生按钮
以下是一个简单的 C++ 实现捡漂流瓶的代码示例:
```cpp
#include <iostream>
#include <string>
#include <vector>
using namespace std;
struct Message {
string sender;
string content;
};
class Bottle {
private:
string message;
public:
Bottle(string message) {
this->message = message;
}
string getMessage() {
return message;
}
};
class Ocean {
private:
vector<Bottle> bottles;
public:
void addBottle(Bottle bottle) {
bottles.push_back(bottle);
}
Bottle getBottle() {
if (bottles.empty()) {
throw runtime_error("No bottles left in the ocean!");
}
int randomIndex = rand() % bottles.size();
Bottle bottle = bottles[randomIndex];
bottles.erase(bottles.begin() + randomIndex);
return bottle;
}
};
class Person {
private:
string name;
public:
Person(string name) {
this->name = name;
}
void throwBottle(Ocean& ocean, string message) {
Bottle bottle(message);
ocean.addBottle(bottle);
cout << name << " threw a bottle into the ocean!" << endl;
}
Message readBottle(Ocean& ocean) {
Bottle bottle = ocean.getBottle();
cout << name << " found a bottle!" << endl;
return Message{name, bottle.getMessage()};
}
};
int main() {
srand(time(NULL));
Ocean ocean;
Person alice("Alice");
Person bob("Bob");
alice.throwBottle(ocean, "Hello Bob!");
Message message = bob.readBottle(ocean);
cout << message.sender << " says: " << message.content << endl;
bob.throwBottle(ocean, "Hi Alice!");
message = alice.readBottle(ocean);
cout << message.sender << " says: " << message.content << endl;
return 0;
}
```
这个示例实现了三个类:`Bottle`、`Ocean` 和 `Person`。`Bottle` 类表示一个漂流瓶,其中包含了一条消息。`Ocean` 类表示一个海洋,可以向其中添加漂流瓶并从中获取漂流瓶。`Person` 类表示一个人,可以将漂流瓶扔入海中或者从海中捡起漂流瓶,并读取其中的消息。
在 `main` 函数中,我们创建了一个 `Ocean` 对象和两个 `Person` 对象,分别是 Alice 和 Bob。Alice 向海中扔了一个漂流瓶,里面包含了一条消息 "Hello Bob!"。Bob 从海中捡起了这个漂流瓶,并读取其中的消息。Bob 回复了一条消息 "Hi Alice!",扔进了海中。Alice 从海中捡起了这个漂流瓶,并读取其中的消息。最后,程序输出了 Alice 和 Bob 之间的对话。
阅读全文