import pygame, sys, time, random width=102 #面板的宽度(外围有一层墙) high=102 #面板的高度(外围有一层墙) size=6 #设置绘制的单方格大小 def initialization(arr): #初始化 for i in range(high): for j in range(width): ran=random.random() if ran>0.9: arr[i][j]=1 else: pass return arr def nextmultiply(arr): #下一代繁衍 newarr = [([0] * width) for n in range(high)] for i in range(high): for j in range(width): num=0 if (i==0 or i==high-1) or (j==0 or j==width-1): newarr[i][j]=0 else: num=arr[i-1][j-1]+arr[i-1][j]+arr[i-1][j+1]+arr[i][j-1]+arr[i][j+1]+arr[i+1][j-1]+arr[i+1][j]+arr[i+1][j+1] if arr[i][j]==0: #若原细胞为死亡状态 if num==3: newarr[i][j]=1 else: #若原细胞为存活状态 if num==2 or num==3: newarr[i][j]=1 else: newarr[i][j]=0 return newarr if name == 'main': color_white = pygame.Color(255, 255, 255) color_LightSkyBlue = pygame.Color(135,206,250) color_black = pygame.Color(0, 0, 0) pygame.init() screen = pygame.display.set_mode((widthsize, highsize)) screen.fill(color_white) pygame.display.set_caption("生命游戏Game of Life") arr = [([0] * width) for i in range(high)] # 创建一个二维数组 arr=initialization(arr) while(True): screen.fill(color_white) time.sleep(0.5) for i in range(high): for j in range(width): if arr[i][j]==1: pygame.draw.rect(screen, color_black, (i * size, j * size, size, size)) elif (i==0 or i==high-1) or (j==0 or j==width-1): pygame.draw.rect(screen, color_LightSkyBlue, (i * size, j * size, size, size)) else: pass for event in pygame.event.get(): # 监听器 if event.type == pygame.QUIT: sys.exit() arr = nextmultiply(arr) pygame.display.update()1.3中各个函数和类输入、输出和功能
时间: 2024-03-31 15:33:34 浏览: 128
这段代码是 Python 实现的生命游戏,其中使用了 Pygame 库来进行图形化展示。下面是各个函数和类的输入、输出和功能:
1. `initialization(arr)` 函数:
- 输入:一个二维列表 `arr`,代表游戏面板的状态。
- 输出:无。
- 功能:将 `arr` 中的每个元素随机初始化为 0 或 1,其中 1 表示该位置上有细胞,0 表示该位置上没有细胞。
2. `nextmultiply(arr)` 函数:
- 输入:一个二维列表 `arr`,代表当前游戏面板的状态。
- 输出:一个新的二维列表,代表下一代细胞的状态。
- 功能:根据生命游戏的规则计算下一代细胞的状态,并返回一个新的二维列表。
3. `pygame.init()` 函数:
- 输入:无。
- 输出:无。
- 功能:初始化 Pygame 库,使其可以在程序中使用。
4. `pygame.display.set_mode((width, height))` 函数:
- 输入:一个二元组 `(width, height)`,代表窗口的宽度和高度。
- 输出:一个 Pygame 窗口对象。
- 功能:创建一个 Pygame 窗口,并返回该窗口对象。
5. `pygame.display.set_caption("生命游戏Game of Life")` 函数:
- 输入:一个字符串,代表窗口的标题。
- 输出:无。
- 功能:设置 Pygame 窗口的标题。
6. `pygame.draw.rect(screen, color, rect)` 函数:
- 输入:`screen` 为 Pygame 窗口对象,`color` 为 Pygame 颜色对象,`rect` 为一个四元组 `(x, y, width, height)`,代表一个矩形的位置和大小。
- 输出:无。
- 功能:在 Pygame 窗口上绘制一个矩形,颜色为 `color`,位置和大小由 `rect` 指定。
7. `pygame.event.get()` 函数:
- 输入:无。
- 输出:一个事件列表。
- 功能:获取当前 Pygame 窗口中发生的事件列表。
8. `sys.exit()` 函数:
- 输入:无。
- 输出:无。
- 功能:退出程序。
阅读全文