【发布时间】:2015-11-02 16:33:55
【问题描述】:
我迫切需要一些指导。我需要编写一个 Connect 4 的游戏程序,其中将应用线程并发编程。我需要自己学习并在一周内编写这样的程序。我目前不知道如何实现并发部分,以及我应该寻找哪些资源...希望您能对此有所了解...
【问题讨论】:
-
如果您正在执行 Connect 4 并且您需要线程,老实说,我对您在做什么一无所知。这样的游戏对计算的要求应该基本没有。查看事件循环模型。将线程用于像这样基本的事情会开创一个不好的先例,并将引导您进入指数级增长的复杂性而没有真正的收益。
-
我也不知道。那是教授给我们的,我们被告知要自己学习。我什至不知道要寻找什么资源。
-
第一次使用类似
std::queue的容器来推送需要注意的动作,并有一个处理这些动作的事件循环。根据需要定义您自己的事件基类和子类,例如用户交互或您拥有的东西。如需更深入的介绍,Game Engine Architecture 是您想要的书。 -
@tadman 我认为让“智能”电脑播放器成为线程很有意义。它模拟了两个人的游戏方式。他们会不断地考虑下一步行动——无论是在轮到他们的时候还是在他们等待对手的时候。这可以使用线程很好地模拟/结构化。然后主循环可以专注于处理游戏,即接收两个玩家的输入并显示结果。通过一些额外的课堂作业,可以轻松制作所有游戏组合,即人类与人类、计算机与计算机或计算机与人类。并与本地或远程播放器一起使用。
-
@StillLearning 我完全不能同意这一点。计算下一步的时间最多应该是一毫秒,在这里应用策略绝对是微不足道的。老实说,除了浪费 CPU 周期并造成巨大的复杂性之外,我真的不知道线程会在几秒钟内完成什么。
标签: c++ multithreading concurrency