中国象棋判断输赢算法怎么理解???

publicvoidcheckWin(){//判断输赢的方法isRedWin=0;isWhiteWin=0;for(i=0;i<3;i++){//遍历“将”的活动范围fo... public void checkWin() { //判断输赢的方法
isRedWin = 0;
isWhiteWin = 0;
for (i = 0; i < 3; i++) { //遍历“将”的活动范围
for (j = 0; j < 3; j++) {
if (point[0 + i][3 + j] == 5) { //如果失去主将
isRedWin++; //则另一方胜利
}
}
}
for (i = 0; i < 3; i++) { //遍历“帅”的活动范围
for (j = 0; j < 3; j++) {
if (point[7 + i][3 + j] == 21) { //若果失去主帅
isWhiteWin++; //则另一方胜利
}
}
}
}
展开
 我来答
154et
2012-05-24
知道答主
回答量:4
采纳率:0%
帮助的人:3.1万
展开全部
编写象棋时,对于每一个棋子的可见性的数据都有单独记录(每个交叉点情况记录,棋子位置记录等等),如果帅或将不在了,判断输赢,结束棋局
追问
上述程序怎么判断输赢啊??那个if循环遍历有没有等于“将”的。
追答
断网了,所以现在回复
总共有32个棋子,用坐标(x,y)表示棋盘上一个点,定义point[9][10}为一个字符或数字数组(1 to 9代表棋盘横向交叉点,10代表纵向交叉点),point(x,y)的每一个数对应一个棋子,1 到32) 0代表没有旗子,这个是棋盘的棋子数据,21 ,5代表的就是将,帅
王只能在9个地方,所以查看这九个地方是否有数组值为5 或21的,如果没有,就是不在了,判断输赢
在编象棋的时候,通常有禁手,不会出现以上程序,而是查看对方有没有可走的棋子
希望能给你帮助
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式