《因果圖判定表綜合練習(xí)2-下象棋》由會(huì)員分享,可在線閱讀,更多相關(guān)《因果圖判定表綜合練習(xí)2-下象棋(6頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、一一、根根據(jù)據(jù)以以下下關(guān)關(guān)于于中中國國象象棋棋軟軟件件中中關(guān)關(guān)于于走走馬馬的的規(guī)規(guī)則則的的描描述述,分分析析其其因因果果圖圖,并并設(shè)設(shè)計(jì)計(jì)用用例例:1、如果落點(diǎn)在棋盤外,則不移動(dòng)棋子;2、如果落點(diǎn)與起點(diǎn)不構(gòu)成日字型,則不移動(dòng)棋子;3、如果落點(diǎn)處有自己方棋子,則不移動(dòng)棋子;4、如果在落點(diǎn)方向的鄰近交叉點(diǎn)有棋子(絆馬腿),則不移動(dòng)棋子;5、如果不屬于1-4條,且落點(diǎn)處無棋子,則移動(dòng)棋子;6、如果不屬于1-4條,且落點(diǎn)處為對方棋子(非老將),則移動(dòng)棋子并除去對方棋子;7如果不屬于1-4條,且落點(diǎn)處為對方老將,則移動(dòng)棋子,并提示戰(zhàn)勝對方,游戲結(jié)束。二二、分分析析以以上上要要求求,得得出出原原因因和和結(jié)
2、結(jié)果果:原因:1、落點(diǎn)方向的鄰近交叉點(diǎn)無棋子;2、落點(diǎn)與起點(diǎn)構(gòu)成日字;3、落點(diǎn)處有己方棋子;4、落點(diǎn)在棋盤外;5、落點(diǎn)處無棋子;6、落點(diǎn)處為對方棋子(非老將);7、落點(diǎn)處為對方棋子(老將)中間節(jié)點(diǎn):11、允許移動(dòng)結(jié)果:21、不移動(dòng)棋子;22、移動(dòng)棋子;23、移動(dòng)棋子,并除去對方棋子;24、移動(dòng)棋子,并提示戰(zhàn)勝對方,結(jié)束游戲。三三、因因果果圖圖如如下下:四四、根根據(jù)據(jù)因因果果圖圖畫畫出出判判定定表表第一種解題思路:從3、4、5、6、7之間的唯一約束下手,只有遵守唯一關(guān)系時(shí)才是有效的,否則無論1、2取什么值都是錯(cuò)誤的。3 3、4 4、5 5、6 6、7 7遵遵守守唯唯一一約約束束123456789
3、1011121242322211543621落點(diǎn)方向的鄰近交叉點(diǎn)無棋子落點(diǎn)與起點(diǎn)構(gòu)成日字落點(diǎn)處有自己方棋子落點(diǎn)在棋盤外落點(diǎn)處無棋子落點(diǎn)處為對方棋子(非老將)不移動(dòng)棋子移動(dòng)棋子移動(dòng)棋子,并除去對方棋子移動(dòng)棋子,并提示戰(zhàn)勝對方,結(jié)束游戲允許移動(dòng)7落點(diǎn)處為對方棋子(老將)O條件11 11 11 11 11 11 11 11 11 11 10 00 021 11 11 11 11 10 00 00 00 00 01 11 131 10 00 00 00 01 10 00 00 00 01 10 040 01 10 00 00 00 01 10 00 00 00 01 150 00 01 10 00 0
4、0 00 01 10 00 00 00 060 00 00 01 10 00 00 00 01 10 00 00 070 00 00 00 01 10 00 00 00 01 10 00 0中間結(jié)果 11FALSEFALSETRUETRUETRUEFALSEFALSEFALSEFALSE FALSE FALSEFALSE結(jié)果21TRUETRUEFALSEFALSE FALSETRUETRUETRUETRUETRUETRUETRUE22FALSEFALSETRUEFALSE FALSEFALSEFALSEFALSEFALSE FALSE FALSEFALSE23FALSEFALSEFALSETR
5、UEFALSEFALSEFALSEFALSEFALSE FALSE FALSEFALSE24FALSEFALSEFALSEFALSETRUEFALSEFALSEFALSEFALSE FALSE FALSEFALSE考考慮慮到到只只要要是是在在棋棋盤盤外外,其其它它條條件件無無法法取取值值,結(jié)結(jié)果果就就是是不不能能移移動(dòng)動(dòng)。所所以以條條件件1 1可可以以單單獨(dú)獨(dú)考考慮慮成成為為一一個(gè)個(gè)用用例例,其其它它的的條條件件才才在在一一起起做做因因果果圖圖和和判判定定表表.即即1 1、6 6、1111、1616可可以以合合成成一一個(gè)個(gè)用用例例,就就是是在在落落點(diǎn)點(diǎn)是是棋棋盤盤外外的的情情況況下下,結(jié)結(jié)果果
6、直直接接為為不不能能移移動(dòng)動(dòng),不不需需要要跟跟其其它它條條件件放放在在一一起起判判斷斷。,這這樣樣的的話話就就剩剩下下1717個(gè)個(gè)測測試試用用例例。123456789101112條件1-1 11 11 11 11 11 11 11 10 00 00 02-1 11 11 11 10 00 00 00 01 11 11 131 10 00 00 00 00 00 00 00 00 00 00 04-1 10 00 00 01 10 00 00 01 10 00 05-0 01 10 00 00 01 10 00 00 01 10 06-0 00 01 10 00 00 01 10 00 00 0
7、1 17-0 00 00 01 10 00 00 01 10 00 00 0中間結(jié)果 11FALSEFALSETRUETRUETRUEFALSEFALSEFALSEFALSE FALSE FALSEFALSE結(jié)果21TURETRUEFALSEFALSE FALSETRUETRUETRUETRUETRUETRUETRUE22FALSEFALSETRUEFALSE FALSEFALSEFALSEFALSEFALSE FALSE FALSEFALSE23FALSEFALSEFALSETRUEFALSEFALSEFALSEFALSEFALSE FALSE FALSEFALSE24FALSEFALSEF
8、ALSEFALSETRUEFALSEFALSEFALSEFALSE FALSE FALSEFALSE如如果果落落點(diǎn)點(diǎn)不不構(gòu)構(gòu)成成日日字字,也也就就沒沒有有了了所所謂謂的的絆絆馬馬腿腿判判斷斷,所所以以當(dāng)當(dāng)條條件件2 2為為0 0時(shí)時(shí),條條件件1 1不不必必取取值值,這這樣樣6 6、7 7、8 8、9 9和和1414、1515、1616、1717又又能能合合并并。123456789101112條件1-1 11 11 11 1-0 00 00 02-1 11 11 11 10 00 00 00 01 11 11 131 10 00 00 00 00 00 00 00 00 00 00 04-1 1
9、0 00 00 01 10 00 00 01 10 00 05-0 01 10 00 00 01 10 00 00 01 10 06-0 00 01 10 00 00 01 10 00 00 01 17-0 00 00 01 10 00 00 01 10 00 00 0中間結(jié)果 11FALSEFALSETRUETRUETRUEFALSEFALSEFALSEFALSE FALSE FALSEFALSE結(jié)果21TURETRUEFALSEFALSE FALSETRUETRUETRUETRUETRUETRUETRUE22FALSEFALSETRUEFALSE FALSEFALSEFALSEFALSEF
10、ALSE FALSE FALSEFALSE23FALSEFALSEFALSETRUEFALSEFALSEFALSEFALSEFALSE FALSE FALSEFALSE24FALSEFALSEFALSEFALSETRUEFALSEFALSEFALSEFALSE FALSE FALSEFALSE3 3、4 4、5 5、6 6、7 7違違反反唯唯一一約約束束1314151617181920123456781、如果落點(diǎn)在棋盤外,則不移動(dòng)棋子;2、如果落點(diǎn)與起點(diǎn)不構(gòu)成日字型,則不移動(dòng)棋子;3、如果落點(diǎn)處有自己方棋子,則不移動(dòng)棋子;4、如果在落點(diǎn)方向的鄰近交叉點(diǎn)有棋子(絆馬腿),則不移動(dòng)棋子;5、如果不
11、屬于1-4條,且落點(diǎn)處無棋子,則移動(dòng)棋子;6、如果不屬于1-4條,且落點(diǎn)處為對方棋子(非老將),則移動(dòng)棋子并除去對方棋子;7如果不屬于1-4條,且落點(diǎn)處為對方老將,則移動(dòng)棋子,并提示戰(zhàn)勝對方,游戲結(jié)束。第一種解題思路:從3、4、5、6、7之間的唯一約束下手,只有遵守唯一關(guān)系時(shí)才是有效的,否則無論1、2取什么值都是錯(cuò)誤的。1242322211543621落點(diǎn)方向的鄰近交叉點(diǎn)無棋子落點(diǎn)與起點(diǎn)構(gòu)成日字落點(diǎn)處有自己方棋子落點(diǎn)在棋盤外落點(diǎn)處無棋子落點(diǎn)處為對方棋子(非老將)不移動(dòng)棋子移動(dòng)棋子移動(dòng)棋子,并除去對方棋子移動(dòng)棋子,并提示戰(zhàn)勝對方,結(jié)束游戲允許移動(dòng)7落點(diǎn)處為對方棋子(老將)O0 00 00 00
12、00 00 00 00 0-1 11 11 10 00 00 00 00 0-0 00 00 01 10 00 00 00 01 11 11 11 11 11 11 11 10 00 00 00 01 10 00 00 01 11 11 11 11 11 11 11 11 10 00 00 00 01 10 00 01 11 11 11 10 00 00 00 00 01 10 00 00 00 01 10 01 11 10 00 01 11 10 00 00 00 01 10 00 00 00 01 11 10 01 10 01 10 01 10 0FALSEFALSE FALSE FALS
13、EFALSEFALSEFALSEFALSE這樣的數(shù)據(jù)組合在實(shí)際測試時(shí)是不可能構(gòu)造出來的,所以無需測試TRUETRUETRUETRUETRUETRUETRUETRUEFALSEFALSE FALSE FALSEFALSEFALSEFALSEFALSEFALSEFALSE FALSE FALSEFALSEFALSEFALSEFALSEFALSEFALSE FALSE FALSEFALSEFALSEFALSEFALSE13141516170 00 00 00 00 01 10 00 00 00 00 00 00 00 00 00 01 10 00 00 00 00 01 10 00 00 00 00
14、 01 10 01 10 00 00 01 1FALSEFALSE FALSE FALSEFALSETRUETRUETRUETRUETRUEFALSEFALSE FALSE FALSEFALSEFALSEFALSE FALSE FALSEFALSEFALSEFALSE FALSE FALSEFALSE13141516170 01 10 00 00 00 01 1FALSETRUEFALSEFALSEFALSE考考慮慮到到只只要要是是在在棋棋盤盤外外,其其它它條條件件無無法法取取值值,結(jié)結(jié)果果就就是是不不能能移移動(dòng)動(dòng)。所所以以條條件件1 1可可以以單單獨(dú)獨(dú)考考慮慮成成為為一一個(gè)個(gè)用用例例,其其它
15、它的的條條件件才才在在一一起起做做因因果果圖圖和和判判定定表表.即即1 1、6 6、1111、1616可可以以合合成成一一個(gè)個(gè)用用例例,就就是是在在落落點(diǎn)點(diǎn)是是棋棋盤盤外外的的情情況況下下,結(jié)結(jié)果果直直接接為為不不能能移移動(dòng)動(dòng),不不需需要要跟跟其其它它條條件件放放在在一一起起判判斷斷。,這這樣樣的的話話就就剩剩下下1717個(gè)個(gè)測測試試用用例例。如如果果落落點(diǎn)點(diǎn)不不構(gòu)構(gòu)成成日日字字,也也就就沒沒有有了了所所謂謂的的絆絆馬馬腿腿判判斷斷,所所以以當(dāng)當(dāng)條條件件2 2為為0 0時(shí)時(shí),條條件件1 1不不必必取取值值,這這樣樣6 6、7 7、8 8、9 9和和1414、1515、1616、1717又又能能
16、合合并并。910111213141516171819202122232425262728293031321、如果落點(diǎn)在棋盤外,則不移動(dòng)棋子;2、如果落點(diǎn)與起點(diǎn)不構(gòu)成日字型,則不移動(dòng)棋子;3、如果落點(diǎn)處有自己方棋子,則不移動(dòng)棋子;4、如果在落點(diǎn)方向的鄰近交叉點(diǎn)有棋子(絆馬腿),則不移動(dòng)棋子;5、如果不屬于1-4條,且落點(diǎn)處無棋子,則移動(dòng)棋子;6、如果不屬于1-4條,且落點(diǎn)處為對方棋子(非老將),則移動(dòng)棋子并除去對方棋子;7如果不屬于1-4條,且落點(diǎn)處為對方老將,則移動(dòng)棋子,并提示戰(zhàn)勝對方,游戲結(jié)束。3 3、4 4、5 5、6 6、7 7違違反反唯唯一一約約束束-1 11 11 11 11 11
17、11 11 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 11 11 11 11 11 11 11 10 00 00 00 00 00 00 00 01 11 11 11 10 00 00 00 01 11 11 11 10 00 00 00 01 11 11 11 10 00 00 00 01 11 10 00 01 11 10 00 01 11 10 00 01 11 10 00 01 11 10 00 01 11 10 00 01 10 01 10 01 10 01 10 01 10 01 10 01 10 01 10 01 10 01 10 01 10 01 10 0這樣的數(shù)據(jù)組合在實(shí)際測試時(shí)是不可能構(gòu)造出來的,所以無需測試