#include <iostream>
#include <vector>
#include <chrono>
#include <thread>
using namespace std;
// 设置细胞世界大小
const int WORLD_WIDTH = 50;
const int WORLD_HEIGHT = 20;
// 细胞世界类
class World {
public:
World() : m_cells(WORLD_HEIGHT, vector<char>(WORLD_WIDTH)) {}
// 随机生成细胞状态
void randomize();
// 更新细胞状态
void update();
// 显示细胞状态
void display();
private:
// 获取指定位置周围的细胞数量
int countNeighbors(int row, int col);
// 存储细胞状态的二维数组
vector<vector<char>> m_cells;
};
// 随机生成细胞状态
void World::randomize() {
for (auto& row : m_cells) {
for (auto& cell : row) {
cell = rand() % 2 ? 'X' : '.';
}
}
}
// 获取指定位置周围的细胞数量
int World::countNeighbors(int row, int col) {
int count = 0;
for (int i = -1; i <= 1; ++i) {
for (int j = -1; j <= 1; ++j) {
int r = row + i;
int c = col + j;
if ((i != 0 || j != 0) && r >= 0 && r < WORLD_HEIGHT && c >= 0 && c < WORLD_WIDTH) {
if (m_cells[r][c] == 'X') {
++count;
}
}
}
}
return count;
}
// 更新细胞状态
void World::update() {
vector<vector<char>> newCells(WORLD_HEIGHT, vector<char>(WORLD_WIDTH));
for (int row = 0; row < WORLD_HEIGHT; ++row) {
for (int col = 0; col < WORLD_WIDTH; ++col) {
int neighbors = countNeighbors(row, col);
if (m_cells[row][col] == 'X') {
// 活细胞
if (neighbors == 2 || neighbors == 3) {
newCells[row][col] = 'X';
}
else {
newCells[row][col] = '.';
}
}
else {
// 死细胞
if (neighbors == 3) {
newCells[row][col] = 'X';
}
else {
newCells[row][col] = '.';
}
}
}
}
m_cells = newCells;
}
// 显示细胞状态
void World::display() {
for (auto& row : m_cells) {
for (auto& cell : row) {
cout << cell << ' ';
}
cout << endl;
}
}
int main() {
World world;
world.randomize();
while (true) {
world.display();
world.update();
this_thread::sleep_for(chrono::milliseconds(500)); // 延迟 500 毫秒
system("cls"); // 每次更新前清空屏幕
}
return 0;
}

喝酒届最摇的老头
- 粉丝: 19
最新资源
- 储能变流器三相并网电压矢量控制技术解析及其双向充放电应用
- python实现飞书多维表格增删改实时同步到mysql
- 观察者模式 代码方便后续查看
- 电力电子领域CLLC双向谐振变换器的输出电压闭环控制与自动正反向运行仿真 精华版
- Simulink仿真模型中锂电池与双向DCDC变换器智能切换模式的技术解析及应用
- 基于MATLAB的单闭环直流调速系统设计与仿真:参数优化及应用 自动控制 v2.5
- COMSOL双层结构曲界面声场仿真:聚焦探头在水钢介质中的声压分布与能量聚焦特性分析
- 电力电子领域4mos结构两相交错并联Buck-Boost变换器仿真的控制方式分析
- 社区团购-社区团购系统-社区团购系统源码-社区团购系统代码-springboot社区团购系统源码-基于springboot的社区团购系统设计与实现-社区团购管理系统-社区团购项目代码-社区团购网站代码
- 光伏交直流混合微电网离网模式双下垂控制MatlabSimulink仿真研究
- PMSM电机三环控制仿真模型初学者学习指南 - MATLAB2023b及以上版本适用 - PMSM
- COMSOL注浆渗流球形结果
- zynq7000 ucosii库 ISE14.7
- MATLAB实现2D3D A路径规划算法:交互式地图、DLL导出及C++集成
- 【地理信息系统】基于EE的MODIS地表温度数据处理:财政年度区域统计与导出
- 西门子博途Modbus TCP通讯FB块:支持多站点交互与客户端服务器切换的工业通信解决方案
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈


