Life Game
本文最后更新于 409 天前,其中的信息可能已经有所发展或是发生改变。

By Chatgpt

Life Game

import numpy as np
import matplotlib.animation
import matplotlib.pyplot as plt


def game_of_life(Z):
    # 计算周围8格的和
    N = (Z[0:-2, 0:-2] + Z[0:-2, 1:-1] + Z[0:-2, 2:] +
         Z[1:-1, 0:-2] + Z[1:-1, 2:] +
         Z[2:, 0:-2] + Z[2:, 1:-1] + Z[2:, 2:])

    # 规则 1 或规则 3
    birth = (N == 3) & (Z[1:-1, 1:-1] == 0)
    survive = ((N == 2) | (N == 3)) & (Z[1:-1, 1:-1] == 1)

    # 生成新的数组并返回
    Z[...] = 0
    Z[1:-1, 1:-1][birth | survive] = 1

    return Z


# 定义一些初始化的数据集合
rabbits = np.array([[0., 0., 0., 0., 0., 0., 0., 0.],
                    [0., 1., 1., 1., 1., 1., 1., 0.],
                    [0., 1., 1., 1., 1., 1., 1., 0.],
                    [0., 0., 0., 0., 0., 0., 0., 0.]])

glider = np.array([[0, 0, 0],
                   [0, 0, 255],
                   [255, 255, 255]]) / 255


def plot_game(Z):
    plt.imshow(Z, cmap=plt.cm.gray_r, interpolation='nearest')
    plt.xticks([]), plt.yticks([])  # 隐藏坐标轴


# 定义一个函数,用于更新生命游戏的图像
def update_game(frame_number, img, Z):
    newZ = game_of_life(Z)
    img.set_data(newZ)

    return img,


np.random.seed(0)  # 设置随机数种子,以便复现相同的随机数序列。
Z = np.random.randint(0, 2, size=(100, 100))  # 生成一个100*100的随机整形数组。

fig1 = plt.figure()  # 创建一个图形对象。

img = plt.imshow(Z, cmap=plt.cm.gray_r, interpolation='nearest')

anim = matplotlib.animation.FuncAnimation(
    fig1, update_game, fargs=(
        img, Z), frames=10, interval=200)

plt.show()
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇