【发布时间】:2010-05-19 08:03:27
【问题描述】:
所以我只是想就我必须为编程课程构建的游戏的整体结构获得一些意见。
基本上 - 我正在为战舰游戏构建两个程序 - 一个客户端和一个服务器。我已经编写了玩战舰游戏的实际程序。我编写的程序是读取地图和规则文件的地方,用户试图猜测船只的位置,直到他们沉没所有船只。
对于这个新程序 - 服务器必须允许两个人使用战舰游戏互相对抗。客户端使用游戏名称连接到游戏,一旦游戏接收到两个客户端,它就可以开始了。我们需要在本地机器上使用 TCP 在服务器和客户端之间进行通信,以及至少在服务器中的线程。
这就是我的想法..
一旦客户加入 - 检查他们想要连接的游戏。如果是新游戏 - 为该游戏创建一个新线程并为第一个客户端提供套接字描述符。否则,如果游戏中已经有一个人,则提醒新参与者的游戏线程,它可以开始游戏。
当游戏开始时 - 游戏线程必须再生成两个线程。每个玩家都有一个战舰游戏实例。每个玩家的实例将是他们的船只所在的位置。然后该线程将依次侦听来自每个客户端的输入,并将该信息传递给相应的游戏。
这个解释正确吗?每个正在运行的游戏我需要 3 个线程吗?另外,是否可以在线程中使用 exec() 来运行新的战舰实例,然后使用线程将信息传递给该实例的标准输入(并获取标准输出)?
如果我对任何事情模糊不清,请告诉我,我会澄清。非常感谢您的帮助!
【问题讨论】:
-
@Tadeusz A. Kadlubowski:这是一堆模糊的问题,但它们绝对是真实的。
-
抱歉,我并没有真正考虑一个明确的问题。我们可以说我的问题是:我的解释是否有效还是包含一些问题?
标签: c networking multithreading command-line-interface