当前位置: 代码迷 >> 综合 >> 软工中级实训Stage2-Part3 :designreport
  详细解决方案

软工中级实训Stage2-Part3 :designreport

热度:94   发布时间:2024-03-06 02:19:22.0

1.设计思路

1.1 基本需求

由题中所给已知需求可知,我们需自行创建一个名为jumper的actor,要求这个jumper可以在grid中一次跳跃两个单元格,并且在跳跃过程中如果遇到面前是石头或者花朵时候可以越过。

1.2 自由扩展部分

1.2.1 单步move

功能陈述:

  1. 假设有A、B、C、D一条直线上由近及远的四个点,若此时jumper位于A点,并且有向C跳跃的趋势;
  2. 假设C点上有一个石头,这个石头阻碍jumper完成跳跃
  3. 此时jumper自身可以通过调用move功能,往前只运行一步,随后完成跳跃,跳跃到D点。

1.2.2 设置标记

  1. 为了更加直观的显示出1.2.1的功能,在jumper每次完成一次move时候,会在move之前那个方格上留下一朵花;
  2. 花的颜色会随jumper的运动而逐渐加深颜色,并且会被jumper覆盖。

1.3 设计细节部分

a. 如果一个jumper前面的位置是空的,但是前面隔一格的单元格包含一朵花或一块石头,他会怎么做?

  • 如果前面是一块石头,jumper将向前面的空位移动一步,然后在继续移动时跳过石头;而如果前面是一朵花,jumper将继续执行跳跃操作,覆盖掉花。

b. 如果jumper前面的隔一格的单元格在grid外,它将会怎么做?

  • jumper只向前移动一步,然后向右转90度以避免自己脱离栅格。

c. jumper面对格子的边缘会做什么?

  • jumper将向右转90度以避免自己在面对网格边缘时脱离网格。

d. 如果jumper前面隔一格的单元格还有另一个jumper2,那么该jumper将会做什么?

  • jumper2会执行Jump操作,而jumper会执行move操作

e. 如果一个jumper的路径里出现了另一个jumper2,jumper会怎么做?

  • 如果两个jumper相隔一个单元格,jumper会移动一个单元格,就像jumper2被认为是石头。而jumper2会执行Jump操作。如果两个jumper相邻,它们都可以执行Jump操作,使其有规律地相互跳跃。

f. jumper类还需要做其他测试吗?

  • 如果一个jumper前面的两格都是花或者石头,jumper将会怎么做?
  • 如果前面两格都是花,它依旧会做Jump操作;
  • 如果前面两格都是石头,他就会右转45°然后进行Jump操作。
  相关解决方案