How/where 实现随机函数
How/where to implement a randomized function
我在 python 中制作了 2048,我在游戏的任何部分都没有遇到任何问题,除了在每个用户轮到之后初始化下一个随机块。创建执行此操作的函数很容易,只需要随机更改块条目数组中的一个条目。我遇到的问题是它是一个随机函数,并且处于(游戏)循环中。这意味着它不断被调用,并不断给出不同的输出,这意味着它在应该只更改一次数组时不断更改数组。游戏循环本身贴在下面,应该是不言自明的。我关心的函数是 addTile() 函数。我想过跟踪它何时进出 if 语句,或者可能将随机函数的输出存储在某处,但这似乎不起作用。我怎样才能在需要的时候有选择地调用这个函数呢?
while not done:
screen.fill((0,0,0))
board()
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = 1
pressed = pygame.key.get_pressed()
if pressed[pygame.K_UP]:
state = 1
if pressed[pygame.K_DOWN]:
state = 2
if pressed[pygame.K_LEFT]:
state = 3
if pressed[pygame.K_RIGHT]:
state = 4
if state == 0:
tiles(positions)
elif state == 1:
positions = addTile(positions)
positions = up(positions)
tiles(positions)
elif state == 2:
positions = down(positions)
tiles(positions)
elif state == 3:
positions = left(positions)
tiles(positions)
elif state == 4:
positions = right(positions)
tiles(positions)
pygame.display.flip()
clock.tick(60)
你的 state
仍然是 1
即使在你处理了按键之后。在处理按键后,您应该将 state
设置回 0
。
我在 python 中制作了 2048,我在游戏的任何部分都没有遇到任何问题,除了在每个用户轮到之后初始化下一个随机块。创建执行此操作的函数很容易,只需要随机更改块条目数组中的一个条目。我遇到的问题是它是一个随机函数,并且处于(游戏)循环中。这意味着它不断被调用,并不断给出不同的输出,这意味着它在应该只更改一次数组时不断更改数组。游戏循环本身贴在下面,应该是不言自明的。我关心的函数是 addTile() 函数。我想过跟踪它何时进出 if 语句,或者可能将随机函数的输出存储在某处,但这似乎不起作用。我怎样才能在需要的时候有选择地调用这个函数呢?
while not done:
screen.fill((0,0,0))
board()
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = 1
pressed = pygame.key.get_pressed()
if pressed[pygame.K_UP]:
state = 1
if pressed[pygame.K_DOWN]:
state = 2
if pressed[pygame.K_LEFT]:
state = 3
if pressed[pygame.K_RIGHT]:
state = 4
if state == 0:
tiles(positions)
elif state == 1:
positions = addTile(positions)
positions = up(positions)
tiles(positions)
elif state == 2:
positions = down(positions)
tiles(positions)
elif state == 3:
positions = left(positions)
tiles(positions)
elif state == 4:
positions = right(positions)
tiles(positions)
pygame.display.flip()
clock.tick(60)
你的 state
仍然是 1
即使在你处理了按键之后。在处理按键后,您应该将 state
设置回 0
。