用于浏览器游戏客户端的 c# Web 服务器的概念
concept for c# web server for browser game client
作为一名IT专业的学生,我接到了制作四连胜游戏的任务。
我的任务是编写一个简单的 c# web 服务器来侦听 http 请求,这样 2 个玩家就可以互相对战,一个在 c#c 形式,一个在网站上。
但我对这样的事情如何运作感到困惑。我们将有一个 Web 客户端,它只是游戏的设计,并将从 C# 代码中获取它的行为和数据。 c# 服务器应该使用 httpListener、httpListenerrequest 和 httpListenerContext 类.
我不确定如何做这样的事情。任何有关如何开始此任务的帮助将不胜感激,因为我不清楚如何完成它。
问候,
杜内茨
您将需要六个项目
1: winforms - 连接 4 个客户端
2: Web 应用程序 - 连接 4 个客户端
3: winforms - connect 4 server (加分使其成为 windows 服务或 web api 项目)
4: class 库 - 连接四个游戏逻辑和模型
5: 测试项目 4
6: class lib - 连接到 3
的客户端代码
先做 class 库。将所有模型和游戏逻辑放在这里公开一个 class,其中包含开始游戏、移动和计算是否有人获胜的方法。为此 class.
创建一个界面
在测试项目中编写测试以确保您拥有正确的基本游戏逻辑,您可以开始游戏并进行移动等一切正常
然后转到服务器。这应该引用 class 库并只处理 http 侦听和响应等。您需要将模型对象的连接处理和反序列化放在这里,但本质上您只是公开与 class 库
现在做六个。再次引用模型 class 库并继承相同的接口,但这次不是开始游戏或使用游戏逻辑移动,而是连接到服务器并调用它的开始和游戏,移动等。您将不得不再次将响应反序列化为模型对象。
现在执行 1 和 2。它们的相似之处在于它们将引用模型 class 库和客户端代码库。当然,您将不得不以不同的方式向用户展示棋盘,但是当他们采取行动、开始游戏等时,您只需调用客户端 class 库中的方法,服务器将执行逻辑并 return 结果
为了加分,在任何事情上都使用异步任务方法
如果它不起作用,请为您的服务器编写集成测试。这些将节省您数小时的工作时间,看看是客户端还是服务器有问题
另外一个小技巧,使用Microsoft unity framework进行依赖注入
作为一名IT专业的学生,我接到了制作四连胜游戏的任务。 我的任务是编写一个简单的 c# web 服务器来侦听 http 请求,这样 2 个玩家就可以互相对战,一个在 c#c 形式,一个在网站上。
但我对这样的事情如何运作感到困惑。我们将有一个 Web 客户端,它只是游戏的设计,并将从 C# 代码中获取它的行为和数据。 c# 服务器应该使用 httpListener、httpListenerrequest 和 httpListenerContext 类.
我不确定如何做这样的事情。任何有关如何开始此任务的帮助将不胜感激,因为我不清楚如何完成它。
问候, 杜内茨
您将需要六个项目
1: winforms - 连接 4 个客户端
2: Web 应用程序 - 连接 4 个客户端
3: winforms - connect 4 server (加分使其成为 windows 服务或 web api 项目)
4: class 库 - 连接四个游戏逻辑和模型
5: 测试项目 4
6: class lib - 连接到 3
的客户端代码先做 class 库。将所有模型和游戏逻辑放在这里公开一个 class,其中包含开始游戏、移动和计算是否有人获胜的方法。为此 class.
创建一个界面在测试项目中编写测试以确保您拥有正确的基本游戏逻辑,您可以开始游戏并进行移动等一切正常
然后转到服务器。这应该引用 class 库并只处理 http 侦听和响应等。您需要将模型对象的连接处理和反序列化放在这里,但本质上您只是公开与 class 库
现在做六个。再次引用模型 class 库并继承相同的接口,但这次不是开始游戏或使用游戏逻辑移动,而是连接到服务器并调用它的开始和游戏,移动等。您将不得不再次将响应反序列化为模型对象。
现在执行 1 和 2。它们的相似之处在于它们将引用模型 class 库和客户端代码库。当然,您将不得不以不同的方式向用户展示棋盘,但是当他们采取行动、开始游戏等时,您只需调用客户端 class 库中的方法,服务器将执行逻辑并 return 结果
为了加分,在任何事情上都使用异步任务方法
如果它不起作用,请为您的服务器编写集成测试。这些将节省您数小时的工作时间,看看是客户端还是服务器有问题
另外一个小技巧,使用Microsoft unity framework进行依赖注入