• 大小: 17KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-05-24
  • 语言: C/C++
  • 标签: 五子棋  

资源简介

一个五子棋游戏的简单C++实现,可以人机对战。效果已在MFS上实现。

资源截图

代码片段和文件信息

#include 
#include 
#include 
using namespace std;

/**********************************************************/
/* 定义符号常量                                           */

/*定义画棋盘所需的制表符*/
#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     ‘W‘/*上移--‘W‘*/
#define PLAY1DOWN   ‘S‘/*下移--‘S‘*/
#define PLAY1LEFT   ‘A‘/*左移--‘A‘*/
#define PLAY1RIGHT  ‘D‘/*右移--‘D‘*/
#define PLAY1DO     ‘ ‘/*落子--空格键*/

/*定义2号玩家的操作键键码*/
#define PLAY2UP     ‘H‘/*上移--‘↑‘*/
#define PLAY2DOWN   ‘P‘/*下移--‘↓‘*/
#define PLAY2LEFT   ‘K‘/*左移--‘←‘*/
#define PLAY2RIGHT  ‘M‘/*右移--‘→‘*/
#define PLAY2DO     0x0d/*落子--回车键Enter*/

/*若想悔棋 可按 BackSpace 键*/
#define BACKSPACE   0x08

/*若想保存棋局 可按 F2 键*/
#define SAVE        ‘<‘

/*若想加载棋局 可按 F3 键*/
#define LOAD        ‘=‘

/*若想让游戏中途退出 可按 Esc 键*/
#define EXIT        0x1b

/*定义棋盘上交叉点的状态 即该点有无棋子 */
/*若有棋子 还应能指出是哪个玩家的棋子   */
#define CHESSNULL   0  /*没有棋子*/
#define CHESS1      1/*一号玩家的棋子*/
#define CHESS2      2/*二号玩家的棋子*/

/*定义按键类别*/
#define KEYEXIT        0/*退出键*/
#define KEYFALLCHESS   1/*落子键*/
#define KEYMOVECURSOR  2/*光标移动键*/
#define KEYBACKCHESS   3/*悔棋键*/
#define KEYSAVECHESS   4/*保存键*/
#define KEYLOADCHESS   5/*加载键*/
#define KEYINVALID     6/*无效键*/

/*定义符号常量: 真 假 --- 真为1 假为0 */
#define TRUE        1
#define FALSE       0

/**********************************************************/
/* 定义数据结构                                           */

/*棋盘交叉点坐标的数据结构*/
struct point
{
    int xy;
};

/**********************************************************/
/*自定义函数原型说明                                      */
void Init(void);
void DrawMap(void);
void DrawCross(int xint y);
int  CheckKey(char press);
int  ChessGo(int Orderstruct point Cursor);
void DoError(void);
void DoOK(void);
int  JudgeWin(int Orderstruct point Cursor);
int  JudgeWinLine(int Orderstruct point Cursorint direction);
void DoWin(int Order);
int  ChangeOrder(void);
void ShowOrderMsg(int Order);
void MoveCursor(int Orderchar press);
int  GoBack(void);
int  SaveChess(void);
int  LoadChess(void);
void EndGame(void);
/**********************************************************/

/**********************************************************/
/* 定义全局变量                                           */
char  gPlayOrder; /*指示当前行棋方          */
struct point gCursor; /*光标在棋盘上的位置      */
char gChessBoard[19][19]; /*用于记录棋盘上各点的状态*/
int gBackChess[19*19];          /*用于记录落子次序——悔棋*/
int gStep; /*用于记录走棋步数——悔棋*/
/**********************************************************/

/***********************************************

评论

共有 条评论