21xrx.com
2024-11-22 06:53:17 Friday
登录
文章检索 我的文章 写文章
C++程序设计:生命游戏代码
2023-07-04 07:57:12 深夜i     --     --
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来使生物状态更真实。这个例子只是生命游戏的一个基本实现,但你可以通过修改值来创建一个更加复杂和有趣的生命游戏。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复