代码拉取完成,页面将自动刷新
#include <stdio.h>
#include <string.h>
#include "chessApi.h"
typedef BOOL (*Testfunc)(void);
void resetBoard(void)
{
for(int i=0; i<ROWS; i++)
{
for(int j=0; j<COLS; j++)
{
chessBoard[i][j] = EMPTY;
}
}
}
void setChess(int x, int y, int role)
{
chessBoard[x][y] = role;
}
int getChess(int x, int y)
{
return chessBoard[x][y];
}
BOOL testPut1chess(void);
BOOL testCorner1(void);
BOOL testCorner2(void);
BOOL testPut1(void);
BOOL testPut2(void);
BOOL testPut3(void);
BOOL testPut4(void);
BOOL testRemove(void);
BOOL testDeadLoop(void);
Testfunc testArray[] =
{
testPut1chess,
testCorner1,
testCorner2,
testPut1,
testPut2,
testPut3,
testPut4,
testRemove,
testDeadLoop
};
#define TESTNUM sizeof(testArray)/sizeof(testArray[0])
void autoTest(void)
{
int success = 0;
for (int i=0; i<TESTNUM; i++) {
resetBoard();
if (testArray[i]()) {
printf("用例%d执行成功\n",i);
success++;
} else {
printf("用例%d执行失败\n",i);
}
}
if (success == TESTNUM)
printf("恭喜你,所有用例测试通过\n");
else
printf("很遗憾,%d个用例执行失败\n",TESTNUM-success);
}
BOOL testPut1chess(void)
{
return TRUE;
}
extern BOOL putChess(int thisX, int thisY, int role, int *pRemoveCnt, int lastX, int lastY, int *pRemoveX, int *pRmoeveY);
BOOL testCorner1(void)
{
int removeCnt=0;
int removeX=-1,removeY=-1;
BOOL ret = putChess(0, 0, BLACK, &removeCnt, -1, -1, &removeX, &removeY);
if (ret == FALSE)
return FALSE;
ret = putChess(0, 1, WHITE, &removeCnt, 0, 0, &removeX, &removeY);
if (ret == FALSE)
return FALSE;
ret = putChess(0, 1, WHITE, &removeCnt, 0, 0, &removeX, &removeY);
if (ret == TRUE) //重复放子
return FALSE;
ret = putChess(1, 0, WHITE, &removeCnt, 0, 0, &removeX, &removeY);
if (ret == FALSE)
return FALSE;
if(removeCnt != 1)
return FALSE;
if (removeX != 0 || removeY != 0)
return FALSE;
return TRUE;
}
BOOL testCorner2(void)
{
int removeCnt=0;
int removeX=-1,removeY=-1;
BOOL ret;
setChess(0,1,BLACK);
setChess(1,0,BLACK);
setChess(0,2,WHITE);
setChess(1,1,WHITE);
setChess(2,0,WHITE);
ret = putChess(0, 0, WHITE, &removeCnt, 2, 0, &removeX, &removeY);
if (ret == FALSE)
return FALSE;
if (removeCnt != 2)
return FALSE;
if (getChess(0,1) != EMPTY)
return FALSE;
if (getChess(1,0) != EMPTY)
return FALSE;
return TRUE;
}
BOOL testPut1(void)
{
int removeCnt=0;
int removeX=-1,removeY=-1;
BOOL ret;
setChess(0,0,BLACK);
setChess(0,2,BLACK);
setChess(1,0,WHITE);
setChess(1,1,BLACK);
ret = putChess(0, 1, WHITE, &removeCnt, 1, 1, &removeX, &removeY);
if (ret == FALSE)
return FALSE;
if (removeCnt != 1)
return FALSE;
if (getChess(0,0) != EMPTY)
return FALSE;
return TRUE;
}
BOOL testPut2(void)
{
int removeCnt=0;
int removeX=-1,removeY=-1;
BOOL ret;
setChess(1,0,BLACK);
setChess(0,1,BLACK);
setChess(0,2,WHITE);
setChess(1,1,WHITE);
ret = putChess(0, 0, WHITE, &removeCnt, 1, 1, &removeX, &removeY);
if (ret == FALSE)
return FALSE;
if (removeCnt != 1)
return FALSE;
if (getChess(0,1) != EMPTY)
return FALSE;
return TRUE;
}
BOOL testPut3(void)
{
int removeCnt=0;
int removeX=-1,removeY=-1;
BOOL ret;
setChess(1,0,BLACK);
setChess(0,1,BLACK);
ret = putChess(0, 0, WHITE, &removeCnt, 1, 1, &removeX, &removeY);
return ret == FALSE;
}
BOOL testPut4(void)
{
int removeCnt=0;
int removeX=-1,removeY=-1;
BOOL ret;
setChess(1,0,BLACK);
setChess(0,1,BLACK);
setChess(0,2,WHITE);
setChess(1,1,WHITE);
ret = putChess(0, 0, WHITE, &removeCnt, 1, 1, &removeX, &removeY); //提走1,0
ret = putChess(0, 1, BLACK, &removeCnt, 0, 0, &removeX, &removeY); //放回1,0, 提走0,0, 劫...
return ret == FALSE;
}
BOOL testRemove(void)
{
int removeCnt=0;
int removeX=-1,removeY=-1;
BOOL ret;
setChess(3,2,BLACK);
setChess(3,4,BLACK);
setChess(2,3,BLACK);
setChess(2,4,BLACK);
setChess(4,3,BLACK);
setChess(4,4,BLACK);
ret = putChess(3, 3, BLACK, &removeCnt, 4, 3, &removeX, &removeY); //可以放
return ret == TRUE;
}
BOOL testDeadLoop(void)
{
int removeCnt=0;
int removeX=-1,removeY=-1;
BOOL ret;
setChess(2,2,BLACK);
setChess(3,2,BLACK);
setChess(3,3,BLACK);
setChess(2,4,BLACK);
setChess(1,3,WHITE);
setChess(2,1,WHITE);
setChess(3,1,WHITE);
setChess(1,2,WHITE);
setChess(1,4,WHITE);
setChess(2,5,WHITE);
setChess(3,4,WHITE);
setChess(4,2,WHITE);
setChess(4,3,WHITE);
ret = putChess(2,3,BLACK, &removeCnt, 4,3,&removeX, &removeY);
return ret == FALSE;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。