作为一名IT学生,我已经接受了制作Connect Four游戏的任务。 我的任务是编写一个简单的c#web服务器来监听http请求,这样两个玩家可以互相对战,一个是c#c形式,一个是网站。
但我对这样的事情是如何运作感到困惑。我们将拥有一个Web客户端,它只是游戏的设计,并将从c#代码中获取它的行为和数据。 c#服务器应该使用httpListener,httpListenerrequest和httpListenerContext类。
我不确定如何做这件事。任何帮助都会受到赞赏,如何开始这项任务,因为我不清楚要完成它。
问候, Durneztj
答案 0 :(得分:1)
您需要六个项目
1:winforms - 连接4个客户端
2:网络应用程序 - 连接4个客户端
3:winforms - 连接4服务器(对于额外的点,使这成为一个Windows服务或web api项目)
4:类库 - 连接四个游戏逻辑和模型
5:4个测试项目
6:class lib - 连接到3的客户端代码
首先执行类lib。将所有模型和游戏逻辑放在这里,展示一个单独的类,其中包含启动游戏的方法,如果有人获胜,则进行移动和锻炼。为这个类创建一个接口。
在测试项目中编写测试以确保您拥有正确的基本游戏逻辑,您可以开始游戏并进行移动等等一切正常运行
然后转到服务器。这应该引用类lib并且只处理http监听和响应等。你需要在这里对模型对象进行连接处理和反序列化,但实质上你只是暴露与类lib相同的方法< / p> 现在做六个。再次引用模型类lib并继承相同的接口,但这次不是开始游戏或使用游戏逻辑进行移动,而是连接到服务器并调用它的开始和游戏,移动等等你将再次拥有将响应反序列化为模型对象。
现在做1和2.这些都是相似的,因为它们将引用模型类lib和客户端代码lib。你当然会向用户呈现不同的板,但是当他们移动,开始游戏等你只需要调用客户端类lib中的方法,服务器就会执行逻辑并返回结果
加分使用async任务方法ON EVERYTHING
如果它不起作用,请为您的服务器编写集成测试。这些将节省你的时间来确定它的客户端或服务器是否有错误
另一个额外点提示,使用Microsoft Unity框架进行依赖注入