五子棋课程设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#define PLAY1DO 0x3920/*落子--空格键*/
/*定义2号玩家的操作键键码*/
#define PLAY2UP 0x4800/*上移--方向键up*/
#define PLAY2DOWN 0x5000/*下移--方向键down*/
#define PLAY2LEFT 0x4b00/*左移--方向键left*/
/*定义符号常量*/
/*定义画棋盘所需的制表符*/
#define CROSSRU 0xbf /*右上角点*/
#define CROSSLU 0xda /*左上角点*/
#define CROSSLD 0xc0 /*左下角点*/
#define CROSSRD 0xd9 /*右下角点*/
#define CROSSL 0xc3 /*左边*/
#define CHESSNULL 0 /*没有棋子*/
#define CHESS1 'O'/*一号玩家的棋子*/
#define CHESS2 'X'/*二号玩家的棋子*/
/*定义按键类别*/
#define KEYEXIT 0/*退出键*/
#define KEYFALLCHESS 1/*落子键*/
#define KEYMOVECURSOR 2/*光标移动键*/
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);
/*定义全局变量*/
int gPlayOrder; /*指示当前行棋方*/
struct point gCursor; /*光标在棋盘上的位置*/
char gChessBoard[19][19];/*用于记录棋盘上各点的状态*/
/**********************************************************/
/*定义1号玩家的操作键键码*/
#define PLAY1UP 0x1157/*上移--'W'*/
#define PLAY1DOWN 0x1f53/*下移--'S'*/
#define PLAY1LEFT 0x1e41/*左移--'A'*/
#define PLAY1RIGHT 0x2044/*右移--'D'*/
#define CROSSR 0xb4 /*右边*/
#define CROSSU 0xc2 /*上边*/
#define CROSSD 0xc1 /*下边*/
#define CROSS 0xc5 /*十字交叉点*/
/*定义棋盘左上角点在屏幕上的位置*/
#define MAPXOFT 5
#define MAPYOFT 2
#include <>
#include <>
#include <>
#include <>
#include<>
#include<>
#include<>
#include<>
#define pi
/**********************************************************/
#define KEYINVALID 3/*无效键*/
/*定义符号常量:真,假---真为1,假为0 */
#define TRUE 1
#define FALSE 0
/**********************************************************/
/*定义数据结构*/
#define PLAY2RIGHT 0x4d00/*右移--方向键right*/
#define PLAY2DO 0x1c0d/*落子--回车键Enter*/
/*若想在游戏中途退出,可按Esc键*/
#define ESCAPE 0x011b
/*定义棋盘上交叉点的状态,即该点有无棋子*/
/*若有棋子,还应能指出是哪个玩家的棋子*/
(7)
(8)
(9)
(10)
(1)
(2)
(3)
(4)
(5)
(6)
wk.baidu.com
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12) 棋盘中间的交叉点
(1)
(2)
(3)
(4)
(1)
(2)
(3)
(4)
五、
编译预处理
主函数
设计界面
胜负判断
定义其他功能键
六
七
/*程序中用到的库函数所在头文件应用#include命令包含进来*/
/*棋盘交叉点坐标的数据结构*/
struct point
{
int x,y;
};
/**********************************************************/
/*自定义函数原型说明*/
void Init(void);
int GetKey(void);
int CheckKey(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);
/**********************************************************/
/**********************************************************/
五子棋课程设计
C 语 言 课
程 设 计
学院:
班级:
姓名:
学号:
所在系:
指导教师:
2009年12月22号
一
题目:五子棋
要求:利用C语言实现小型的五子棋人机对弈游戏
二
本人计划编一个五子棋游戏程序,主要是实现人机对弈的功能。
三
四
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(1)
(2)
(3)
(4)
(5)
(6)
/**********************************************************/
/*主函数*/
/*定义2号玩家的操作键键码*/
#define PLAY2UP 0x4800/*上移--方向键up*/
#define PLAY2DOWN 0x5000/*下移--方向键down*/
#define PLAY2LEFT 0x4b00/*左移--方向键left*/
/*定义符号常量*/
/*定义画棋盘所需的制表符*/
#define CROSSRU 0xbf /*右上角点*/
#define CROSSLU 0xda /*左上角点*/
#define CROSSLD 0xc0 /*左下角点*/
#define CROSSRD 0xd9 /*右下角点*/
#define CROSSL 0xc3 /*左边*/
#define CHESSNULL 0 /*没有棋子*/
#define CHESS1 'O'/*一号玩家的棋子*/
#define CHESS2 'X'/*二号玩家的棋子*/
/*定义按键类别*/
#define KEYEXIT 0/*退出键*/
#define KEYFALLCHESS 1/*落子键*/
#define KEYMOVECURSOR 2/*光标移动键*/
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);
/*定义全局变量*/
int gPlayOrder; /*指示当前行棋方*/
struct point gCursor; /*光标在棋盘上的位置*/
char gChessBoard[19][19];/*用于记录棋盘上各点的状态*/
/**********************************************************/
/*定义1号玩家的操作键键码*/
#define PLAY1UP 0x1157/*上移--'W'*/
#define PLAY1DOWN 0x1f53/*下移--'S'*/
#define PLAY1LEFT 0x1e41/*左移--'A'*/
#define PLAY1RIGHT 0x2044/*右移--'D'*/
#define CROSSR 0xb4 /*右边*/
#define CROSSU 0xc2 /*上边*/
#define CROSSD 0xc1 /*下边*/
#define CROSS 0xc5 /*十字交叉点*/
/*定义棋盘左上角点在屏幕上的位置*/
#define MAPXOFT 5
#define MAPYOFT 2
#include <>
#include <>
#include <>
#include <>
#include<>
#include<>
#include<>
#include<>
#define pi
/**********************************************************/
#define KEYINVALID 3/*无效键*/
/*定义符号常量:真,假---真为1,假为0 */
#define TRUE 1
#define FALSE 0
/**********************************************************/
/*定义数据结构*/
#define PLAY2RIGHT 0x4d00/*右移--方向键right*/
#define PLAY2DO 0x1c0d/*落子--回车键Enter*/
/*若想在游戏中途退出,可按Esc键*/
#define ESCAPE 0x011b
/*定义棋盘上交叉点的状态,即该点有无棋子*/
/*若有棋子,还应能指出是哪个玩家的棋子*/
(7)
(8)
(9)
(10)
(1)
(2)
(3)
(4)
(5)
(6)
wk.baidu.com
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12) 棋盘中间的交叉点
(1)
(2)
(3)
(4)
(1)
(2)
(3)
(4)
五、
编译预处理
主函数
设计界面
胜负判断
定义其他功能键
六
七
/*程序中用到的库函数所在头文件应用#include命令包含进来*/
/*棋盘交叉点坐标的数据结构*/
struct point
{
int x,y;
};
/**********************************************************/
/*自定义函数原型说明*/
void Init(void);
int GetKey(void);
int CheckKey(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);
/**********************************************************/
/**********************************************************/
五子棋课程设计
C 语 言 课
程 设 计
学院:
班级:
姓名:
学号:
所在系:
指导教师:
2009年12月22号
一
题目:五子棋
要求:利用C语言实现小型的五子棋人机对弈游戏
二
本人计划编一个五子棋游戏程序,主要是实现人机对弈的功能。
三
四
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(1)
(2)
(3)
(4)
(5)
(6)
/**********************************************************/
/*主函数*/