完整代码及注释如下:
#include <GL/glew.h>
#include <GL/glut.h>
#include <iostream>
#include <vector>
#include <cstdlib>
#include <ctime>
using namespace std;
vector< vector<int> > show;
// 细胞自动机的参数
const int WALL_PERCENT = 48; // 初始墙的百分比
const int SMOOTH_TIMES = 5; // 平滑的次数
const int WALL_THRESHOLD = 4; // 墙的阈值
// 细胞和背景的颜色参数
const float CELL_R = 0.0f; // 细胞的红色分量
const float CELL_G = 1.0f; // 细胞的绿色分量
const float CELL_B = 0.0f; // 细胞的蓝色分量
const float BG_R = 0.8f; // 背景的红色分量
const float BG_G = 0.8f; // 背景的绿色分量
const float BG_B = 0.8f; // 背景的蓝色分量
// 世界坐标系的缩放比例
#define SCALE 1.0f // 缩放比例,越大则显示的内容越多
// 世界坐标系的网格数
const int GRID = 40; // 网格数,越大则细胞越密集
// 游戏的状态
bool running = true; // 是否运行
int reproductionSpeed = 5; // 细胞繁殖的速度
bool squareDistributionMode = false; // 是否启用方形分布
// 函数声明
void gameOfLife(vector< vector<int> >& board);
void initCells(vector< vector<int> >& board);
void Initial(void);
void TimerFunction(int value);
void Display(void);
void KeyboardDown(unsigned char key, int x, int y);
void KeyboardUp(unsigned char key, int x, int y);
// 细胞自动机逻辑
void gameOfLife(vector< vector