谜题编辑器简单使用指引
本章介绍如何使用 CCXC Engine 的谜题编辑器。
打开谜题编辑器
在 【出题】 -> 【题目管理】 里点击“新建题目”按钮,或是点击某一已有题目右侧的“编辑”按钮时,就会显示谜题编辑器。
谜题要素
标题
CCXC Engine 要求谜题必须有标题。标题不仅作为展示给选手,同时也是便于内部识别之用。
如果不需要有标题,建议修改谜题前端,取消标题的展示。
所属分区
每题都归属于一个分区。
在 CCXC Engine 中,我们使用“分区”作为题目的解锁分组。每个分区中的解锁进度都是独立的,并由一个“分区Meta”判定是否完成这个分区。
对于那些无法归属某个分区的题目,可以建立一个“隐藏分区”。
内容类型
有以下四个选项:
- 题目是图片
- 题目是HTML
- 题目是VUE SFC
- 上传题目模块
在选择不同的选项时,编辑器也会展示不同的内容输入框。
题目形式 | 适合何种题目 |
---|---|
图片 | 题目只包含一张图,或者什么都没有 |
HTML | 题目内容是静态富文本 |
VUE SFC | 题目内容存在交互,但是不需要引入第三方模块 |
上传题目模块 | 题目内容存在交互,并且需要引入第三方模块 |
题目类型
有以下五个选项:
- 小题
- 分区 Meta
- Meta Meta
- Final Meta
- 不计分题目
需要为每个题目选择题目类型。
如果有彩蛋类题目,需要选择“不计分题目”(除非你不介意它也出现在排行榜上)
题目备注
在管理后台面板中显示的备注。答题者看不到,可以随意写。
附加信息
有时,题目可能需要一些额外信息供程序使用,来编排展示或者是以此进行逻辑处理。这些信息可以填写在这里。
例如 CCBC 13 / 14 中就利用此字段填写了小题在四面体大地图上的分布。
注意
附加信息会发送到前端,所以不能填写与答案明显相关的数据。
题目描述
一般来说这个框用来填写 Flavor text(风味文本)。
这里可以使用 Markdown 格式填写。所以一些情况下,也会将题目全部内容填写在里面。
附加内容
这部分是题目通过后显示的信息。
有些题目通过后会给答题者展示额外信息。可以使用 Markdown 格式填写在这里。在提交了正确答案后,页面会立即刷新并展示附加内容。
答案
题目一定要有答案!
可以输入任意的字符作为答案。判题时,会将用户输入的答案和这里的答案进行匹配。
题目回答正确后再次请求题目,也会返回这里的答案内容。
允许尝试次数
允许进行提交答案判题的最大错误次数。如果错误次数达到允许尝试次数,将不会再接受判题请求。
默认值是 20
。
判题模式
可以在 标准
和 自定义判题函数
中选择。选择 自定义判题函数
的话,会多出来一个“高级判题脚本名称”的输入框。
标准 判题函数是指:用户提交的答案会和前面输入框中的答案进行匹配,匹配时忽略大小写、空格()、减号(
-
)和制表符(\t
)。如果匹配成功则判定回答正确。
如果以上逻辑无法满足,比如你希望出一道没有答案的题目,你需要使用“自定义判题函数”。在高级判题脚本中定义判题逻辑。
题目内容
在这一区域开始之前,有一个图片上传按钮:
点击可以上传图片并获取 URL,详情在图片和资源上传中介绍。
“题目图片”可以填写一个图片的 URL。会将它作为图片展示出来。无题目内容,或是题目内容已全部写入 flavor text 的题目,通常也会选择“题目是图片”的内容类型。此时这里空着不填即可。
“题目HTML”可以填写 HTML,标准 HTML tags、style 标签和 script 标签都可以使用。
注意
<script>
标签的 src
属性无效,也就是你不能通过此功能引入外部 js 文件。
(当然你可以通过 createElement
方式变相引入。)
“题目脚本”填写 VUE SFC 模块的脚本部分。需要按照指定的格式填写。详情查看:VUE题目
“题目HTML”和“题目脚本”均为 monaco 编辑器呈现。带有语法高亮和语法补全。也可以在 “高级” 菜单中启用 AI 补全来辅助开发。在编辑器右上角有一个全屏按钮,可以将编辑器界面展开至撑满整个浏览器窗口,便于大量代码的开发。
“上传题目模块”点击后会弹出文件选择对话框,选择一个 Vue 文件后上传,会在题目脚本中自动填入 Vue 模块的地址。这个 Vue 模块需要通过谜题模板开发并编译出来,详情查看:上传题目模块
解析
可以使用 Markdown 格式填写题目解析。在 【高级】 -> 【系统设置】 中打开“显示题目解析”,即可在谜题前端显示“解析”按钮以查看解析。通常在赛后使用。