接口就不细说了,用到的再细说
int gPlayOrder; //全局变量,其值代表当前轮到哪一方的玩家下子
struct point gCursor; //棋盘光标/焦点 位置信息
char gChessBoard[19][19]; /*存储19乘19的棋盘信息(即棋盘相应位置是被哪一方占据或还未被占据,judgeWin()依据这结信息判断是否有一方五子连线...)*/
void main()
{
int press; //保存按键结果
int bOutWhile=FALSE; //用于标记是否退出while
Init(); //初始化界面、全局变量,等待游戏开始...
while(1)
{
press=GetKey(); //处理玩家按键操作
switch(CheckKey(press)) //CheckKey()对press进行归类,返回按键类别
{
case KEYEXIT: //如果press是定义的退出操作键类型,则退出
clrscr(); //清屏
bOutWhile = TRUE;
break;
/*如果press是下棋操作,做下棋操作,如果操作合法(所在位置可以下子...)就依据gPlayOrder和gCursor在相应位置画上'X' 或 'O' ,否则做出错处理(如提示该位置不能下子、请等待对方下子等...)*/
case KEYFALLCHESS:
if(ChessGo(gPlayOrder,gCursor)==FALSE) ;
DoError();
else
{
DoOK();
if(JudgeWin(gPlayOrder,gCursor)==TRUE) //判断是否赢棋(五子连心)
{
DoWin(gPlayOrder); //赢棋处理(如显示gPlayOrder赢棋信息)
bOutWhile = TRUE;
}
else //未赢棋
ChangeOrder(); //改变玩家顺序(即修改gPlayOrder,表示轮到另一方下棋了)
}
break;
case KEYMOVECURSOR: //方向键操作类型
MoveCursor(gPlayOrder,press); //方向键操作处理(包括更新gCursor、界面显示当前位置...)
break;
case KEYINVALID: //按键操作无效
break;
}
if(bOutWhile==TRUE) //如果TRUE则结束while循环
break;
}
EndGame(); //游戏结束处理(想做啥比较随意)
}