我有一个问题。我在玩pygame中的游戏“生命的游戏”。我有一个目标。我不知道如何给我的游戏添加无尽的能量场。你能帮帮我吗?添加,抱歉-我的英语很差(.i想在我的游戏中添加无尽的字段。堆栈溢出要求我添加一些txt。我不知道为什么
import pygame
import copy
class GameLife:
def __init__(self, width, height, left=10, top=10, cell_size=30):
self.width = width
self.height = height
self.board = [[0] * width for _ in range(height)]
self.set_view(left, top, cell_size)
self.pause = True
self.speed = 10
self.tick = 0
def set_view(self, left, top, cell_size):
self.left = left
self.top = top
self.cell_size = cell_size
def get_cell(self, pos):
if 0 < pos[0] - self.left < self.width * self.cell_size and 0 < pos[1] - self.top < self.height * self.cell_size:
return (pos[0] - self.left) // self.cell_size, (pos[1] - self.top) // self.cell_size
return None
def on_click(self, cell):
self.board[cell[1]][cell[0]] = (self.board[cell[1]][cell[0]] + 1) % 2
def get_click(self, mouse_pos):
cell = self.get_cell(mouse_pos)
if cell and self.pause:
self.on_click(cell)
def render(self, scr):
for x in range(self.width):
for y in range(self.height):
pygame.draw.rect(scr, 'white',
(x * self.cell_size + self.left, y * self.cell_size + self.top,
self.cell_size, self.cell_size), 1)
if self.board[y][x]:
pygame.draw.rect(scr, pygame.Color('green'),
(x * self.cell_size + self.left + 1, y * self.cell_size + self.top + 1,
self.cell_size - 2, self.cell_size - 2))
def change_status_pause(self):
self.pause = not self.pause
def next_move(self):
if not self.pause and self.speed == self.tick:
neighbors = [[0]*self.width for _ in range(self.height)]
newboard = [[0] * self.width for _ in range(self.height)]
for x in range(self.width):
for y in range(self.height):
amount_neighbors = 0
for xx in range(x -1, x + 2):
for yy in range(y-1, y + 2):
if 0 < xx < self.width and 0 < yy < self.height and self.board[yy][xx]:
amount_neighbors += 1
neighbors[y][x] = amount_neighbors - self.board[y][x]
if neighbors[y][x] == 3 or neighbors[y][x] == 2 and self.board[y][x]:
newboard[y][x] = 1
self.board = copy.deepcopy(newboard)
def addtick(self):
self.tick += 1
if self.tick > self.speed:
self.tick = 0
pygame.init()
size = width, height = 820, 420
screen = pygame.display.set_mode(size)
cell_size = 20
top, left = 20, 10
board = GameLife((width - left * 2) // cell_size, (height - 2 * top) // cell_size, left, top, cell_size)
clock = pygame.time.Clock()
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if event.type == pygame.MOUSEBUTTONDOWN:
board.get_click(event.pos)
if event.type == pygame.KEYDOWN and pygame.key.get_pressed()[pygame.K_SPACE]:
board.change_status_pause()
board.next_move()
board.addtick()
screen.fill((0, 0, 0))
board.render(screen)
pygame.display.flip()
clock.tick(50)
pygame.quit()
在本章中,我们考虑二维细胞自动机,特别是 John Conway 的生命游戏(GoL)。 像上一章中的一些 CA 一样,GoL 遵循简单的规则并产生令人惊讶的复杂行为。 就像沃尔夫勒姆的规则 110 一样,事实证明 GoL 是通用的;也就是说,至少在理论上它可以计算任何可计算的函数。 GoL 的复杂行为引发了科学哲学问题,特别是科学现实主义和工具主义的相关问题。 我讨论这些问题并提出扩展阅读的建议
我最近已经解决了名为“康威的人生游戏”的有趣的黑客问题问题陈述如下: 《生命的游戏》是一款由英国数学家约翰·霍顿·康威设计的细胞自动机游戏。最初的游戏是零人游戏。它的发展完全取决于它的投入。 生命游戏在2D网格上进行。网格中的每个单元格将处于两种可能状态之一, 活死人细胞的出生或死亡是基于以下规则。 如果一个细胞正好被3个活细胞包围,它就会从死细胞转换为活细胞。如果一个细胞被2或3个活细胞包围,它
我在试着解决人生游戏的问题。游戏规则是: 任何少于两个活邻居的活细胞都会死亡,就好像是由于人口不足造成的一样。任何有两个或三个活邻居的活细胞都会延续到下一代。任何有三个以上邻居的活细胞都会死亡,就像过度拥挤一样。任何有三个活邻居的死细胞都会变成活细胞,就像通过繁殖一样。 我在各种图案上测试了我的作品,如下图所示的方块、船、眨眼器和蟾蜍图案。但我的代码并没有给出蟾蜍模式的预期输出,如图所示。。。尽管
我将如何在无休止的跑步游戏中使用精灵套件物理? 一个无尽的跑步者通过保持玩家静止,但以设定的速度移动背景和所有其他物体来假装运动。 但是,我想模拟物理。 如果我让我的播放器随着物理引擎移动,通过播放器从原始位置的位移来移动背景,然后将播放器移动回它的原始位置,会怎么样? 这样会不会光滑好看?如果是这样的话,那么我应该使用什么样的sprite kit方法来避免向用户显示视觉错误呢? 正确的解决方案是
我的问题很难描述,所以我会尽可能简洁地解释。 在康威的《生活游戏》中,假设我有一张这样的地图: 与其在每个单元格上循环,包括不可能相关的死单元格,不如让我将第0代中的每个活单元格放在
钥匙斗篷中有2个领域:主人和自定义。两个都有admin用户。 自定义领域管理添加新用户new_admin并通过管理控制台为其分配角色admin。