1. 设计要求:
You are asked to create a class called Jumper. This actor can move forward two cells in each move. It “jumps” over rocks and flowers.
2. 设计思路
(同时也是对Inception的回答)
- 将岩石、Jumper、其他Actor设置为不可吃物体、可越过物体,设为类型一
- 将边界设为不可吃、不可越过物体,设为类型二
- 将花、空格设置为可吃、可越过物体,设为类型三,当Jumper停留在那个上面时会将其格子清空
情况:
1.若前方第二格为类型一、二物体:(Qb,Qc,Qd)
i.若前方一格为类型三物体,则前进一格,并右转四十五度
ii.若前方一格为类型一、二物体,则右转四十五度(Qa)
2.若前方第一格为类型一、二物体:
i.若前方第二格为类型一二:按照1中所述行动
ii.若前方第二格为类型三,则跳到类型三
3.若两个Jumper相遇(要跳到一格):会将对方视作岩石,因此会都右转四十五度(Qe)
3.实验效果
注:情况1.i与2.i相同,因此不单独测试
Test1:
Step 0:情况1.i
Step1:
前进一步并右转四十五度
Step2:
前进两格
Step3:情况1.i
遇见墙,因此前进一格并右转四十五度
Test2
Step0:
情况2.ii
Step1:
跳过石头
Test3
Step 0:
情况2.ii
Step 1:
Step 2:
越过石头后,清空格子
Test 4
Step 0:
情况1.i
Step 1:
因为接下来两格都不能走,所以右转四十五度