• 大小: 0.07M
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-14
  • 语言: 其他
  • 标签: 其他  

资源简介

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


评论

共有 条评论