一. 实验要求
参考教材第五章第2个游戏程序,按以下要求进行改编,要求如下:
1)将游戏改为双方对弈,而不是系统自动下棋;
2)修改游戏规则,如五子棋的游戏规则;
3)同步改异步;
二. 设计思路
1.首先,本次实验主要是修改性的实验,所以思路的第一步,就是看懂原有代码的结构,并对新代码的结构进行分析,分析如下
(1)服务器负责提供多个游戏桌的服务,可选择人数限制(1~200),游戏桌限制(1~100)
(2)服务器有“启动服务”和“停止服务”的功能,只有在启动服务之后才允许客户端连接游戏
(3)客户端登陆之后可点击游戏厅有空位的桌子进入游戏桌,每个游戏桌可容纳两名玩家,同一桌的双方点击准备就绪之后,游戏才开始。
(4)如果有一方先让五子连珠情况(行、列、对角线)出现,便算胜利,游戏结束。
(5)同一桌的玩家可以聊天。
2.然后,正式开始编码,首先是同步改异步:
服务器端异步接收客户端连接:
/// <summary>接收客户端连接</summary>
private void ListenClientConnect()
{
TcpClient newClient = null;
while (true)
{
ListenClientDelegate d = new ListenClientDelegate(ListenClient);
IAsyncResult result = d.BeginInvoke(out newClient, null, null);
while (result.IsCompleted == false)
{