您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 20133583解罗隐_实验一
西南科技大学计算机学院实验报告实验名称五子棋黑盒测试实验地点东六E507实验日期2016/4/12指导教师兰景英学生班级软件1301学生姓名解罗隐学生学号20133583提交日期2016/4/291.题目1(1)题目内容描述针对黑色测试编写了C++五子棋游戏代码,本项目主要有棋局绘制,棋局功能和机器AI三个类,主要源码文件如下图:运行效果:此界面为中级AI,白色为机器方(2)测试用例的编写①界面测试:测试界面效果是否有误以及界面功能是否可操作:1)开始游戏测试用例名称:游戏操作测试用例编号:界面测试001测试时间:2016/4/12测试人:解罗隐操作序号:001错误等级:测试条件:开始游戏测试输入:点击开始游戏按钮预期输出:开始游戏实际输出:正常开始游戏测试结果:开始游戏按钮功能正常2)悔棋测试用例名称:游戏操作测试用例编号:界面测试002测试时间:2016/4/12测试人:解罗隐操作序号:002错误等级:测试条件:悔棋测试输入:点起悔棋按钮预期输出:游戏开始时悔棋游戏过程中悔棋游戏结束后悔棋提示操作有误悔棋成功提示操作有误实际输出:图1图2图三测试结果:悔棋功能正常悔棋功能正常悔棋功能正常图一:(由于没有落子不能进行悔棋,所以提示无法悔棋)图二:(游戏过程中可以进行悔棋,点击悔棋撤销上一步的落子)注:我方为黑色旗子,悔棋之前的落子为图中被红色圈起来的黑色旗子悔棋之后的结果:图三:游戏结束后悔棋由于游戏结束不能进行悔棋3)更多选项测试用例名称:游戏操作测试用例编号:界面测试003测试时间:2016/4/12测试人:解罗隐操作序号:003错误等级:测试条件:开始游戏测试输入:点击开始更多选项预期输出:更多选项框对话框弹出实际输出:更多选项框对话框弹出测试结果:更多选项按钮功能正常4)更多选项的字功能测试:1、机器智力测试用例名称:游戏操作测试用例编号:界面测试00301测试时间:2016/4/12测试人:解罗隐操作序号:00301错误等级:测试条件:开始游戏测试输入:选择机器智力等级预期输出:随着机器智力等级的增加,人越来越不容易赢,机器落子速度越来越快实际输出:随着机器智力等级的增加,人越来越不容易赢,机器落子速度越来越快测试结果:等级设置存在一定不合理,除了弱级和高级之间差距很明显可以感受出来之外,相邻的等级之间修改等级之后差距不太容易感受2、对战模式人机对战是人(黑子)落子后,机器(白子)自动落子人人对战:名称人人对战功能描述人与人对弈过程优先级必须完成输入游戏一方掷棋子工作流程当游戏一方掷棋子后,改变棋子颜色,另外一方选择位置进行落子输出双方均落子人机对战名称人机对战功能描述人与电脑对弈过程优先级必须完成输入游戏一方掷棋子工作流程当游戏一方掷棋子后,系统根据游戏规则选择位置进行落子输出根据游戏规则对对方落子做出反应对战模式测试:测试用例名称:游戏操作测试用例编号:界面测试00302测试时间:2016/4/12测试人:杨巧操作序号:00302错误等级:测试条件:开始游戏测试输入:选择对战模式预期输出:对战模式可以进行修改实际输出:对战模式可以进行修改测试结果:对战模式功能正常可以进行修改②性能测试1)落子①棋盘有效区域且无子处落子测试用例名称:游戏操作测试用例编号:性能测试10101测试时间:201/4/162测试人:解罗隐操作序号:10101错误等级:测试条件:落子测试输入:鼠标点击棋盘,落子预期输出:棋盘有效区域且无子实际输出:落子成功测试结果:落子功能正常②棋盘有效区域但有子处落子测试用例名称:游戏操作测试用例编号:性能测试10102测试时间:201/4/162测试人:解罗隐操作序号:10102错误等级:测试条件:落子测试输入:鼠标点击棋盘,落子预期输出:棋盘有效区域但有子实际输出:落子失败测试结果:落子功能正常③棋盘无效区域点击落子测试用例名称:游戏操作测试用例编号:性能测试10103测试时间:201/4/162测试人:解罗隐操作序号:10103错误等级:测试条件:落子测试输入:鼠标点击棋盘,落子预期输出:棋盘无效区域实际输出:落子失败测试结果:落子功能正常④同人连续落子测试用例名称:游戏操作测试用例编号:性能测试10104测试时间:2016/4/12测试人:解罗隐操作序号:10104错误等级:测试条件:同人连续落子测试输入:同一人落子后,在对方未落子前,继续点击棋盘落子预期输出:对于后一落子,系统不予回应实际输出:对于后一落子,系统不予回应测试结果:落子功能正常⑤判定胜负后落子测试用例名称:游戏操作测试用例编号:性能测试10105测试时间:2016/4/12测试人:解罗隐操作序号:10105错误等级:测试条件:系统已经判定胜负,继续落子测试输入:在胜负已经判定后,任一方继续落子预期输出:系统不予回应实际输出:系统不予回应测试结果:落子功能正常2)胜负评判测试用例名称:游戏操作测试用例编号:性能测试102测试时间:2016/4/12测试人:解罗隐操作序号:102错误等级:测试条件:棋局胜负评估测试输入:自动评判预期输出:判断棋局当前状态下胜负实际输出:判断棋局当前状态下胜负测试结果:评判功能正常3)电脑AI测试用例名称:游戏操作测试用例编号:性能测试103测试时间:2016/4/12测试人:解罗隐操作序号:102错误等级:测试条件:电脑AI测试输入:人机对战时,玩家落子后,电脑自动对应落子预期输出:电脑自动对应落子实际输出:电脑自动对应落子测试结果:电脑AI功能正常③算法测试本次项目主要使用的是Alpha-Beta剪枝算法AlphaBeta算法是根据Minimax算法得来的,首先我们必须明白MiniMax算法的思想。Minimax算法常用于棋类等由两方较量的游戏和程序。该算法是一个零总和算法,即一方要在可选的选项中选择将其优势最大化的选择,另一方则选择令对手优势最小化的方法。而开始的时候总和为0。但是如果实际中使用Minimax算法,由于搜索深度和可能的情况很多,算法的效率很不理想,其实并没有必要每个节点都必须搜索完毕,有些事没有必要的。AlphaBeta算法正是为了解决这个问题。1.对于一个MIN节点,若能估计出其倒推值的上确界Beta,并且这个Beta值不大于MIN的父节点(MAX节点)的估计倒推值的下确界Alpha,即Alpha≥Beta,则就不必再扩展该MIN节点的其余子节点了,因为这些节点的估值对MIN父节点的倒推值已无任何影响了,这一过程称为Alpha剪枝。2.对于一个MAX节点,若能估计出其倒推值的下确界Alpha,并且这个Alpha值不小于MAX的父节点(MIN节点)的估计倒推值的上确界Beta,即Alpha≥Beta,则就不必再扩展该MAX节点的其余子节点了,因为这些节点的估值对MAX父节点的倒推值已无任何影响了。这一过程称为Beta剪枝。3.一个MAX节点的Alpha值等于其后继节点当前最大的最终倒推值,一个MIN节点的Beta值等于其后继节点当前最小的最终倒推值所以Alpha-Beta剪枝算法的测试主要用于机器智力等级的设置上面对于机器智力需要大量的测试弱级:阻碍法AI:尽力阻碍对手成5连智力较低大量测试表明初级时,机器主要采用围堵法,比较容易取胜初级:不预测对棋局进行评分,找到分值最大的位置中级:预测一步对棋局进行评分,找到分值最大的位置高级:预测2步棋型取胜不容易(3)测试结果分析体架构方面都没有大问题,而在加入人机对战、机器对战及悔棋功能时,一些细微问题需要好好研究,存在一定的不完善。AI等智力问题也要适中。太弱智了玩得没激情,太聪明了玩得没信心。经过测试,发现再高级的AI也有输的时候,测试的博弈树的深度为2,再深反应会很慢,也就是说能预测两步的AI也会输。刚开始找到博弈树算法时,以为不管深度为多少都很聪明,后来发现只要找到窍门,那么深度为2的也很容易被打败。而深度为3的反应需要10秒,后面的深度呈指数型增长,不符合实际需求。游戏经过多次测试,反应良好。
本文标题:20133583解罗隐_实验一
链接地址:https://www.777doc.com/doc-3039663 .html