资源简介

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\link-cvtres.read.1.tlog

     文件          2  2017-05-26 07:11  C语言五子棋\C语言五子棋\Debug\link-cvtres.write.1.tlog

     文件          2  2017-05-26 07:11  C语言五子棋\C语言五子棋\Debug\link-rc.read.1.tlog

     文件          2  2017-05-26 07:11  C语言五子棋\C语言五子棋\Debug\link-rc.write.1.tlog

     文件          2  2017-05-26 07:11  C语言五子棋\C语言五子棋\Debug\link.7776-cvtres.read.1.tlog

     文件          2  2017-05-26 07:11  C语言五子棋\C语言五子棋\Debug\link.7776-cvtres.write.1.tlog

     文件          2  2017-05-26 07:11  C语言五子棋\C语言五子棋\Debug\link.7776-rc.read.1.tlog

     文件          2  2017-05-26 07:11  C语言五子棋\C语言五子棋\Debug\link.7776-rc.write.1.tlog

     文件          2  2017-05-26 07:11  C语言五子棋\C语言五子棋\Debug\link.7776.read.1.tlog

     文件          2  2017-05-26 07:11  C语言五子棋\C语言五子棋\Debug\link.7776.write.1.tlog

     文件       1082  2017-05-26 07:11  C语言五子棋\C语言五子棋\Debug\link.command.1.tlog

     文件       2604  2017-05-26 07:11  C语言五子棋\C语言五子棋\Debug\link.read.1.tlog

     文件        362  2017-05-26 07:11  C语言五子棋\C语言五子棋\Debug\link.write.1.tlog

     文件      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个文件信息

评论

共有 条评论