所以我只想对我必须为编程类构建的游戏的整体结构有所了解。
基本上 - 我正在构建两个程序 - 战舰游戏的客户端和服务器。我已经编写了实战战舰游戏的实际程序。我写的程序是读入地图和规则文件的地方,用户试图猜测船只的位置,直到它们沉没所有的船只。
对于这个新程序 - 服务器必须允许两个人组使用战舰游戏相互对抗。客户端使用游戏名称连接到游戏,一旦游戏收到两个客户端,它就可以开始了。我们需要在本地计算机上使用TCP在服务器和客户端之间进行通信,以及至少在服务器上进行通信。
这就是我的想法..
客户加入后 - 检查他们想要连接的游戏。如果它是一个新游戏 - 为该游戏创建一个新线程并为第一个客户端提供套接字描述符。否则,如果游戏中已经有一个人,请提醒新参与者的游戏线程并开始游戏。
当游戏开始时 - 游戏线程将不得不产生两个线程......每个玩家的战舰游戏的一个实例。每个玩家的实例将是他们的船只所在的位置。然后,该线程将依次侦听来自每个客户端的输入,并将该信息传递到相应的游戏中。
这种解释是否正确?我每场比赛需要3个主题吗?而且,是否可以在线程中使用exec()来运行新的战舰实例,然后使用线程将信息传递给该实例的stdin(并获取stdout)?
如果我对任何事情一直朦胧,请告诉我,我会澄清。非常感谢您的任何帮助!
答案 0 :(得分:1)
我将使用与连接客户端一样多的线程,并仅将它们用于处理连接。游戏本身只是数据/对象,不需要特定的线程。