gpt4 book ai didi

process - 需要帮助将 time.sleep 与 python 3 中的多处理结合起来

转载 作者:行者123 更新时间:2023-12-02 17:00:14 28 4
gpt4 key购买 nike

使用 python 3 制作回合制游戏。我想要 2 个角色(敌人和敌人)进行攻击,根据随机+速度暂停,如果他们还活着,则再次攻击。

我遇到的问题是 time.sleep 冻​​结了两个模块,而不是 1 个或另一个。有什么建议可以使这项工作有效进行吗?

from multiprocessing import Process
import time
import random

def timing1():
speed=60#SPEED IS NORMALLY A KEY FROM LIST, USING 60 FOR EXAMPLE
sleeptime=36/((random.randint(1,20)+speed)/5)
print (sleeptime)
time.sleep(sleeptime)
input('HERO ACTION')

def timing2():
speed=45
sleeptime=36/((random.randint(1,20)+speed)/5)
print (sleeptime)
time.sleep(sleeptime)
input('FOE ACTION')

if __name__ == '__main__':
p1=Process(target=timing1)
p1.start()
p2=Process(target=timing2)
p2.start()
p1.join()
p2.join()

最佳答案

转一圈后,进程会在代码中退出。您的主进程通过调用 .join() 等待两个进程退出,即 time.sleep() 不会卡住其他进程。

timing*() 函数顶部添加 while True: 以进行多次移动。

这里不需要多个进程。您可以使用线程甚至单个线程来实现轮流。

关于process - 需要帮助将 time.sleep 与 python 3 中的多处理结合起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13262575/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com