C语言课程设计报告五子棋游戏课程设计
C语言课程设计报告_五子棋游戏-课程设计C语言课程设计报告_五子棋游戏|c语言程序代码编程小程序设计|c语言课程设计报告课程案例**********************************************************//* 本程序在Turbo C或Borland C下编译通过 *//* 文件名: afive.c 五子棋 *//**********************************************************/ /**********************************************************//* 程序中用到的库函数所在头文件应用 #include 命令包含进来 */#include #include #include #include #include /**********************************************************//* 定义符号常量 *//*定义画棋盘所需的制表符*/#define CROSSRU 0 xbf /*右上角点*/#define CROSSLU 0 xda /*左上角点*/#define CROSSLD 0 xc0 /*左下角点*/#define CROSSRD 0 xd9 /*右下角点*/#define CROSSL 0 xc3 /*左边*/#define CROSSR 0 xb4 /*右边*/#define CROSSU 0 xc2 /*上边*/#define CROSSD 0 xc1 /*下边*/#define CROSS 0 xc5 /*十字交叉点*//*定义棋盘左上角点在屏幕上的位置*/#define MAPXOFT 5#define MAPYOFT 2/*定义1号玩家的操作键键码*/#define PLAY1UP 0 x1157/*上移-- W */#define PLAY1DOWN 0 x1f53/*下移-- S */#define PLAY1LEFT 0 x1e41/*左移-- A */#define PLAY1RIGHT 0 x2044/*右移-- D */#define PLAY1DO 0 x3920/*落子--空格键*//*定义2号玩家的操作键键码*/#define PLAY2UP 0 x4800/*上移-- 方向键up*/#define PLAY2DOWN 0 x5000/*下移--方向键down*/#define PLAY2LEFT 0 x4b00/*左移--方向键left*/#define PLAY2RIGHT 0 x4d00/*右移--方向键right*/#define PLAY2DO 0 x1c0d/*落子--回车键Enter*//*若想在游戏中途退出, 可按 Esc 键*/#define ESCAPE 0 x011b/*定义棋盘上交叉点的状态, 即该点有无棋子 *//*若有棋子, 还应能指出是哪个玩家的棋子 */#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 x,y;};/**********************************************************//*自定义函数原型说明 */void Init(void);int GetKey(void);int CheckKey(int press);int ChangeOrder(void);int ChessGo(int Order,struct point Cursor);void DoError(void);void DoOK(void);void DoWin(int Order);void MoveCursor(int Order,int press);void DrawCross(int x,int y);void DrawMap(void);int JudgeWin(int Order,struct point Cursor);int JudgeWinLine(int Order,struct point Cursor,int 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(p