伪代码的伪代码Select Children Process [SR.1]
和Randomize Children Process [SR.2]
重度表明这些过程是要多次运行的,尽管对于SR.1
未定义进行选择时,没有定义行为onEachNewAttempt
。
由于 theSequencing Request Process [SB.2.12]
和Navigation Request Process [NB.2.1]
期望的 Available Children 都被选择/随机化,并且唯一在遍历各种 Available Children之后Content Delivery Environment Process [DB.2]
初始化新尝试,LMS 似乎意味着在初始化期间运行这两个过程在尝试交付第一个活动或处理任何请求之前,活动树本身。
然而,这并没有解释什么时候SR.2
应该重新运行。由于DB.2
通过迭代从根到指定活动的活动路径来创建新的尝试进度信息,因此沿途随机化每个活动的可用子项将导致指定活动在活动树中的位置在选择后发生变化,这似乎不直观。此外,如果尝试实现onEachNewAttempt
这SR.1
一点也可能导致所选活动从可用活动中消失(尽管这可以解释为什么它的行为在 SCORM 中未定义)。
我的理解是,可用子项旨在初始化为所有子项的列表,然后SR.1
将SR.2
其应用于从根开始的所有活动,SR.2
然后将其重新应用于DB.2
路径中的每个活动,尽管这会改变顺序的活动。这是正确的还是我错过了什么?