資源簡介
b7bc79d087b2d734fb41e951f0b7454e.rar

代碼片段和文件信息
#include??
#include??
#include??
#include??
#include??
#define?CROSSRU?0xbf?/*右上角點*/?
#define?CROSSLU?0xda?/*左上角點*/?
#define?CROSSLD?0xc0?/*左下角點*/?
#define?CROSSRD?0xd9?/*右下角點*/?
#define?CROSSL?0xc3?/*左邊*/?
#define?CROSSR?0xb4?/*右邊*/?
#define?CROSSU?0xc2?/*上邊*/?
#define?CROSSD?0xc1?/*下邊*/?
#define?CROSS?0xc5?/*十字交叉點*/?
/*定義棋盤左上角點在屏幕上的位置*/?
#define?MAPXOFT?5?
#define?MAPYOFT?2?
/*定義1號玩家的操作鍵鍵碼*/?
#define?PLAY1UP?0x1157/*上移--‘W‘*/?
#define?PLAY1DOWN?0x1f53/*下移--‘S‘*/?
#define?PLAY1LEFT?0x1e41/*左移--‘A‘*/?
#define?PLAY1RIGHT?0x2044/*右移--‘D‘*/?
#define?PLAY1DO?0x3920/*落子--空格鍵*/?
/*定義2號玩家的操作鍵鍵碼*/?
#define?PLAY2UP?0x4800/*上移--方向鍵up*/?
#define?PLAY2DOWN?0x5000/*下移--方向鍵down*/?
#define?PLAY2LEFT?0x4b00/*左移--方向鍵left*/?
#define?PLAY2RIGHT?0x4d00/*右移--方向鍵right*/?
#define?PLAY2DO?0x1c0d/*落子--回車鍵Enter*/?
/*若想在游戲中途退出?可按?Esc?鍵*/?
#define?ESCAPE?0x011b?
/*定義棋盤上交叉點的狀態?即該點有無棋子?*/?
/*若有棋子?還應能指出是哪個玩家的棋子?*/?
#define?CHESSNULL?0?/*沒有棋子*/?
#define?CHESS1?‘O‘/*一號玩家的棋子*/?
#define?CHESS2?‘X‘/*二號玩家的棋子*/?
/*定義按鍵類別*/?
#define?KEYEXIT?0/*退出鍵*/?
#define?KEYFALLCHESS?1/*落子鍵*/?
#define?KEYMOVECURSOR?2/*光標移動鍵*/?
#define?KEYINVALID?3/*無效鍵*/?
/*定義符號常量:?真?假?---?真為1?假為0?*/?
#define?TRUE?1?
#define?FALSE?0?
/**********************************************************/?
/*?定義數據結構?*/?
/*棋盤交叉點坐標的數據結構*/?
struct?point?
{?
int?xy;?
};?
/**********************************************************/?
/*自定義函數原型說明?*/?
void?Init(void);?
int?GetKey(void);?
int?CheckKey(int?press);?
int?ChangeOrder(void);?
int?ChessGo(int?Orderstruct?point?Cursor);?
void?DoError(void);?
void?DoOK(void);?
void?DoWin(int?Order);?
void?MoveCursor(int?Orderint?press);?
void?DrawCross(int?xint?y);?
void?DrawMap(void);?
int?JudgeWin(int?Orderstruct?point?Cursor);?
int?JudgeWinLine(int?Orderstruct?point?Cursorint?direction);?
void?ShowOrderMsg(int?Order);?
void?EndGame(void);?
/**********************************************************/?
/**********************************************************/?
/*?定義全局變量?*/?
int?gPlayOrder;?/*指示當前行棋方?*/?
struct?point?gCursor;?/*光標在棋盤上的位置?*/?
char?gChessBoard[19][19];/*用于記錄棋盤上各點的狀態*/?
/**********************************************************/?
/**********************************************************/?
/*主函數*/?
void?main()?
{?
int?press;?
int?bOutWhile=FALSE;/*退出循環標志*/?
Init();/*初始化圖象,數據*/?
while(1)?
{?
press=GetKey();/*獲取用戶的按鍵值*/?
switch(CheckKey(press))/*判斷按鍵類別*/?
{?
/*是退出鍵*/?
case?KEYEXIT:?
clrscr();/*清屏*/?
bOutWhile?=?TRUE;?
break;?
/*是落子鍵*/?
case?KEYFALLCHESS:?
if(ChessGo(gPlayOrdergCursor)==FALSE)/*走棋*/?
DoError();/*落子錯誤*/?
else?
{?
DoOK();/*落子正確*/?
/*如果當前行棋方贏棋*/?
if(JudgeWin(gPlayOrdergCursor)==TRUE)?
{?
DoWin(gPlayOrder);?
bOutWhile?=?TRUE;/*退出循環標志置為真*/?
}?
/*否則*/?
else?
/*交換行棋方*/?
ChangeOrder();?
ShowOrderMsg(gPlayOrder);?
}?
break;?
/*是光標移動鍵*/?
case?KEYMOVECURSOR:?
MoveCursor(
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????10204??2008-10-06?16:46??實驗二\afive.c
?????文件???????9188??2008-10-06?16:45??實驗二\afive.exe
?????文件???????3663??2008-10-06?16:45??實驗二\afive.obj
?????文件??????????3??2008-10-04?21:41??實驗二\TCTEMP.DAT
?????文件???????9188??2008-10-06?16:45??實驗二\tempfile.exe
????..A.SH.?????26624??2008-10-04?21:41??實驗二\Thumbs.db
?????文件???????9714??2002-09-28?10:09??實驗二\五子棋.txt
?????文件??????95744??2008-09-28?20:35??實驗二\五子棋算法研究.doc
?????文件??????28160??2008-09-28?21:06??實驗二\實驗二.doc
?????文件?????????51??2008-11-17?16:21??實驗二\新建?文本文檔.txt
?????目錄??????????0??2009-06-15?18:04??實驗二
-----------?---------??----------?-----??----
???????????????192539????????????????????11
評論
共有 條評論