资源简介
C语言五子棋包含人机人人联机 联机(服务器端未在内)音乐删掉了有点大
代码片段和文件信息
#include“iti.h“
#define C_NAME 0x01 //玩家名称指令 此时后面4个字节为字符
#define C_BLACK 0x02 //从机收到该指令时表示自己是黑棋 可以先下棋子了
#define C_WHITE 0X03 //从机收到该指令时表示自己是白棋 应等待服务器发来的黑棋数据
#define C_OVER 0x04 //服务器主动切断与客户端的联系 此后客户端应执行 closesocket(my_socket); 关闭套接字
#define C_WIN 0x05 //服务器收到此命令后将发送 C_OVER指令给客户端
#define CHESS_WHITE 0x0a
#define CHESS_BLACK 0x0b
unsigned int Cachebuf[16][16]={0}; //定义棋子在棋盘上的索引
unsigned int Now_x = 0; //当前棋子的x轴索引
unsigned int Now_y = 0; //当前棋子的y轴索引
unsigned int Last_x = 0; //上次棋子的x轴索引
unsigned int Last_y = 0; //上次棋子的y轴索引
unsigned int Chess = CHESS_BLACK; //黑棋先行
unsigned int ifWin = 0; //判断游戏结束
char CHESS_TYPE = 0; //棋子类型获取标志
char M_Flog = 0; //鼠标操作允许标志
char sendbuf[10]; //发送数据缓冲区
char recvbuf[10]; //接收数据缓冲区
char My_Name[20]; //存放本机昵称 仅前四个字节有效
char Sbuf[20]; //数据处理的中间变量
char IPBUF[50]; //存放用户收入的服务器IP地址
SOCKET my_socket;
SOCKADDR_IN host_sin; //包含服务器地址信息
/****************************************************************************************************************************
* Function Name : int iti()
* Description : 联机对战主函数
* Input : None
* Output : None
* Return : 3返回操作界面
****************************************************************************************************************************/
int iti()
{
system(“color 0f“);
ifWin=0;
WSADATA wsaData;
WSAStartup(MAKEWORD(22)&wsaData);
Ip_Input(); //用户输入服务器IP地址 和 玩家昵称
my_socket=socket(AF_INETSOCK_STREAM0);
host_sin.sin_addr.S_un.S_addr=inet_addr(IPBUF); //设置IP地址
host_sin.sin_family=AF_INET;
host_sin.sin_port=htons(6800); //端口6800
if (connect(my_socket(SOCKADDR*)&host_sinsizeof(SOCKADDR)) == SOCKET_ERROR) //连接服务器
{
printf(“连接服务器失败 !/n客户端已停止运行“);
closesocket(my_socket);
while(1);
}
SendDataPackge( C_NAME My_Name[0] My_Name[1] My_Name[2] My_Name[3] ); //发送玩家昵称到服务器
send(my_socketsendbuf80); //发送一帧数据给服务器
Display_Init(); //初始化显示区域
Drow_Checkerboard() ; //画棋盘
while(1)
{
recvbuf[0]=0;
while( recvbuf[0]==0 )
{
recv(my_socketrecvbufsizeof(recvbuf)0); //接收来自这个服务器的数据 第一次应该会收到服务器发送的玩家昵称
_sleep(100);
}
ifWin=RacvDataDeal( recvbuf ); //对收到的一帧数据进行解包和处理
if(ifWin==1)
{
Sleep(3000);
return 3;
}
if( M_Flog == 1 ) //如果鼠标操作允许
{
while(M_Flog == 1 ) //等待落子
{
ifWin=Contrl_Center( ); //控制中心 开始落子
if(ifWin==1)
{
Sleep(3000);
return 3;
}
}
}
}
return 3;
}
void SendDataPackge( unsigned char Cmd unsigned char Xhunsigned char Xlunsigned char Yhunsigned char Yl )
{
sendbuf[0]=0x01;
sendbuf[1]=Cmd;
sendbuf[2]=Xh;
sendbuf[3]=Xl;
sendbuf[4]=Yh;
sendbuf[5]=Yl;
sendbuf[6]=(sendbuf[1]+sendbuf[2]+sendbuf[3]+sendbuf[4]+sendbuf[5])%256; //获取和校验
sendbuf[7]=0x02;
}
/*
主客之间通信
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 74752 2017-06-13 11:26 C语言五子棋\C语言五子棋\C语言五子棋.exe
文件 4612 2017-06-12 23:11 C语言五子棋\C语言五子棋\C语言五子棋.vcxproj
文件 1911 2017-06-12 23:11 C语言五子棋\C语言五子棋\C语言五子棋.vcxproj.filters
文件 164 2017-06-02 18:10 C语言五子棋\C语言五子棋\C语言五子棋.vcxproj.user
文件 1074 2017-05-26 07:11 C语言五子棋\C语言五子棋\Debug\cl.command.1.tlog
文件 36846 2017-05-26 07:11 C语言五子棋\C语言五子棋\Debug\CL.read.1.tlog
文件 742 2017-05-26 07:11 C语言五子棋\C语言五子棋\Debug\CL.write.1.tlog
文件 1721 2017-05-25 18:19 C语言五子棋\C语言五子棋\Debug\C语言五子棋.Build.CppClean.log
文件 63 2017-05-26 07:11 C语言五子棋\C语言五子棋\Debug\C语言五子棋.lastbuildstate
文件 1230 2017-05-26 07:11 C语言五子棋\C语言五子棋\Debug\C语言五子棋.log
文件 2 2017-05-26 07:11 C语言五子棋\C语言五子棋\Debug\li
文件 2 2017-05-26 07:11 C语言五子棋\C语言五子棋\Debug\li
文件 2 2017-05-26 07:11 C语言五子棋\C语言五子棋\Debug\li
文件 2 2017-05-26 07:11 C语言五子棋\C语言五子棋\Debug\li
文件 2 2017-05-26 07:11 C语言五子棋\C语言五子棋\Debug\li
文件 2 2017-05-26 07:11 C语言五子棋\C语言五子棋\Debug\li
文件 2 2017-05-26 07:11 C语言五子棋\C语言五子棋\Debug\li
文件 2 2017-05-26 07:11 C语言五子棋\C语言五子棋\Debug\li
文件 2 2017-05-26 07:11 C语言五子棋\C语言五子棋\Debug\li
文件 2 2017-05-26 07:11 C语言五子棋\C语言五子棋\Debug\li
文件 1082 2017-05-26 07:11 C语言五子棋\C语言五子棋\Debug\li
文件 2604 2017-05-26 07:11 C语言五子棋\C语言五子棋\Debug\li
文件 362 2017-05-26 07:11 C语言五子棋\C语言五子棋\Debug\li
文件 25274 2017-05-26 07:11 C语言五子棋\C语言五子棋\Debug\main.obj
文件 37001 2017-05-26 07:10 C语言五子棋\C语言五子棋\Debug\menu.obj
文件 658432 2017-05-26 07:11 C语言五子棋\C语言五子棋\Debug\vc110.idb
文件 135168 2017-05-26 07:11 C语言五子棋\C语言五子棋\Debug\vc110.pdb
文件 330 2017-06-06 19:49 C语言五子棋\C语言五子棋\fight.h
文件 169903 2017-06-06 15:27 C语言五子棋\C语言五子棋\image\人人对战\人人对战暗.jpg
文件 51157 2017-05-26 18:53 C语言五子棋\C语言五子棋\image\人人对战\人人对战背景.jpg
............此处省略138个文件信息
相关资源
- 算法:C语言实现(第5部分)图算法
- 用C语言实现Socket模拟TCP协议
- 自己编写的歌曲信息管理系统,非常
- C语言编写的仿QQ局域网通讯程序
- 数据结构(C语言版)
- 明解C语言 PDF 原版
- C语言课程设计实习报告
- 算法精解 C语言描述 pdf
- 严蔚敏《数据结构(C语言版)超级全
- 编译原理词法分析器实验报告含源代
- C语言接口与实现:创建可重用软件的
- 国家计算机二级C语言模拟软件
- C语言参考手册(第5版)-第五版-哈比
- 数据结构与算法分析:C语言描述_原书
- 数据结构与算法分析:C语言描述_原书
- Visual+C+++6 0 破解版 安装直接运行
- 基于bluez5.50修改的gatt api库
- 数据结构(C语言版).严蔚敏_吴伟民
- 单片机C语言400例
- 电磁场有限元--PDF和源程序
- 个人物品管理程序
- C++实现五子棋项目.zip
- 新华三校招和社招技术研发类笔试题
- 数据结构考研教案__清华·C语言版
- 钱能C++程序设计教程第二版pdf高清带
- C语言实现贪吃蛇大量注释+用到的库文
- C语言名题精选百则 技巧篇_冼镜光编
- C语言程序设计苏小红.zip
- C语言的png和jpeg图片格式转换为bmp格式
- C语言推箱子游戏有注释文档
评论
共有 条评论