显示逻辑运行引擎
基本原则
使用show
和hide
关键字则意味着使用了显示逻辑
DSL在运行的时候遵循一下3个原则
- 题目默认为显示状态
- 如果题目使用了
show
,则默认变成隐藏状态 - 按照DSL顺序运行,满足条件时,改变题目的显示状态
下面具体举例说明:
场景一
if Q1A1 then show Q2
未填答时
语句 | 运行引擎理解 | Q2的显示状态 |
---|---|---|
初始化,Q2用到了show 关键字,遵循原则2 | 隐藏 | |
if Q1A1 then show Q2 | Q1A1未答,条件不满足,忽略then后面的行为 | 隐藏 |
最终Q2是隐藏的
选中了Q1A1
语句 | 运行引擎理解 | Q2的显示状态 |
---|---|---|
初始化,Q2用到了show 关键字,遵循原则2 | 隐藏 | |
if Q1A1 then show Q2 | Q1A1已答,条件满足,运行then后面的行为 | 显示 |
最终Q2是显示的
场景二
if Q1A1 then show Q2
if Q1A2 then show Q2~3
if Q1A3 then show Q2~4
未填答时
语句 | 运行引擎理解 | Q2的显示状态 |
---|---|---|
初始化,Q2用到了show 关键字,遵循原则2 | 隐藏 | |
if Q1A1 then show Q2 | Q1A1未答,条件不满足,忽略then后面的行为 | 隐藏 |
if Q1A2 then show Q2~3 | Q1A2未答,条件不满足,忽略then后面的行为 | 隐藏 |
if Q1A3 then show Q2~4 | Q1A3未答,条件不满足,忽略then后面的行为 | 隐藏 |
最终Q2是隐藏的
选中了Q1A2
语句 | 运行引擎理解 | Q2的显示状态 |
---|---|---|
初始化,Q2用到了show 关键字,遵循原则2 | 隐藏 | |
if Q1A1 then show Q2 | Q1A1未答,条件不满足,忽略then后面的行为 | 隐藏 |
if Q1A2 then show Q2~3 | Q1A2已答,条件满足,运行then后面的行为 | 显示 |
if Q1A3 then show Q2~4 | Q1A3未答,条件不满足,忽略then后面的行为 | 显示 (保留上一次状态) |
最终Q2是显示的