首页

C# Winform网络围棋(可对战)

c#

2021-5-10

程序使用VS2015,.NET4.5,.NET 2.0以上都可以编译使用,无第三方组件,可生成32、64位。Socket网络传输,可以对战、旁观,围棋走棋规则基本全面,可直接对杀。


围棋规则算法写代码太麻烦,直接参考了GreatVerveGo(是单机的)算法,感谢作者。


程序包含客户端和服务端2各部分。图片文件在\goo\bin\Debug\Res里面

1、先启动服务端 goServer.exe

服务端:

地址为IPAddress[] addrIP = Dns.GetHostAddresses(“192.168.0.104”); //ip地址

端口51888,

根据你的需要进行修改;


进入服务端后点击“开始监听”。

服务端定义:


//连接的用户


System.Collections.Generic.List<User> userList = new List<User>();


//监听端口


private int port = 51888;


//走棋判断


int[] GameRoom = new int[255]; //房间号


int[] GameUser = new int[255]; //房间人数;


int[] GameStat = new int[255];  //走棋状态:1-等待、2-准备、3-开始、4-旁观


int[] GameReday = new int[255]; //走棋准备状态


//旁观 获得走棋信息


string lookuser = “”;


2、打开客户端 goo.exe


这里直接设置了进入到房间“0”,进入后显示“等待其他人加入”,先进房的执黑旗,按钮不可用;


当有第2个人进入后,执白棋,按钮显示“准备”;


双方都点击“准备”后,进入对局;


后面再有人进入为旁观者,能看见双方对局信息。房间都是“0”。


地址:client = new TcpClient(“192.168.0.104”, 51888); //定义服务器端ip地址和端口,与服务器端定义要一致


根据你的需要进行修改;


客户端定义:


private int[,] Qpan = new int[24, 24]; //棋盘数组


private string SendLook = null; //发送给旁观者的对局信息


private const int Qz_Null = 0; //没有棋子


private const int Qz_Black = 1; //黑子


private const int Qz_White = 2; //白子


private const int Max_Qpan = 23; //棋盘最大路数


private int[,] TmpA_Qpan = new int[24, 24]; //临时存储棋盘


private int[,] TmpB_Qpan = new int[24, 24];//临时存储棋盘


private int[,] Tmp_Qpan = new int[24, 24];//临时存储棋盘


private int Current_Go = 1; //当前棋子颜色


private int Qpan_Count = 19; //当前棋盘路数


private int Rame; //气数


private int Die_Num; //死子数


private bool _Attack = false; //是否打劫


private int Attack_X = 0; //打劫位置


private int Attack_Y = 0; //打劫位置


private Panel g_Hei; //鼠标移动 黑块


private Panel g_Bai; //鼠标移动 白块


private Panel Fit_Hei; //最后落子标记 黑


private Panel Fit_Bai; //最后落子标记 白


private Panel[,] QzH = new Panel[20,20]; //黑棋子


private Panel[,] QzB = new Panel[20,20]; //白棋子


int LastFitX = 0; //给旁观最后落子位置


int LastFitY = 0; //给旁观最后落子位置


int LastHB = 0; //给旁观最后落子颜色


Point Mouseoff; //鼠标位置


bool go_play = false; //能否走棋


int Select_Qzi = 0; //是黑还是白,1-黑,2-白


int ReceiveHB =1; //接收到的棋子颜色

函数:


//初始化棋盘、棋子


private void InitQpan()


//判断该谁走棋


private void Judge_HB()


//显示棋子


private void ShowQz(int i, int j, int QzHB)


//重置棋盘棋子


private void Rest_Qpan()


//备份棋盘棋子


private void Qpan_Backup()


//恢复棋盘棋子


private void Qpan_Restore()


//刷新棋盘棋子


private void Qpan_Refresh(int QzHB)


//计算棋子的气数底层函数


private void Base_Calc(int i, int j, int QzHB)


//计算气数


private void Calc_Ream(int m, int n, int QzHB)


//计算气数接口


private void Calc_Interface(int QzHB)


//落子处理,判断打劫、打n还1、吃掉对方棋子


private void Falling(int xx, int yy)


//设置打劫


private void Set_Attack(int i, int j)


//最后落子标记


private void Fit_Flag(int xx, int yy)


//旁观者最后落子标记


private void LookFit_Flag(int Qhb, int xx, int yy)


//对方走棋显示在己方并判断打劫、打n还1、吃掉对方棋子


private void Opp_Falling()

3、跨线程调用封装在CrossThreadCall.cs


4、时间有限,程序没有做计算胜负,没有做掉线处理。基本规则有了,其他的就是套接字变来变去,需要新功能自己添加。

只是一个初学练习,更多初学资料到我的博客http://www.cnblogs.com/qiaoke/



资源下载此资源下载价格为3D币(VIP免费),请先
资源文件列表
goo/.vs/goo/v14/.suo , 45056
goo/app.config , 161
goo/bin/Debug/goo.exe , 30208
goo/bin/Debug/goo.exe.config , 161
goo/bin/Debug/goo.pdb , 46592
goo/bin/Debug/goo.vshost.exe , 22696
goo/bin/Debug/goo.vshost.exe.config , 161
goo/bin/Debug/goo.vshost.exe.manifest , 490
goo/bin/Debug/Res/bai.png , 3330
goo/bin/Debug/Res/close.png , 235
goo/bin/Debug/Res/fit_bai.png , 18643
goo/bin/Debug/Res/fit_hei.png , 18815
goo/bin/Debug/Res/g-bai.png , 136
goo/bin/Debug/Res/g-hei.png , 126
goo/bin/Debug/Res/hei.png , 3181
goo/bin/Debug/Res/logo.png , 20814
goo/bin/Debug/Res/pan.png , 178372
goo/CrossThreadCall.cs , 515
goo/Form1.cs , 33025
goo/Form1.Designer.cs , 6767
goo/Form1.resx , 15353
goo/goo.csproj , 3945
goo/goo.sln , 972
goo/obj/Debug/DesignTimeResolveAssemblyReferences.cache , 1748
goo/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache , 6904
goo/obj/Debug/goo.csproj.FileListAbsolute.txt , 738
goo/obj/Debug/goo.csproj.GenerateResource.Cache , 1012
goo/obj/Debug/goo.csprojResolveAssemblyReference.cache , 2210
goo/obj/Debug/goo.exe , 30208
goo/obj/Debug/goo.Form1.resources , 6656
goo/obj/Debug/goo.pdb , 46592
goo/obj/Debug/goo.Properties.Resources.resources , 180
goo/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs , 0
goo/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs , 0
goo/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs , 0
goo/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll , 3584
goo/Program.cs , 484
goo/Properties/AssemblyInfo.cs , 1314
goo/Properties/Resources.Designer.cs , 2846
goo/Properties/Resources.resx , 5612
goo/Properties/Settings.Designer.cs , 1103
goo/Properties/Settings.settings , 249
go_Server/.vs/ChatServer/v14/.suo , 59392
go_Server/.vs/goServer/v14/.suo , 43008
go_Server/ChatServer.suo , 16896
go_Server/goServer/app.config , 161
go_Server/goServer/bin/Debug/goServer.exe , 15360
go_Server/goServer/bin/Debug/goServer.exe.config , 161
go_Server/goServer/bin/Debug/goServer.pdb , 28160
go_Server/goServer/bin/Debug/goServer.vshost.exe , 22696
go_Server/goServer/bin/Debug/goServer.vshost.exe.config , 161
go_Server/goServer/bin/Debug/goServer.vshost.exe.manifest , 490
go_Server/goServer/FormServer.cs , 14393
go_Server/goServer/FormServer.cs.bak , 14272
go_Server/goServer/FormServer.designer.cs , 7162
go_Server/goServer/FormServer.resx , 5814
go_Server/goServer/goServer.csproj , 3733
go_Server/goServer/obj/Debug/ChatServer.csproj.FileListAbsolute.txt , 533
go_Server/goServer/obj/Debug/ChatServer.csproj.GenerateResource.Cache , 1017
go_Server/goServer/obj/Debug/ChatServer.exe , 15872
go_Server/goServer/obj/Debug/ChatServer.FormServer.resources , 180
go_Server/goServer/obj/Debug/ChatServer.pdb , 28160
go_Server/goServer/obj/Debug/ChatServer.Properties.Resources.resources , 180
go_Server/goServer/obj/Debug/DesignTimeResolveAssemblyReferences.cache , 1674
go_Server/goServer/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache , 6625
go_Server/goServer/obj/Debug/goServer.csproj.FileListAbsolute.txt , 1022
go_Server/goServer/obj/Debug/goServer.csproj.GenerateResource.Cache , 1017
go_Server/goServer/obj/Debug/goServer.exe , 15360
go_Server/goServer/obj/Debug/goServer.pdb , 28160
go_Server/goServer/obj/Debug/goServer.Properties.Resources.resources , 180
go_Server/goServer/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs , 0
go_Server/goServer/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs , 0
go_Server/goServer/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs , 0
go_Server/goServer/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll , 3584
go_Server/goServer/Program.cs , 474
go_Server/goServer/Properties/AssemblyInfo.cs , 1176
go_Server/goServer/Properties/Resources.Designer.cs , 2856
go_Server/goServer/Properties/Resources.resx , 5612
go_Server/goServer/Properties/Settings.Designer.cs , 1108
go_Server/goServer/Properties/Settings.settings , 249
go_Server/goServer/User.cs , 506
go_Server/goServer.sln , 991
go_Server/goServer.sln.bak , 993
go_Server/UpgradeLog.htm , 41626
没有账号? 忘记密码?

社交账号快速登录