软件测试 因果+决策案例–中国象棋中走马

题目: 因果+决策案例

中国象棋中走马的实际情况:

1.如果落点在棋盘外,则不移动棋子;

2.如果落点与起点不构成日字型,则不移动棋子;

3.如果落点处有自己方棋子,则不移动棋子;

4.如果在落点方向的邻近交叉点有棋子(绊马腿),则不移动棋子;

5.如果不属于1-4条,且落点处无棋子,则移动棋子;

6.如果不属于1-4条,且落点处为对方棋子(非老将),则移动棋子并除去对方棋子;

7.如果不属于1-4条,且落点处为对方老将,则移动棋子,并提示战胜对方,游戏结束

解答:

分析题目可得原因和结果如下所示:

原因 结果
1.落点在棋盘上 21.不移动棋子
2.落点与起点构成日字 22.移动棋子
3.落点处为自己方棋子 23.移动棋子,并除去对方棋子
4.落点方向的邻近交叉点无棋子 24.移动棋子,并提示战胜对方,结束游戏
5.落点处无棋子
6.落点处为对方棋子(非老将)
7.落点处为对方老将

由此可得因果图如下所示:

注:1、添加中间节点11,目的是作为导出结果的进一步原因。

2、考虑结果不能同时发生,所以对其施加唯一约束O。

3、原因5、6、7不能同时发生,所以对其施加异约束E。

根据因果图建立判定表(分为两表):

注:1、表2中部分列被合并表示不可能发生的现象。

2、通过中间节点将用例的判定表简化为两个小表,减少了工作量。

3、用例因不方便写入原始表格中,故另单独用表列出。其中己方为红棋。

4、假定棋谱中10条横线从上到下分别用小写字母a、b、c、d、e、f、g、h、i、j表示,9条竖线从左到右分别用数字1、2、3、4、5、6、7、8、9表示。例如黑炮位置c2。

母a、b、c、d、e、f、g、h、i、j表示,9条竖线从左到右分别用数字1、2、3、4、5、6、7、8、9表示。例如黑炮位置c2。

软件测试 因果+决策案例--中国象棋中走马相关推荐

  1. 中国象棋中的两个为什么:为什么会“蹩马脚”?为什么双方棋子叫法不同?

    1.为什么中国象棋中要设置马脚? 其实象棋并没有"设置"蹩马脚. 象棋中有一个通行走子原则--不能跨子行棋:对于一次走多格的棋子,如果路线上有其他棋子,则不能跨过该棋子走子(炮吃子 ...

  2. 为何中国象棋中要设置马脚

    为何中国象棋中要设置马脚? 因为封建皇权 不知道各位有没有开过一个脑洞: 如果单一棋子叛变,那么几步棋可以威胁王位? 直接说结论: 没有任何棋子可以在2步内胁君离开王位. 先说双士,他们是最靠近将帅的 ...

  3. 中国象棋中的跳马问题

    题目描述 现在棋盘的大小不一定,由p,q给出,并且在棋盘中将出现障碍物(限制马的行动,与象棋走法相同) 输入 第一行输入n表示有n组测试数据. 每组测试数据第一行输入2个整数p,q,表示棋盘的大小(1 ...

  4. 软件测试因果图法 中国象棋,因果图法设计测试用例(示例代码)

    一.使用因果图的好处 1 考虑了多个输入之间的相互组合.相互制约关系 2 能够帮助我们按一定步骤,高效率地选择用例,同时还能为我们指出,程序规格说明描述中存在着什么问题 二.利用因果图导出 1.分析程 ...

  5. “炮”在中国象棋历史中的演变

    "炮"在中国象棋历史中的演变 中国象棋是中华民族几千年历史文化的瑰宝,有着悠久的历史.源远流长博大精深.象棋融汇了古代战争与和平的思想和意识,象棋除具有雅俗共赏的娱乐性外,还 兼有 ...

  6. BZOJ 1801 [Ahoi2009]中国象棋(线性动规)(洛谷P2051)

    题意:就是在n*m的格子中放"炮"(中国象棋中的棋子)问有多少种放法,使得没有任意的两个炮相互攻击 思路:我们很容易的得到一列或者一行中最多放下两个炮(我也只能得到这些了,满脑子状 ...

  7. 团队-团队编程项目中国象棋-项目进度

    代码地址:https://gitee.com/zhanghongjian666/ZhongGuoXiangQi/blob/master/zgxq.html 当前进度画出了棋盘和棋子并且可以进行人人对战 ...

  8. Cocos2d-X开发中国象棋《九》走棋规则

    在上一节中实现了走棋,这篇博客将介绍中国象棋中的走棋规则 在写博客前先可能一下象棋的走棋规则: 1)将 将的坐标关系:横坐标相等,纵坐标相减绝对值等于1,或者纵坐标相等,横坐标相减绝对值等于1 将的特 ...

  9. 中国象棋程序的设计与实现(十)--棋盘的定义和绘制

    2019独角兽企业重金招聘Python工程师标准>>> 本篇简要介绍棋盘类的定义.棋盘的关键属性.棋盘绘制算法的骨架. 棋盘的详细绘制算法等内容,我们将在接下来的几篇进行详细介绍. ...

  10. 程序员大佬教你如何用python制作中国象棋!一看就会

    中国象棋想必大家都玩过,突发奇想,想着怎么用python把中国国粹的中国象棋做出来呢?????? 首先老样子看看用python做出来的效果: 国粹--中国象棋 第一步:导入资源包 第二步:初始化 第三 ...

最新文章

  1. 使用version遇到的那些坑
  2. 教你用 buildroot 构建根文件系统
  3. C#如何判断线程池中所有的线程是否已经完成(转)
  4. elasticsearch 客户端工具_1分钟系列-Elasticsearch 简介与单机版安装
  5. python 文字语音朗读-教你用 Python 来朗读网页
  6. 使用FP-growth算法发现频繁项集
  7. C++五子棋(一)——开发环境
  8. mysql5.7环境搭建_mysql5.7.13环境搭建教程(解压缩版)
  9. jsp需要多少java基础_Java基础——JSP(一)
  10. c 调用openoffice word转pdf_批量 Word 转 PDF 方法
  11. Javascript Proxy对象 简介
  12. linux django搭建网站,Linux下搭建Django站点一
  13. 与David Blevins聊Java EE的未来
  14. 面试题 03.05. 栈排序
  15. python3.6 配置COCO API出错解决方案
  16. Linux基础命令---检查密码文件pwck 1
  17. 201903版的idea markdown无法预览的问题
  18. paip.c++程序崩溃的汇编级别调试-打印堆栈-gcc gdb
  19. 我为什么选择Hexo建站
  20. python实现微信发送信息

热门文章

  1. 微信对账单功能开发(V2)
  2. IT十年人生过客-十八-路过机遇
  3. 计算机网络的权威杂志,科学网—晒个自己整理的计算机网络和通信方向可能相关的期刊列表...
  4. SpringCloud-粪发涂墙90
  5. ps钢笔抠图的的引用说明
  6. 【内网穿透路由器】外网环境下使用Frp内网穿透路由器,实现后台的远程访问
  7. 如何在图片上加水印?图片添加、去除水印方法
  8. 802.11 与wifi
  9. 【Python表白代码】“情话都是我抄来的,想说给你听是真的。”情人节快乐~
  10. 全球软件公司排名2020