软件测试 因果+决策案例--中国象棋中走马
软件测试 因果+决策案例–中国象棋中走马
题目: 因果+决策案例
中国象棋中走马的实际情况:
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.为什么中国象棋中要设置马脚? 其实象棋并没有"设置"蹩马脚. 象棋中有一个通行走子原则--不能跨子行棋:对于一次走多格的棋子,如果路线上有其他棋子,则不能跨过该棋子走子(炮吃子 ...
- 为何中国象棋中要设置马脚
为何中国象棋中要设置马脚? 因为封建皇权 不知道各位有没有开过一个脑洞: 如果单一棋子叛变,那么几步棋可以威胁王位? 直接说结论: 没有任何棋子可以在2步内胁君离开王位. 先说双士,他们是最靠近将帅的 ...
- 中国象棋中的跳马问题
题目描述 现在棋盘的大小不一定,由p,q给出,并且在棋盘中将出现障碍物(限制马的行动,与象棋走法相同) 输入 第一行输入n表示有n组测试数据. 每组测试数据第一行输入2个整数p,q,表示棋盘的大小(1 ...
- 软件测试因果图法 中国象棋,因果图法设计测试用例(示例代码)
一.使用因果图的好处 1 考虑了多个输入之间的相互组合.相互制约关系 2 能够帮助我们按一定步骤,高效率地选择用例,同时还能为我们指出,程序规格说明描述中存在着什么问题 二.利用因果图导出 1.分析程 ...
- “炮”在中国象棋历史中的演变
"炮"在中国象棋历史中的演变 中国象棋是中华民族几千年历史文化的瑰宝,有着悠久的历史.源远流长博大精深.象棋融汇了古代战争与和平的思想和意识,象棋除具有雅俗共赏的娱乐性外,还 兼有 ...
- BZOJ 1801 [Ahoi2009]中国象棋(线性动规)(洛谷P2051)
题意:就是在n*m的格子中放"炮"(中国象棋中的棋子)问有多少种放法,使得没有任意的两个炮相互攻击 思路:我们很容易的得到一列或者一行中最多放下两个炮(我也只能得到这些了,满脑子状 ...
- 团队-团队编程项目中国象棋-项目进度
代码地址:https://gitee.com/zhanghongjian666/ZhongGuoXiangQi/blob/master/zgxq.html 当前进度画出了棋盘和棋子并且可以进行人人对战 ...
- Cocos2d-X开发中国象棋《九》走棋规则
在上一节中实现了走棋,这篇博客将介绍中国象棋中的走棋规则 在写博客前先可能一下象棋的走棋规则: 1)将 将的坐标关系:横坐标相等,纵坐标相减绝对值等于1,或者纵坐标相等,横坐标相减绝对值等于1 将的特 ...
- 中国象棋程序的设计与实现(十)--棋盘的定义和绘制
2019独角兽企业重金招聘Python工程师标准>>> 本篇简要介绍棋盘类的定义.棋盘的关键属性.棋盘绘制算法的骨架. 棋盘的详细绘制算法等内容,我们将在接下来的几篇进行详细介绍. ...
- 程序员大佬教你如何用python制作中国象棋!一看就会
中国象棋想必大家都玩过,突发奇想,想着怎么用python把中国国粹的中国象棋做出来呢?????? 首先老样子看看用python做出来的效果: 国粹--中国象棋 第一步:导入资源包 第二步:初始化 第三 ...
最新文章
- 使用version遇到的那些坑
- 教你用 buildroot 构建根文件系统
- C#如何判断线程池中所有的线程是否已经完成(转)
- elasticsearch 客户端工具_1分钟系列-Elasticsearch 简介与单机版安装
- python 文字语音朗读-教你用 Python 来朗读网页
- 使用FP-growth算法发现频繁项集
- C++五子棋(一)——开发环境
- mysql5.7环境搭建_mysql5.7.13环境搭建教程(解压缩版)
- jsp需要多少java基础_Java基础——JSP(一)
- c 调用openoffice word转pdf_批量 Word 转 PDF 方法
- Javascript Proxy对象 简介
- linux django搭建网站,Linux下搭建Django站点一
- 与David Blevins聊Java EE的未来
- 面试题 03.05. 栈排序
- python3.6 配置COCO API出错解决方案
- Linux基础命令---检查密码文件pwck 1
- 201903版的idea markdown无法预览的问题
- paip.c++程序崩溃的汇编级别调试-打印堆栈-gcc gdb
- 我为什么选择Hexo建站
- python实现微信发送信息