C++ C++;如何编写一个相互竞争的游戏(共享记忆)
我们需要用玩家a(可能是通过输入,但为了简单起见,只能使用自动代码)和玩家B编写一个游戏 A和B位于共享阵列上C++ C++;如何编写一个相互竞争的游戏(共享记忆),c++,memory-management,parallel-processing,C++,Memory Management,Parallel Processing,我们需要用玩家a(可能是通过输入,但为了简单起见,只能使用自动代码)和玩家B编写一个游戏 A和B位于共享阵列上 int Map[100][100] 一种方法是编写顺序代码,这一点都不有趣。特别是,使用键盘输入时,可能会出现“卡住”和“漏击” 充分考虑计算能力和同步更新的一种方法是对播放器A和播放器B使用并行处理,例如while循环中的并行for循环或并行for循环中的while循环 然而,这带来了另一个关于上述共享内存使用的问题。解决这个问题的一种方法是使用fstream设置更长的延迟时间,并
int Map[100][100]
一种方法是编写顺序代码,这一点都不有趣。特别是,使用键盘输入时,可能会出现“卡住”和“漏击”
充分考虑计算能力和同步更新的一种方法是对播放器A和播放器B使用并行处理,例如while循环中的并行for循环或并行for循环中的while循环
然而,这带来了另一个关于上述共享内存使用的问题。解决这个问题的一种方法是使用fstream设置更长的延迟时间,并对磁盘进行写入和读取。但这显然会导致麻烦和可能的崩溃,以及计算效率的延迟。(如果同时访问内存,阵列引用是否也会导致问题?或者CPU内存桥的硬件设计是否考虑了这一点?)
如何使用共享内存/阵列编写一个相互竞争的并行游戏
sudo语言:
player_script(indices, ){while(condition){}}
main(){
parallel_for(ix){player_script(ix, );}
}
你是说“并行过程”吗?如果是这样,您真的想要访问共享内存区域的单独进程,还是一个具有多个线程的单个进程(根据定义,它们共享相同的内存空间)就足够了?请提供一个在此数组上执行的计算示例。哪个进程写什么,为什么?什么时候读什么?照目前的情况,这个问题是不可能回答的