userList=newList();//监听端口privateintport=51888;//走棋判断int[]GameRoom=newint[255];//房间号int[]GameUser=newint[255];//房间人数;int[]GameStat=newint[255]; //走棋状态:1-等待、2-准备、3-开始、4-旁观int[]GameReday=newint[255];//走棋准备状态//旁观获得走棋信息stringlookuser="";2、打开客户端goo.exe这里直接设置了进入到房间“0”,进入后显示“等待其他人加入”,先进房的执黑旗,按钮不可用;当有第2个人进入后,执白棋,按钮显示“准备”;双方都点击“准备”后,进入对局;后面再有人进入为旁观者,能看见双方对局信息。房间都是“0”。地址:client=newTcpClient("192.168.0.104",51888);//定义服务器端ip地址和端口,与服务器端定义要一致根据你的需要进行修改;客户端定义:privateint[,]Qpan=newint[24,24];//棋盘数组privatestringSendLook=null;//发送给旁观者的对局信息privateconstintQz_Null=0;//没有棋子privateconstintQz_Black=1;//黑子privateconstintQz_White=2;//白子privateconstintMax_Qpan=23;//棋盘最大路数privateint[,]TmpA_Qpan=newint[24,24];//临时存储棋盘privateint[,]TmpB_Qpan=newint[24,24];//临时存储棋盘privateint[,]Tmp_Qpan=newint[24,24];//临时存储棋盘privateintCurrent_Go=1;//当前棋子颜色privateintQpan_Count=19;//当前棋盘路数privateintRame;//气数privateintDie_Num;//死子数privatebool_Attack=false;//是否打劫privateintAttack_X=0;//打劫位置privateintAttack_Y=0;//打劫位置privatePanelg_Hei;//鼠标移动黑块privatePanelg_Bai;//鼠标移动白块privatePanelFit_Hei;//最后落子标记黑privatePanelFit_Bai;//最后落子标记白privatePanel[,]QzH=newPanel[20,20];//黑棋子privatePanel[,]QzB=newPanel[20,20];//白棋子intLastFitX=0;//给旁观最后落子位置intLastFitY=0;//给旁观最后落子位置intLastHB=0;//给旁观最后落子颜色PointMouseoff;//鼠标位置boolgo_play=false;//能否走棋intSelect_Qzi=0;//是黑还是白,1-黑,2-白intReceiveHB=1;//接收到的棋子颜色函数://初始化棋盘、棋子privatevoidInitQpan()//判断该谁走棋privatevoidJudge_HB()//显示棋子privatevoidShowQz(inti,intj,intQzHB)//重置棋盘棋子privatevoidRest_Qpan()//备份棋盘棋子privatevoidQpan_Backup()//恢复棋盘棋子privatevoidQpan_Restore()//刷新棋盘棋子privatevoidQpan_Refresh(intQzHB)//计算棋子的气数底层函数privatevoidBase_Calc(inti,intj,intQzHB)//计算气数privatevoidCalc_Ream(intm,intn,intQzHB)//计算气数接口privatevoidCalc_Interface(intQzHB)//落子处理,判断打劫、打n还1、吃掉对方棋子privatevoidFalling(intxx,intyy)//设置打劫privatevoidSet_Attack(inti,intj)//最后落子标记privatevoidFit_Flag(intxx,intyy)//旁观者最后落子标记privatevoidLookFit_Flag(intQhb,intxx,intyy)//对方走棋显示在己方并判断打劫、打n还1、吃掉对方棋子privatevoidOpp_Falling()3、跨线程调用封装在CrossThreadCall.cs4、时间有限,程序没有做计算胜负,没有做掉线处理。基本规则有了,其他的就是套接字变来变去,需要新功能自己添加。只是一个初学练习,更多初学资料到我的博客http://www.cnblogs.com/qiaoke/-IMDN开发者社群-imdn.cn">
userList=newList();//监听端口privateintport=51888;//走棋判断int[]GameRoom=newint[255];//房间号int[]GameUser=newint[255];//房间人数;int[]GameStat=newint[255]; //走棋状态:1-等待、2-准备、3-开始、4-旁观int[]GameReday=newint[255];//走棋准备状态//旁观获得走棋信息stringlookuser="";2、打开客户端goo.exe这里直接设置了进入到房间“0”,进入后显示“等待其他人加入”,先进房的执黑旗,按钮不可用;当有第2个人进入后,执白棋,按钮显示“准备”;双方都点击“准备”后,进入对局;后面再有人进入为旁观者,能看见双方对局信息。房间都是“0”。地址:client=newTcpClient("192.168.0.104",51888);//定义服务器端ip地址和端口,与服务器端定义要一致根据你的需要进行修改;客户端定义:privateint[,]Qpan=newint[24,24];//棋盘数组privatestringSendLook=null;//发送给旁观者的对局信息privateconstintQz_Null=0;//没有棋子privateconstintQz_Black=1;//黑子privateconstintQz_White=2;//白子privateconstintMax_Qpan=23;//棋盘最大路数privateint[,]TmpA_Qpan=newint[24,24];//临时存储棋盘privateint[,]TmpB_Qpan=newint[24,24];//临时存储棋盘privateint[,]Tmp_Qpan=newint[24,24];//临时存储棋盘privateintCurrent_Go=1;//当前棋子颜色privateintQpan_Count=19;//当前棋盘路数privateintRame;//气数privateintDie_Num;//死子数privatebool_Attack=false;//是否打劫privateintAttack_X=0;//打劫位置privateintAttack_Y=0;//打劫位置privatePanelg_Hei;//鼠标移动黑块privatePanelg_Bai;//鼠标移动白块privatePanelFit_Hei;//最后落子标记黑privatePanelFit_Bai;//最后落子标记白privatePanel[,]QzH=newPanel[20,20];//黑棋子privatePanel[,]QzB=newPanel[20,20];//白棋子intLastFitX=0;//给旁观最后落子位置intLastFitY=0;//给旁观最后落子位置intLastHB=0;//给旁观最后落子颜色PointMouseoff;//鼠标位置boolgo_play=false;//能否走棋intSelect_Qzi=0;//是黑还是白,1-黑,2-白intReceiveHB=1;//接收到的棋子颜色函数://初始化棋盘、棋子privatevoidInitQpan()//判断该谁走棋privatevoidJudge_HB()//显示棋子privatevoidShowQz(inti,intj,intQzHB)//重置棋盘棋子privatevoidRest_Qpan()//备份棋盘棋子privatevoidQpan_Backup()//恢复棋盘棋子privatevoidQpan_Restore()//刷新棋盘棋子privatevoidQpan_Refresh(intQzHB)//计算棋子的气数底层函数privatevoidBase_Calc(inti,intj,intQzHB)//计算气数privatevoidCalc_Ream(intm,intn,intQzHB)//计算气数接口privatevoidCalc_Interface(intQzHB)//落子处理,判断打劫、打n还1、吃掉对方棋子privatevoidFalling(intxx,intyy)//设置打劫privatevoidSet_Attack(inti,intj)//最后落子标记privatevoidFit_Flag(intxx,intyy)//旁观者最后落子标记privatevoidLookFit_Flag(intQhb,intxx,intyy)//对方走棋显示在己方并判断打劫、打n还1、吃掉对方棋子privatevoidOpp_Falling()3、跨线程调用封装在CrossThreadCall.cs4、时间有限,程序没有做计算胜负,没有做掉线处理。基本规则有了,其他的就是套接字变来变去,需要新功能自己添加。只是一个初学练习,更多初学资料到我的博客http://www.cnblogs.com/qiaoke/ - IMDN开发者社群-imdn.cn">
首页 »
C# »
C# Winform网络围棋(可对战)
于 2017-03-12 发布
0 226
程序使用VS2015,.NET4.5,.NET 2.0以上都可以编译使用,无第三方组件,可生成32、64位。Socket网络传输,可以对战、旁观,围棋走棋规则基本全面,可直接对杀。围棋规则算法写代码太麻烦,直接参考了GreatVerveGo(是单机的)算法,感谢作者。程序包含客户端和服务端2各部分。图片文件在gooinDebugRes里面1、先启动服务端 goServer.exe服务端:地址为IPAddress[] addrIP = Dns.GetHostAddresses("192.168.0.104"); //ip地址端口51888,根据你的需要进行修改;进入服务端后点击“开始监听”。服务端定义://连接的用户System.Collections.Generic.List userList = new List();//监听端口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.cs4、时间有限,程序没有做计算胜负,没有做掉线处理。基本规则有了,其他的就是套接字变来变去,需要新功能自己添加。只是一个初学练习,更多初学资料到我的博客http://www.cnblogs.com/qiaoke/
下载说明:请别用迅雷下载,失败请重下,重下不扣分!
soc ket
SOCKET通信,一个服务端,一个客户端的通信。(SOCKET communications, a server, a client communication.)
2013-11-04 16:50:40下载
积分:1
nolinknet
无连接的VC++网络通信 源代码,输入本机端口号、目标端口号、目标机IP地址,可以发送消息,并不建立连接。(Connectionless network communications VC++ source code, enter the local port number, destination port number, destination IP address, you can send a message, does not establish a connection.)
2015-02-06 10:25:46下载
积分:1
HTTPGetPost_src 1
说明: httppost的实现方法基于visualc++实现(httppost based on the method to achieve visualc)
2006-04-22 21:50:55下载
积分:1
httpc lient
说明: 输入参数:某个web地址,端口号(默认80)。
连接成功后,提示,输入:某个文件名。例如index.jsp
获取文件成功后,输出发送的字节数和接收到的字节数。关闭(Input parameters: a web address, port number (default 80). Connection is successful, prompt, type: a file name. For example, access to the file index.jsp is successful, the output number of bytes sent and received bytes. Close)
2010-03-17 23:42:01下载
积分:1
InstantMessaging
简单的网络聊天文件传输程序 可以
0.普通聊天(文字、图片)
1.聊天室
2.传输文件(断点续传)
3.共享屏幕
4.白板
5.视频、音频聊天(Simple network chat file transfer program can 0. General chat (text, images) a chatroom 2. Transfer files (HTTP) 3. Shared screen 4. Whiteboard 5 video and audio chat)
2013-08-26 22:14:23下载
积分:1
udprec vandsend
UDP通讯的极品例程 包括服务器端和客户端(Need for UDP communication routines, including server-side and client)
2008-05-09 11:43:30下载
积分:1
dns-Audit
A simple DNS auditing tool
2014-01-04 15:28:26下载
积分:1
微信公众平台开发c #框架源码下载(含发消息demo)
微信公众平台开发c#框架源码下载(含发消息demo)
2015-05-12下载
积分:1
soc ket
详细介绍一下VC下的socket编程,并提供一个服务器客户端具体的实例。希望对您有所帮助
(Detailed introduction of VC socket programming, and provide a server client a specific example. Hope will be helpful to you)
2012-05-09 18:53:35下载
积分:1
wifi
WiFi模块的资料,有需要的请自行下载,望多多支持。(Data WiFi module, there is a need to download your own, hope a lot of support.)
2014-07-15 14:19:47下载
积分:1