-
C# Winform网络围棋(可对战)
程序使用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/
- 2017-03-12下载
- 积分:1
-
此代码是一个用C#编写的控制台程序,功能是列出系统运行进程及其主窗口名。
此代码是一个用C#编写的控制台程序,功能是列出系统运行进程及其主窗口名。
-This code is a used C# Write console programs, function is to list the system running process and its main window name.
- 2022-04-23 10:56:16下载
- 积分:1
-
背景差分法
利用背景差分法来进行前景运动目标的提取
- 2022-03-20 15:09:14下载
- 积分:1
-
一个复杂的工程通常可以分解成一组小任务的集合,完成这些小任务意味着整个工程的完成。例如,汽车装配工程可分解为以下任务:将底盘放上装配线,装轴,将座位装在底盘上,...
一个复杂的工程通常可以分解成一组小任务的集合,完成这些小任务意味着整个工程的完成。例如,汽车装配工程可分解为以下任务:将底盘放上装配线,装轴,将座位装在底盘上,上漆,装刹车,装门等等。任务之间具有先后关系,例如在装轴之前必须先将底板放上装配线。任务的先后顺序可用有向图表示――称为顶点活动( Activity On Vertex, AOV)网络。有向图的顶点代表任务,有向边(i, j) 表示先后关系:任务j 开始前任务i 必须完成。图1 - 4显示了六个任务的工程,边( 1 , 4)表示任务1在任务4开始前完成,同样边( 4 , 6)表示任务4在任务6开始前完成,边(1 , 4)与(4 , 6)合起来可知任务1在任务6开始前完成,即前后关系是传递的。由此可知,边(1 , 4)是多余的,因为边(1 , 3)和(3 , 4)已暗示了这种关系。-a complex project can usually be divided into a group of small tasks set to complete these tasks means that the completion of the whole project. For example, car assembly projects can be divided into the following tasks : to the chassis via the assembly line, armored axis of the seat is installed in the chassis, painting and installing the brakes, armored doors, etc.. Between tasks has, for example, installed in the shaft bottom before they must first be placed on an assembly line. The task order is available to the map-- known as the vertex (Activity On Vertex, AOV) network. A plan to the apex representative tasks, to
- 2022-04-13 11:23:44下载
- 积分:1
-
显示串口波形
将串口传递过来的数据波形的形式显示出来,可以同时显示多个波形,
- 2022-05-29 14:16:29下载
- 积分:1
-
各类排序算法比较
本代码实现并比较了直接插入排序,选择排序,冒泡排序,快速排序,两路合并排序,堆排序,同时可视化比较了他们的时间复杂度,代码完整可行,有可执行文件直接运行。
- 2022-10-10 13:35:03下载
- 积分:1
-
时钟芯片1302的驱动
时钟芯片1302的基本驱动程序,能够在液晶显示屏上显示年月日时分秒星期等功能!
- 2023-01-13 00:30:03下载
- 积分:1
-
sinc函数的计算电风扇感 参观变化bnghf
sinc函数的计算电风扇感 参观变化bnghf-sinc function of the sense of fans visited changes bnghf
- 2022-05-05 18:59:57下载
- 积分:1
-
c# 矩阵并行计算 实例源码
c# 矩阵并行计算 实例源码
- 2014-12-12下载
- 积分:1
-
贪吃蛇代码
#include
/*输出天数周几*/
int scanfweek(int m,int n) {
printf("********************************************************
");
printf(" Sun Mon Tue Wed Thu Fri Sat
");
int date[6][7]={0};
int Row,Col;
Row=0;Col=m;
for(int k=1;k
- 2023-09-01 13:40:03下载
- 积分:1