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