当前位置: 首页 > news >正文

C++ 实现生命游戏 Live Game

#include"stdlib.h"

#include"time.h"

#include"unistd.h"

using namespace std;

#define XSIZE 80

#define YSIZE 30

#include"iostream"

using namespace std ;

// 初始化生命

void initLive(int a[YSIZE][XSIZE])

{

// 初始化边界

for(int i=0;i<YSIZE;i++)

{

a[i][0]=0;

a[i][XSIZE-1]=0;

}

for(int i=0;i<XSIZE;i++)

{

a[0][i]=0;

a[YSIZE-1][i]=0;

}

for(int i=1;i<YSIZE-1;i++)

{

for(int j=1;j<XSIZE-1;j++)

{

a[i][j]=rand()%2;

}

}

}

// 清空

void clear(int a[YSIZE][XSIZE])

{

for(int i=0;i<YSIZE;i++)

{

for(int j=0;j<XSIZE;j++)

{

a[i][j]=0;

}

}

}

// 监测8个方格

int getSum(int a[YSIZE][XSIZE],int y,int x)

{

int sum=0;

sum+=a[y+1][x];

sum+=a[y-1][x];

sum+=a[y][x+1];

sum+=a[y][x-1];

sum+=a[y+1][x+1];

sum+=a[y-1][x+1];

sum+=a[y+1][x-1];

sum+=a[y-1][x-1];

return sum;

}

// 从a状态生成到b中

void nextStatus(int b[YSIZE][XSIZE],int a[YSIZE][XSIZE])

{

int sum=0;

for(int i=1;i<YSIZE-1;i++)

{

for(int j=1;j<XSIZE-1;j++)

{

sum=getSum(a,i,j);

// 测试四种状态

if(a[i][j]==0 and sum==3)

{

b[i][j]=1;

}

else if(a[i][j]==1 and sum<2)

{

b[i][j]=0;

}else if(a[i][j]==1 and sum>3)

{

b[i][j]=0;

}

else if(a[i][j]==1 and (sum==2 or sum==3))

{

b[i][j]=1;

}

}

}

}

// 打印

void printer(int a[YSIZE][XSIZE])

{

for(int i=0;i<XSIZE;i++)

cout<<"--";

cout<<endl;

for(int i=0;i<YSIZE;i++)

{

for(int j=0;j<XSIZE;j++)

{

if(a[i][j]>0)

{

cout<<"国";

}

else

{

cout<<" ";

}

}

cout<<endl;

}

// usleep(1000000);

usleep(100000);

}

int main(){

// 设置随机种子

srand(time(NULL));

int a[YSIZE][XSIZE];

int b[YSIZE][XSIZE];

initLive(a);

clear(b);

while (true)

{

// 生成下一种状态

nextStatus(b,a);

// 打印状态

printer(b);

// 清空上一次的状态

clear(a);

nextStatus(a,b);

printer(a);

clear(b);

}

}

相关文章:

C++ 实现生命游戏 Live Game

#include"stdlib.h" #include"time.h" #include"unistd.h" using namespace std; #define XSIZE 80 #define YSIZE 30 #include"iostream" using namespace std ; // 初始化生命 void initLive(int a[YSIZE][XSIZE]) { // …...

什么是QoS?QoS是如何工作的?QoS的实验配置如何进行?

QoS&#xff08;Quality of Service&#xff09;是服务质量的简称。对于网络业务来说&#xff0c;服务质量包括哪些方面呢&#xff1f; 从传统意义上来讲&#xff0c;无非就是传输的带宽、传送的时延、数据的丢包率等&#xff0c;而提高服务质量无非也就是保证传输的带宽&…...

AcWing 840. 模拟散列表

题目描述 餐前小菜&#xff1a; 在讨论本题目之前先看一个简单的问题&#xff1a;给出 NNN 个正整数 (a1,a2,...,an)(a_1,a_2,...,a_n)(a1​,a2​,...,an​)&#xff0c;再给出 MMM 个正整数 (x1,x2,...,xm)(x_1,x_2,...,x_m)(x1​,x2​,...,xm​)&#xff0c;问这 MMM 个数中…...

【网络工程】常见HTTP响应状态码

前言 什么是HTTP响应状态码&#xff1f; HTTP状态码&#xff08;HTTP Status Code&#xff09;是表示网页服务器超文本传输协议响应状态的3位数字代码 HTTP响应码被分为五大类 信息响应&#xff08;100~199&#xff09;成功响应&#xff08;200~299&#xff09;重定向响应&am…...

Python之ruamel.yaml模块详解(二)

Python之ruamel.yaml模块详解&#xff08;二&#xff09;4 将YAML解析为Python对象并修改5 使用旧API将YAML解析为Python对象并修改6 使用[]和.get()访问合并的键&#xff1a;7 使用insert()方法插入内容8 使用yaml.indent()更改默认缩进9 使用yaml.compact()隔行显示10 同一数…...

若依框架 --- 偶发的el-select无法选择的问题

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是小童&#xff0c;Java开发工程师&#xff0c;CSDN博客博主&#xff0c;Java领域新星创作者 &#x1f4d5;系列专栏&#xff1a;前端、Java、Java中间件大全、微信小程序、微信支付、若依框架、Spring全家桶 &#x1f4…...

【Linux】tmpfile 使用介绍

tmpfile 使用介绍 1 介绍 很多情况下&#xff0c;需要系统自动识别/tmp、/var/tmp下的临时目录&#xff0c;并将其自动清理其中的过期文件。这个工具就是systemd-tmpfiles。 网上很多博客使用tmpwatchcron的方法来管理临时文件和临时存放文件的目录&#xff0c;在后期的版本…...

实现光线追踪重投影的方法

光线追踪重投影方法 重投影这项技术一般用于时间性帧复用技术上&#xff0c;例如TAA(Temporal Anti-Aliasing)反走样或者抗锯齿技术。读这篇文章最好先对TAA这类技术的算法流程有了解。 1.TAA抗锯齿技术简介 先简单介绍下TAA抗锯齿的原理&#xff0c;在游戏中&#xff0c;当前…...

Hyperbolic Representation Learning for CV

Contents Hyperbolic geometry[CVPR 2020] Hyperbolic visual embedding learning for zero-shot recognitionIntroductionApproachHyperbolic Label Embedding LearningHyperbolic Image Embedding LearningExperiment[CVPR 2020] Hyperbolic Image EmbeddingsIntroduction...

In Context Learning 相关分享

个人知乎详见 https://zhuanlan.zhihu.com/p/603650082/edit 1. 前言 随着大模型&#xff08;GPT3&#xff0c;Instruction GPT&#xff0c;ChatGPT&#xff09;的横空出世&#xff0c;如何更高效地提示大模型也成了学术界与工业界的关注&#xff0c;因此In-context learning…...

【前端笔试题一】:解析url路径中的query参数

前言 本文记录下在笔试过程中的前端笔试编程题目&#xff0c;会持续更新 1. 题目&#xff1a; 解析 url 路径中的 query 参数&#xff0c;比如&#xff1a;‘http://building/#/skeleton?serialNumber2023020818332821073&jobNo210347&target%7B%22a%22%3A%22b%22%2C…...

K_A12_001 基于STM32等单片机采集火光火焰传感参数串口与OLED0.96双显示

K_A12_001 基于STM32等单片机采集火光火焰传感参数串口与OLED0.96双显示一、资源说明二、基本参数参数引脚说明三、驱动说明IIC地址/采集通道选择/时序对应程序:四、部分代码说明1、接线引脚定义1.1、STC89C52RC火光火焰模块1.2、STM32F103C8T6火光火焰模块五、基础知识学习与相…...

Java基础42 枚举与注解

枚举与注解一、枚举&#xff08;enumeration&#xff09;1.1 自定义类实现枚举1.2 enum关键字实现枚举1.2.1 enum的注意事项1.2.2 enum的使用练习1.2.3 enum的常用方法1.2.4 enum的使用细节及注意事项1.2.5 enum练习二、注解&#xff08;Annotation&#xff09;2.1 Override&am…...

shell的变量和引用

文章目录二、变量和引用2.1 什么是变量2.2变量的命名2.3 变量的类型2.3.1 根据数据类型分类2.3.2 根据作用域分类2.4 变量的定义2.5 shell中的引用2.6 变量的运算练习&#xff1a;二、变量和引用 在程序设计语言中&#xff0c;变量是一个非常重要的概念。也是初学者在进行Shel…...

基于PHP的招聘网站

摘要在Internet高速发展的今天&#xff0c;我们生活的各个领域都涉及到计算机的应用&#xff0c;其中包括在线招聘的网络应用&#xff0c;在外国在线招聘已经是很普遍的方式&#xff0c;不过国内的在线招聘可能还处于起步阶段。招聘网站具有招聘信息功能的双向选择&#xff0c;…...

轻松使用 Python 检测和识别车牌(附代码)

车牌检测与识别技术用途广泛&#xff0c;可以用于道路系统、无票停车场、车辆门禁等。这项技术结合了计算机视觉和人工智能。 本文将使用Python创建一个车牌检测和识别程序。该程序对输入图像进行处理&#xff0c;检测和识别车牌&#xff0c;最后显示车牌字符&#xff0c;作为…...

DVWA—CSRF-Medium跨站请求伪造中级

注意&#xff1a; 1、这里对XSS(Stored)关卡不熟悉的可以从这里去看http://t.csdn.cn/ggQDK 2、把难度设置成 Medium 一、这一关同样我们需要埋下伏笔&#xff0c;诱使用户点击来提交&#xff0c;首先从XSS&#xff08;Stored&#xff09;入手。 注意&#xff1a;在前面介绍…...

【电商】后台订单生成

结合商品流转的电商系列介绍了一些了&#xff0c;商品已经采购入库、价格税率设置好了、活动及相关模板也已经准备完毕&#xff0c;下面就应该上架销售了&#xff0c;现在接着聊下订单的生成。 订单从产生到最终的关闭需要经历很多的环节&#xff0c;订单也是电商系统的核心数据…...

作为公司,这个5款在线软件工具赶紧安利起来!

2023年了 &#xff0c;您的企业还没使用在线软件工具吗&#xff1f;自从用了在线工具之后&#xff0c;感觉打开了新办公世界的大门&#xff0c;效率蹭蹭蹭地往上涨啊。对于喜欢追求效率和便捷的我来说&#xff0c;在线实在是太棒了&#xff01;今天安利几个非常不错的在线软件工…...

面试(七)为什么一般希望将析构函数定义为虚函数

class B { public:~B() // 基类析构函数不为虚函数{cout << "B::~B()" << endl;} };class D : public B { public:~D(){cout << "D::~D()" << endl;} };void Test(B* t) {delete t;t nullptr; }int main() {B *pb new B;Test…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

ubuntu搭建nfs服务centos挂载访问

在Ubuntu上设置NFS服务器 在Ubuntu上&#xff0c;你可以使用apt包管理器来安装NFS服务器。打开终端并运行&#xff1a; sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享&#xff0c;例如/shared&#xff1a; sudo mkdir /shared sud…...

MongoDB学习和应用(高效的非关系型数据库)

一丶 MongoDB简介 对于社交类软件的功能&#xff0c;我们需要对它的功能特点进行分析&#xff1a; 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具&#xff1a; mysql&#xff1a;关系型数据库&am…...

工程地质软件市场:发展现状、趋势与策略建议

一、引言 在工程建设领域&#xff0c;准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具&#xff0c;正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

【论文笔记】若干矿井粉尘检测算法概述

总的来说&#xff0c;传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度&#xff0c;通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南

精益数据分析&#xff08;97/126&#xff09;&#xff1a;邮件营销与用户参与度的关键指标优化指南 在数字化营销时代&#xff0c;邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天&#xff0c;我们将深入解析邮件打开率、网站可用性、页面参与时…...

Element Plus 表单(el-form)中关于正整数输入的校验规则

目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入&#xff08;联动&#xff09;2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面&#xff0c;避免重复抓取&#xff0c;以节省资源和时间。 在分布式环境下&#xff0c;增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路&#xff1a;将增量判…...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码&#xff0c;实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...