资源简介
以前上传过俄罗斯方块1.0版,只支持单机,现在的2.0版在1.0版的基础上加了自己的socket类,实现了局域网联机对战功能,并附有源码(服务器端与客户端对战,没有同时开始功能,速度也可以不一样,下落方块的种类也不是按同样的次序,没有道具功能,只是将自己的战况实时传输给对方)。
说明:由于我的socket类支持多个客户端连接,但是联机时只有两个视窗,一个自己的,一个对家的,所以当多个客户端接入服务器端时具体表现为:服务器端的战况都会广播给所有客户端,相当于大家观看服务器端演示,但是服务器端不显示任何一个客户端的战况;而当只有一个客户端连接服务器端时,才显示这个客户端的战况。
注意:加入游戏,断开连接这两个功能在执行时,是另开线程的,我故意让关闭按钮和拖曳客户端区域移动窗口功能失效,看上去像是程序当住了,其实没当住,因为此时拖曳标题栏还是能移动窗口,右键菜单也可以弹出,这个“当住”过程会在3秒钟左右,当客户端比较多时,服务器端的这个时间会相对长一点。
有问题联系:hastings1986@163.com

代码片段和文件信息
#include “stdafx.h“
#include
#include
#include
#include “emf.h“
#include “Wnd.h“
#include “SocketServer.h“
#include “SocketClient.h“
#include “resource.h“
#define ID_CHILD 1
#define ID_TEXT 2
#define ID_MATCH 3
#define ID_TIMER 8
#define TextWndWidth 6
#define ID_TIMERS timewait
#define ID_TIMERWAIT 300
#define WM_RESETWNDPOS (WM_USER+20) //lParam为bnet
#include “Els.h“
#pragma comment(lib“winmm.lib“)
#pragma comment(lib“Ws2_32.lib“)
struct DlgParam
{
bool bBuilt;
Tstring szIP;
int nPort;
};
struct BinData
{
BOOL fState[CYDIVISIONS][CXDIVISIONS] ;
BOOL ftmp[CYDIVISIONS][CXDIVISIONS] ;
LONG valid[8] ;
int score ;
int bXiaoHang ;//0刷新全部1消行2移动3刚加入游戏时获取状态
};
struct ThreadParam
{
DlgParam* pdlgparam;
SocketServer* pserv;
SocketClient* pclient;
BOOL* pcanbeclose;
TCHAR* szBuffer;
HWND hwnd;
};
LRESULT CALLBACK WndProc (HWND UINT WPARAM LPARAM) ;
BOOL CALLBACK IPDlgProc (HWND UINT WPARAM LPARAM) ;
LRESULT CALLBACK ChildWndProc (HWND UINT WPARAM LPARAM) ;
LRESULT CALLBACK TextWndProc (HWND hwnd UINT message WPARAM wParam LPARAM lParam) ;
LRESULT CALLBACK MatchWndProc (HWND hwnd UINT message WPARAM wParam LPARAM lParam) ;
int IsWin(HWND hwnd BOOL fState[][CXDIVISIONS] BOOL ftmp[][CXDIVISIONS] int cxBlockint cyBlock);
void Valid(HWND hwnd BOOL fState[][CXDIVISIONS] const LONG* valid int cxBlockint cyBlock);
void ValidWin(HWND hwnd BOOL ftmp[][CXDIVISIONS] int cxBlockint cyBlock);
void DrawEls(HWND hwnd HDC hdc HENHmetaFILE hemf int score int scorematch RECT* prect);
void OnPaint(HDC hdcBOOL fState[][CXDIVISIONS]int cxClientint cyClientint cxBlockint cyBlock);
void ResetWndPos(HWND hwndint cxClientint cyClientint bNet);
void DoSomeThing(const BinData* pbindataSocketServer* pservSocketClient* pclientint bNetint clientcnt);
void ConnectServer(LPVOID lpParam);
void CloseServer(LPVOID lpParam);
TCHAR szAppName[] = TEXT (“eluosi“) ;
TCHAR szChildName[] = TEXT (“eluosi_Child“) ;
TCHAR szTextName[] = TEXT (“eluosi_text“) ;
TCHAR szMatchName[] = TEXT (“eluosi_match“) ;
HENHmetaFILE hemfRed hemfBlue ;
HINSTANCE hInst ;
ElsType elstype ;
int score scorematch speed = IDM_SPEED1 ;
int bnet = 0 ;//是否为联机对战:1为主机;2为客户端;
const int TIMERSARR[]={1020304050607080901002003004005006007008009001000};
int timewait = TIMERSARR[speed-IDM_SPEED1] ;//??
int clientcnt=0;
ThreadParam threadparam;
int WINAPI WinMain (HINSTANCE hInstance HINSTANCE hPrevInstance
PSTR szCmdLine int iCmdShow)
{
HWND hwnd ;
MSG msg ;
HACCEL hAccelTable;
WNDCLASS wndclass ;
HDC hdc ;
HBRUSH hbr;
HBITMAP hbmp;
hdc=CreateDC(TEXT(“DISPLAY“)NULLNULLNULL);
if(NULL==hdc)
{
MessageBox (NULL TEXT (“初始化失败!“)
szAppName MB_IConerror)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 33374 2008-03-25 16:09 1.bmp
文件 58662 2008-04-20 21:42 2.bmp
文件 99328 2010-05-23 18:40 12.ncb
文件 238 2010-05-23 18:39 12.plg
文件 37645 2010-05-23 18:35 12.cpp
文件 4995 2010-05-20 21:46 12.dsp
文件 527 2008-04-04 20:30 12.dsw
文件 50688 2010-05-23 18:40 12.opt
文件 68078 2008-04-06 17:43 Els01.cpp
文件 117794 2010-05-20 16:18 Els02.cpp
文件 907 2010-05-20 14:12 Els.h
文件 3148 2010-05-20 16:18 emf.cpp
文件 428 2010-05-20 16:14 emf.h
文件 766 2008-04-04 20:52 icon1.ico
文件 506 2010-04-27 18:48 Lock.h
文件 45152 2010-05-20 20:25 Res.aps
文件 5364 2010-05-20 20:25 Res.rc
文件 1811 2010-05-20 20:23 resource.h
文件 9156 2008-06-13 19:49 run.wav
文件 22885 2010-05-23 18:21 SocketClient.cpp
文件 3250 2010-05-20 16:41 SocketClient.h
文件 25939 2010-05-20 16:17 SocketServer.cpp
文件 3328 2010-05-20 16:41 SocketServer.h
文件 1480 2010-05-21 10:31 stdafx.h
文件 3357 2010-05-20 16:18 Wnd.cpp
文件 1087 2010-05-20 16:16 Wnd.h
文件 556 2010-05-20 20:23 XPst
文件 204800 2010-05-23 18:39 俄罗斯方块2.0版.exe
----------- --------- ---------- ----- ----
805249 28
............此处省略1个文件信息
- 上一篇:kmeans聚类案例
- 下一篇:微机原理波形发生器设计
相关资源
- 用友NC开发API字典
- Web Api 通过文件流 文件到本地
- Spire API文档
- ectouch最新版JSAPI微信支付V3插
- Servlet API中文文档
- jstl-api-1.2和jstl-impl-1.2
- 通信软件的具体实例──基于Socket的
- 用Socket编程实现FTP
- hidusage.h hidpi.h 等USB开发用头文件
- websocket实现一对一聊天
- OpenGL文档,api大全,可直接查询函数
- nVidia 控制面板 API
- IpHlpApi.h&IpHlpApi.lib
- 代码客:G-TcpServer(IOCP) 1.0 正式版及
- SOCKET 网络编程 计算机网络 作业 客户
- 应用接口支持库1.1版eAPI
- 手机短信api接口(源代码)
- 成都MAPINFO格式电子地图
- linux 网络实验 ftp程序
- 用Socket写的简易FTP服务器和客户端
- ATA(ATAPI)接口指令协议硬盘基础知识
- socket小工具(可方便建立TCP UDP的soc
- WinAPI 函数库(大全)
- 串口操作类(justinio)
- socket客户端源码
- 基于CSocket的多人聊天室
- 用PB编写俄罗斯方块
- PB做的俄罗斯方块
- socket文件传输源码
- 易语言京喜拼拼API协议模块
评论
共有 条评论