当前仓库属于暂停状态,部分功能使用受限,详情请查阅 仓库状态说明
1 Star 2 Fork 0

冷钦街 / chess
暂停

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
testChess.c 4.80 KB
一键复制 编辑 原始数据 按行查看 历史
冷钦街 提交于 2018-09-25 23:46 . 删除多余的打印语句
#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;
}
C
1
https://gitee.com/lengqinjie/chess.git
git@gitee.com:lengqinjie/chess.git
lengqinjie
chess
chess
master

搜索帮助