資源簡介
使用C++語言制作的中國象棋人機對弈程序,附帶論文及源碼

代碼片段和文件信息
//?Chess.cpp?:?Defines?the?entry?point?for?the?application.
//?Download?by?http://www.codefans.net
#include?
#include?
#include
#include?
#include?
#include?“stdafx.h“
#include?“resource.h“
#include?“COMMDLG.h“
#include
#define?MAX_LOADSTRING?100
#define?IDB_INITCHESS?101
#define?IDB_EXIT?102
#define?IDB_HELP?103??
#define?IDB_CCOMM?108
#define?IDE_IPADDR?109
#define?IDE_PORT?110
#define?IDS_1????111
#define?IDS_2????112
#define?IDB_SEND??113
#define?IDE_Msg1??114
#define?IDE_Msg2??115
#define?IDE_Msg3??116
#define?IDB_SENDMSG?117
#define?IDB_REPLAY?118
#define?socklen_t?int
#pragma?comment(lib“wsock32.lib“)
//?Global?Variables://///////////////////////////////////////////////////////////////////////
HINSTANCE?hInst; //?current?instance
TCHAR?sztitle[MAX_LOADSTRING]; //?The?title?bar?text
TCHAR?szWindowClass[MAX_LOADSTRING]; //?The?title?bar?text
const?int?cX=200cY=40;?????????????????????????//設置棋盤左上角坐標cX(Coordinate.X)cY(Coordinate.Y)為(20040)
static?int?wcX=400wcY=250;?????????????????????//窗口左上角坐標wcX(WindowCoordinate.X)wcY(WindowCoordinate.Y)??????????????????????????
int?xArray[9][10]yArray[9][10]InfoArray[9][10];??????????????????//為棋盤90個棋位分別分配x軸y軸坐標信息以及
//保存此位相關信息的infoAraay數組
static?int?GetChessman=0;???????//判斷棋子是否選中
static?int?RedOrBlack=2;????????//判斷輪到哪方走棋
static?int?Prei=0Prej=0;?????//前一個坐標點??preceding?ij
static??bool?win=false;?????????//判斷是否已有一方勝利
bool?Online=false;??????????????//判斷是否聯機
static?int?mytrun=1;????????????//聯機時用于判斷是否本方走棋
static?bool?Accept=false;???????//網絡聯機接受對方邀請Accept=true
static?bool?Accept2=false;??????//網絡聯機邀請對方對方接受Accept2=true
static?bool?NetExit=false;??????//當用戶強行退出時這個變量決定是否向對方發送消息
int?UpdateAllData;??????????????//7位數向對方發送更新的信息具體定義參見函數體
char?CUpdateAllData[20];????????//char型的UpdateAllData用做網絡發送
char?*ClientAddr;???????????????//用做保存對方地址
short?ClientPort; ????????//用做保存對方端口
int?ReplayX1=0ReplayY1=0ReplayX2=0ReplayY2=0;??//保存棋子行走路徑回看之用
HWND?hWndPush;??????????????????????????????????????????????????//用做添加按鈕
PAINTSTRUCT?ps;
HDC?hdc;
HWND?hWnd;
HFONT?hf_Win;
int?get=0;????????????????????????//get在WM_MOUSEMOVE消息響應中決定是否動態顯示棋子(選中棋子:value=1)
int?Frequency=0;??????????????????//見WM_MOUSEMOVE消息響應Frequency(頻率)?適當降低MOUSEMOVE的刷新頻度
int?IsGet=0;????????????????????????//當獲得棋子時鼠標移出棋盤時釋放光標當再次移到棋盤內則再次獲得光標并重新設置成手形
//見WM_MOUSEMOVE
static?HWND?hEditIPAddrhEditPorthStatic1hStatic2;
static?HWND?hEditMsg1hEditMsg2hEditMsg3;?
///////////////////////////////////////////////////////////////////////////////////////////
//?Foward?declarations?of?functions?included?in?this?code?module:
ATOM MyRegisterClass(HINSTANCE?hInstance);
BOOL InitInstance(HINSTANCE?int);
LRESULT?CALLBACK WndProc(HWND?UINT?WPARAM?LPARAM);
LRESULT?CALLBACK About(HWND?UINT?WPARAM?LPARAM);
//////////////////////////////////////////////////////////////////////////////////
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
-----------?---------??----------?-----??----
??????????????5837186????????????????????32
- 上一篇:傳智播客C語言提高講義2018最新
- 下一篇:單片機C51學習KEIL C的仿真
評論
共有 條評論