21xrx.com
2025-03-31 20:21:08 Monday
文章检索 我的文章 写文章
C++程序设计:生命游戏代码
2023-07-04 07:57:12 深夜i     87     0
C++ 程序设计 生命游戏 代码 编程

生命游戏是一款经典的细胞自动机模拟游戏,最早由英国数学家康威发明。这个游戏模型展示了简单的生物进化和复杂的行为。C++是一种高级编程语言,它可以在计算机上创建应用程序,包括游戏。下面是使用C++编写的生命游戏代码示例。

生命游戏是一个基于细胞生命周期的游戏。每个细胞可以处于两种状态之一:存活或死亡。它们是在一个网格上放置的,可以有八个相邻的细胞。下面是C++程序设计中生命游戏的代码示例:

#include<iostream>
#include<vector>
#include<Windows.h>
using namespace std;
int main() {
  const int ROW = 20, COL = 60; // 初始化网格的大小
  vector<vector<int>>life(ROW, vector<int>(COL, 0)); // 初始化一个所有元素为0的二维向量
  // 设置一些生物初始值
  life[5][5] = 1;
  life[5][6] = 1;
  life[6][5] = 1;
  life[6][6] = 1;
  life[2][3] = 1;
  life[3][3] = 1;
  life[4][3] = 1;
  while (true) { // 游戏主循环
    system("cls"); // 清除控制台
    for (int i = 0; i < ROW; i++) {
      for (int j = 0; j < COL; j++) {
        if (life[i][j] == 1) {
          cout << "*"; // 如果生物存活,则输出*表示
        }
        else
          cout << "-"; // 否则输出-表示
        
      }
      cout << endl;
    }
    // 更新二维向量中的生物形态
    vector<vector<int>>newLife(ROW, vector<int>(COL, 0));
    for (int i = 1; i < ROW - 1; i++) {
      for (int j = 1; j < COL - 1; j++) {
        int count = 0;
        for (int k = -1; k < 2; k++) {
          for (int l = -1; l < 2; l++) {
            count += life[i + k][j + l];
          }
        }
        count -= life[i][j];
        if (life[i][j] == 1 && (count < 2 || count > 3)) {
          newLife[i][j] = 0;
        }
        else if (count == 3) {
          newLife[i][j] = 1;
        }
        else {
          newLife[i][j] = life[i][j];
        }
      }
    }
    life = newLife; // 更新生物状态
    Sleep(100); // 延迟一段时间,使生物状态更加真实
  }
  return 0;
}

以上是一个生命游戏的基本C++程序,它可以在控制台中运行。我们使用二维向量存储当前的生物状态,在游戏主循环中,使用扫描创建一个新的二维向量,然后更新生物状态。我们还可以看到,我们使用了Sleep来使生物状态更真实。这个例子只是生命游戏的一个基本实现,但你可以通过修改值来创建一个更加复杂和有趣的生命游戏。

  
  

评论区

请求出错了