"""这是一个活的生命游戏"""
import random, time, copy
WIDTH = 10
HEIGHT = 5"""为细胞创建一个二维列表"""
nextCells = []
for x in range(WIDTH):"""创建一个新的column"""column = []for y in range(HEIGHT):if random.randint(0, 1) == 0:"""活细胞动向"""column.append('#')else:"""死细胞动向"""column.append(' ')nextCells.append(column)while True:"""用换行符分隔每个步骤"""print('\n\n\n')currentCells = copy.deepcopy(nextCells)for y in range(HEIGHT):for x in range(WIDTH):print(currentCells[x][y], end=' ')"""在末尾打上换行符"""print()"""细胞下一步主要来源于它周围的邻居"""for x in range(WIDTH):for y in range(HEIGHT):leftCoord = (x-1) % WIDTH   # 左面rightCoord = (x+1) % WIDTH  # 右面aboveCoord = (y-1) % HEIGHT  # 上面belowCoord = (y+1) % HEIGHT  # 下面""""计算周围活邻居的数量"""numNeighbors = 0if currentCells[leftCoord][aboveCoord] == '#':  # 左上numNeighbors += 1if currentCells[x][aboveCoord] == '#':  # 上面numNeighbors += 1if currentCells[rightCoord][aboveCoord] == '#':  # 右上numNeighbors += 1if currentCells[leftCoord][y] == '#':  # 左面numNeighbors += 1if currentCells[rightCoord][y] == '#':  # 右面numNeighbors += 1if currentCells[leftCoord][belowCoord] == '#':  # 左下numNeighbors += 1if currentCells[x][belowCoord] == "#":  # 下面numNeighbors += 1if currentCells[rightCoord][belowCoord] == '#':  # 右下numNeighbors += 1"""判断是不是活着的细胞并且活着的邻居为2或者3"""if currentCells[x][y] == '#' and (numNeighbors == 2 or numNeighbors == 3):nextCells[x][y] = '#'elif currentCells[x][y] == ' ' and numNeighbors == 3:nextCells[x][y] = '#'else:nextCells[x][y] = ' 'time.sleep(0.5)

从运行结果图,我们可以看到方块在不断变化着。这个程序的核心思想:如果一个活的方块与两个或三个活的方块为邻居,那么下一步它也将是活的;如果一个死的方块正好有三个活的方块,那么下一步它将是活的。

conway生命小游戏,实现细胞普通行为相关推荐

  1. C语言——生命小游戏

    目录 前言 一.游戏代码 二.代码解析 1.初始化 2.繁衍或死亡 总结 前言 代码参考了<C语言课程设计与游戏开发实践教程> 游戏介绍: 假设有一个像棋盘一样的方格网,每个方格中放置一个 ...

  2. java生命小游戏_Java修炼——飞机生存小游戏

    在学习了java入门的课程之后,自己动手跟着老师写的一个小游戏,用的是Frame.总共有七个类. 1.飞机游戏的主窗口(MyGameFrame)继承Frame. package com.bjsxt.p ...

  3. 用pygame做一个简单的python小游戏---生命游戏

    用pygame做一个简单的python小游戏-生命游戏 生命游戏(Game of Life) 生命游戏(Game of Life)是剑桥大学约翰·何顿·康威(John Horton Conway)教授 ...

  4. 弹力细胞,一个由JavaScript写的网页小游戏

    弹力细胞 (BounceCell) 一个由JavaScript写的网页小游戏 作为大一菜鸟,这是我第一次比较正式的写文章 [害臊] 游戏玩法 通过鼠标或触屏控制屏幕底部的滑动弹板将发射的小球反弹出去撞 ...

  5. 只需一行Python代码即可玩20几款小游戏

    今天分享一个有趣的 github 项目:https://github.com/kingser/free-python-games,通过该项目,我们只需一行代码即可玩 20 几款小游戏,下面具体来看一下 ...

  6. Python零基础速成班-第11讲-Python日志Logging,小游戏设计game of life

    Python零基础速成班-第11讲-Python日志Logging,小游戏设计game of life 学习目标 Python日志Logging 小游戏设计game of life 课后作业(2必做) ...

  7. JS实现细胞自动机小游戏

    JS实现细胞自动机小游戏 什么是细胞自动机 细胞自动机游戏规则 JS代码实现 什么是细胞自动机 细胞自动机(Cellular automaton,CA) ,又称元胞自动机,是一种时间.空间.状态都离散 ...

  8. 一口气用 Python 写了13个小游戏,摸鱼达人!

    来源 | Python小二 1.吃金币 源码分享: import os import cfg import sys import pygame import random from modules i ...

  9. 利用Python基础代码语句,实现2G时代文字小游戏,世界如此简单

    优质文章,第一时间送达! 相信许多80,90后都玩过2G时代的文字小游戏,它是来自QQ家园的专属回忆.偷菜,美味小镇,大乐斗,还有精武堂等等,虽然只是文字的输出,但是留给我们这一代的人的印象却是最深刻 ...

最新文章

  1. w3 html网页元素,HTML Object 元素
  2. class.getResourceAsStream与class.getClassLoader().getResourceAsStream区别
  3. MapReduce-流量统计求和-排序-JobMain代码和测试运行
  4. 一个简单好用的java增量更新工具
  5. Java中StringBuilder的清空方法比較
  6. 一文详解java中对JVM的深度解析、调优工具、垃圾回收
  7. 中科院,NASA日全食网络直播[多个观测点入口]
  8. Kafka消费者组内各消费者分区分配
  9. MyEclipse中Hibernate+C3P0连接池配置
  10. Linux检查当前运行级别
  11. c++字符串加密_【网络爬虫教学】快速定位拼多多加密算法入口(四)
  12. 判断是否为回文字符串
  13. 添加透明FLASH和FLASH大全
  14. Java工具集-农历日期工具类
  15. c4droid语言字体颜色,c4droid界面与菜单基础教程 | 坐倚北风
  16. 连接问题:ORA-3136:inbound connection timed out
  17. 2 snippets vue 修改配置_VSCode 自定义Vue snippets, 快速生成Vue模板
  18. springboot考研规划系统 毕业设计-附源码541230
  19. 【数字图像处理】秒懂傅里叶变换,仅需此文
  20. 同时拿到网易和微信的offer!!他是怎么做到的?

热门文章

  1. windows怎么禁用usb
  2. 人大金仓解决授权文件license过期问题
  3. 百度API调用失败解决方法
  4. PHP SAPI(FCGI)个人整理
  5. 信息学奥赛一本通:1157:哥德巴赫猜想
  6. 完爆面试官!java工程师成神之路pdf
  7. qt里面kits套件选择
  8. linux pe启动u盘启动盘制作工具,BelenPE U盘启动盘制作工具14393 x64(2017.09.05)
  9. CTF常见编码及加解密(超全)
  10. iOS-直播的推流与拉流框架