@chenwei123
2018-08-22T09:04:15.000000Z
字数 14596
阅读 655
列表项
冰橙公司
"1": [{"img": "https://static1.bcjiaoyu.com/cxy/CSS/p1-2.png-865x448","action": "哇!太牛逼了!"},{"message": "太棒了,你又学会了一小节,斌叔先喝杯茶下节再讲哦。"},{"img": "https://static1.bcjiaoyu.com/cxy/CSS/gif4.gif-180x180","action": "打卡,炫耀下!","record": true}]
{"1": [{"message": "太棒了,你又学会了一小节,斌叔先喝杯茶下节再讲哦。"},{"img": "https://static1.bcjiaoyu.com/cxy/CSS/gif4.gif-180x180","action": "打卡,炫耀下!","record": true}],"2": [{"message": "太棒了,你又学会了一小节,斌叔先喝杯茶下节再讲哦。"},{"img": "https://static1.bcjiaoyu.com/cxy/CSS/gif4.gif-180x180","action": "打卡,炫耀下!","record": true}]}
"1":代表的是第一节课的数据,2,代表第二节课程的数据
"catalogs":[{"title":"html介绍"},{"title":"标题"},{"title":"分隔线"},{"title":"文字段落"},{"title":"斜体字"},{"title":"粗体字"},{"title":"下划线字"},{"title":"图片"},{"title":"无序列表"},{"title":"有序列表"},{"title":"表格"},{"title":"视频"},{"title":"链接"},{"title":"html完整结构"}]
如果一个课程需要目录结构,则在课程最后加个
catalogs数组。
{"1": [{"message": "太棒了,你又学会了一节,斌叔先茶喝多了,要上厕所去,下节课再讲!"},{"action": "打卡,炫耀下!","chapter": 7,"grow_number": 0,"img": "https://static1.bcjiaoyu.com/cxy/html+css/1-9.gif-300x194","record": true,"zuan_number": 0}],"2": [{"img": "https://static1.bcjiaoyu.com/bootstrap_img-02-13.PNG-471x243"},{"message": "太棒了,你又学会了一节,斌叔先茶喝多了,要上厕所,下节课再讲!"},{"action": "打卡,炫耀下!","chapter": 18,"grow_number": 0,"img": "https://static1.bcjiaoyu.com/cxy/html+css/1-9.gif-300x194","record": true,"zuan_number": 0}],"catalogs":[{"title":"bootstrap简介"},{"title":"响应式及网格系统"}]}
需要注意的是,一个课程写了几节课,那么
catalogs这个数组中就必须对应有多少个字典(目录)
tag:知识点;
imgs(tag 同级的):问题题目的图片描述;
message(tag 同级):问题题目的文本描述;
options: 问题选项部分,是个数组;
content(options 下面的每个选项(字典)): 选项的标志,类似 A,B,C ;
message(options 下面的每个选项(字典)): 选项的文字描述;
imgs(options 下面的每个选项(字典)): 选项的图片描述;
action: 动作按钮的选项,这里的按钮是用户点击的需要的
answer: 答案
exercises:是否是习题,true
wrong:用户答错的消息(同程序媛格式)
correct:用户答对的消息(同程序媛格式)
{"tag": "逻辑运算符","imgs": [],"message": "下列关于逻辑运算符说法错误的是()","options": [{"content": "A","message": "表达式1 and 表达式2 是当两个表达式都为真时为真","imgs": []},{"content": "B","message": "表达式1 or 表达式2 是当两个表达式中有一个为真时为真","imgs": []},{"content": "C","message": "not 表达式1是当表达式1为真时为真","imgs": []}],"action": [{"type": "text","content": "A"},{"type": "text","content": "B"},{"type": "text","content": "C"}],"answer": "C","exercises": true,"wrong": [{"message": "What?答案是C啊!","action": "好哒,我记住了"}],"correct": [{"message": "学的很好哦!","action": "嘿嘿"}]}
tag:知识点;
imgs(tag 同级的):问题题目的图片描述;
message(tag 同级):问题题目的文本描述;
link: 代码编写的链接地址;
action: 动作按钮上的文字,这里的按钮是用户点击的需要的
link:1.如果是 html 编辑器, link 的值为: https://www.cxy61.com/child/app/home/codeEditRN.html2.如果是 Python、c 类似编辑器,link 的值为: https://www.cxy61.com/child/app/home/compileRN.html?lang=python 或者 https://www.cxy61.com/child/app/home/compileRN.html?lang=c
{"tag": "算术运算符","message": "请定义两个变量x、y并赋值为12、5,输出x+y的值","imgs": [],"link": "www.code.com","action": "下一题"}
注意: 试卷的最后一道题,要加个
"record":true。用以提交试卷
[{"tag": "逻辑运算符","imgs": [],"message": "下列关于逻辑运算符说法错误的是()","options": [{"content": "A","message": "表达式1 and 表达式2 是当两个表达式都为真时为真","imgs": []},{"content": "B","message": "表达式1 or 表达式2 是当两个表达式中有一个为真时为真","imgs": []},{"content": "C","message": "not 表达式1是当表达式1为真时为真","imgs": []}],"action": [{"type": "text","content": "A"},{"type": "text","content": "B"},{"type": "text","content": "C"}],"answer": "C","exercises": true,"wrong": [{"message": "What?答案是C啊!","action": "好哒,我记住了"}],"correct": [{"message": "学的很好哦!","action": "嘿嘿"}]},{"tag": "python条件判断","message": "请定义一个变量x并赋值,判断输出x对3取余的结果,如成立输出true,否则输出false","imgs": [],"link": "www.code.com","action": "下一题"},{"tag": "算术运算符","message": "请定义两个变量x、y并赋值为12、5,输出x+y的值","imgs": [],"link": "www.code.com","action": "下一题"},{"tag": "算术运算符","message": "请定义两个变量x、y并赋值为12、5,输出x/y的值","imgs": [],"link": "www.code.com","action": "下一题"},{"tag": "算术运算符","message": "请定义两个变量x、y并赋值为12、5,输出x对y取余的值","imgs": [],"link": "www.code.com","action": "下一题"},{"tag": "关系运算符","message": "请定义两个变量x、y并赋值为12、5,写一个条件判断语句来判断x、y是否相等,如相等输出true,否则输出false","imgs": [],"link": "www.code.com","action": "下一题"},{"tag": "算术运算符","message": "请定义两个变量x、y并赋值为12、5,输出x-y的值","imgs": [],"link": "www.code.com","action": "下一题"},{"tag": "赋值运算符","message": "请定义一个变量x并赋值,输出x对10取整的结果(用赋值运算符)","imgs": [],"link": "www.code.com","action": "下一题"},{"tag": "算术运算符","message": "请定义两个变量x、y并赋值为12、5,输出x*y的值","imgs": [],"link": "www.code.com","action": "下一题"},{"tag": "赋值运算符","message": "请定义一个变量x并赋值,输出x除以10的结果(用赋值运算符)","imgs": [],"link": "www.code.com","action": "下一题"},{"tag": "关系运算符","message": "请定义两个变量x、y并赋值为12、5,写一个条件判断语句来判断x、y是否相等,如相等输出true,否则输出false","imgs": [],"link": "www.code.com","action": "下一题"},{"tag": "赋值运算符","message": "请定义一个变量x并赋值,输出x加上10的结果(用赋值运算符)","imgs": [],"link": "www.code.com","action": "下一题"},{"tag": "算术运算符","message": "请定义两个变量x、y并赋值为12、5,输出x对y取整的值","imgs": [],"link": "www.code.com","action": "下一题"},{"tag": "赋值运算符","message": "请定义一个变量x并赋值,输出x对10取余的结果(用赋值运算符)","imgs": [],"link": "www.code.com","action": "下一题"},{"tag": "python条件判断","message": "请定义一个变量x并赋值,判断x是否等于10,如成立输出'x等于10',否则输出'x不等于10'","imgs": [],"link": "www.code.com","action": "下一题"},{"tag": "赋值运算符","message": "请定义一个变量x并赋值,输出x减去10的结果(用赋值运算符)","imgs": [],"link": "www.code.com","action": "下一题"},{"tag": "赋值运算符","message": "请定义一个变量x并赋值,输出x乘以10的结果(用赋值运算符)","imgs": [],"link": "www.code.com","action": "下一题"},{"tag": "逻辑运算符","message": "请定义两个变量并分别赋值为5、6,判断x是否等于10并且y是否等于6,如上述条件成立输出true,否则输出false","imgs": [],"link": "www.code.com","action": "下一题"},{"tag": "逻辑运算符","message": "请定义两个变量并分别赋值为2、4,判断x是否等于2或y是否等于5,如上述条件成立输出true,否则输出false","imgs": [],"link": "www.code.com","action": "下一题"},{"tag": "逻辑运算符","message": "请定义一个变量x并赋值为3,输出————非x等于4","imgs": [],"link": "www.code.com","record":true,"action": "已经做完啦!"}]
| Name | Description |
|---|---|
| zuan_number | 钻石数量 |
| grow_number | 经验数量 |
如果有
zuan_number、grow_number字段,必须有action和chapter字段,并且chapter字段必须保证在当前课节数组中保持唯一
{"message":"相信通过学习你已经非常熟悉HTML了。","action":"必须的!","chapter":1,"zuan_number":10,"grow_number":10}
{"message":"请问下面哪一种才是p标签的正确写法?\n A.<p>不知道写点啥</p>\n B.<p>不知道写点啥<p>\n C.(p)不知道写点啥(p)","action":[{"type":"text", "content":"A"},{"type":"text", "content":"B"},{"type":"text", "content":"C"}],"answer":"A","exercises":true,"wrong":[{"message":"答案应该是A啦,要记住哦!","action":"好哒!"}],"correct":[{"message":"题做对了就是要这么拽~","action":"就素这么厉害!","chapter":1,"zuan_number":10,"grow_number":20}]}
{"tag": "逻辑运算符","imgs": [],"message": "下列关于逻辑运算符说法错误的是()","options": [{"content": "A","message": "表达式1 and 表达式2是当两个表达式都为真时为真","imgs": []},{"content": "B","message": "表达式1 or 表达式2是当两个表达式中有一个为真时为真","imgs": []},{"content": "C","message": "not 表达式1是当表达式1为真时为真","imgs": []}],"action": [{"type": "text","content": "A"},{"type": "text","content": "B"},{"type": "text","content": "C"}],"answer":"A","exercises":true,"wrong":[{"message":"答案应该是A啦,要记住哦!","action":"好哒!","chapter":2,"zuan_number":0,"grow_number":0}],"correct":[{"message":"题做对了就是要这么拽~","action":"就素这么厉害!","chapter":1,"zuan_number":10,"grow_number":20}]}
{"message": "下面尝试设置不同的边框宽度和颜色。","link": "www.code.com","action": "做好啦!","chapter":1,"zuan_number":10,"grow_number":20}
{"tag": "算术运算符","message": "请定义两个变量x、y并赋值为12、5,输出x+y的值","imgs": [],"link": "www.code.com","action": "下一题","chapter":1,"zuan_number":10,"grow_number":20}
"1": [{"message": "小仙女,上一课程里,我们学习了HTML。"},{"message": "相信通过学习你已经非常熟悉HTML了。","action": "必须的!","zuan_number":10,"grow_number":10,"chapter":1},{"img": "https://static1.bcjiaoyu.com/cxy/CSS/GIF1.gif-256x256"},{"message": "但是想要色彩缤纷的网页,只有HTML是远远不够的!","action": "咦,还需要神马?","zuan_number":12,"grow_number":10,"chapter":2},{"message": "还需要CSS!"},{"img": "https://static1.bcjiaoyu.com/cxy/CSS/gif2.gif-256x192","action": "CSS是啥玩意?","zuan_number":10,"grow_number":25,"chapter":3},{"message": "CSS的名称叫做“层叠样式表”,说的直白点,"},{"message": "就是改变HTML元素的样式。比如颜色、大小、边框这种。"},{"message": "像这样:"},{"img": "https://static1.bcjiaoyu.com/cxy/CSS/p1-1.png-865x392"},{"message": "还有这样:"},{"img": "https://static1.bcjiaoyu.com/cxy/CSS/p1-2.png-865x448","action": "哇!太牛逼了!"},{"img": "https://static1.bcjiaoyu.com/cxy/CSS/gif3.gif-312x390"},{"message": "它们配合能做出很多酷炫的网页。"},{"message": "下面的这节课,就让斌叔告诉你,如何将之前做的网页改变成如下的样子。"},{"img": "https://static1.bcjiaoyu.com/cxy/CSS/p1-3.png-383x662","action": "赶紧的吧","zuan_number":10,"grow_number":35,"chapter":4},{"message": "太棒了,你又学会了一小节,斌叔先喝杯茶下节再讲哦。"},{"tag": "逻辑运算符","imgs": [],"message":"下列关于逻辑运算符说法错误的是()","options": [{"content": "A","message": "表达式1 and 表达式2是当两个表达式都为真时为真","imgs": []},{"content": "B","message": "表达式1 or 表达式2是当两个表达式中有一个为真时为真","imgs": []},{"content": "C","message": "not 表达式1是当表达式1为真时为真","imgs": []}],"action": [{"type": "text","content": "A"},{"type": "text","content": "B"},{"type": "text","content": "C"}],"answer":"A","exercises":true,"wrong":[{"message":"答案应该是A啦,要记住哦!","action":"好哒!","chapter":5,"zuan_number":0,"grow_number":0}],"correct":[{"message":"题做对了就是要这么拽~","action":"就素这么厉害!","chapter":6,"zuan_number":10,"grow_number":20}]},{"img": "https://static1.bcjiaoyu.com/cxy/CSS/gif4.gif-180x180","action": "打卡,炫耀下!","record": true}],
可以看到,上述课节数据中有4个带
action字段的加了zuan_number、grow_number,chapter是从1开始编码的
| Name | Description |
|---|---|
| message | 代表显示的文本消息 |
| action | 底部动作按钮上的文字 |
| img | 图片消息中图片的地址 |
| exercises | 区分普通消息(不含该字段)还是习题消息(该字段的值是 true) |
| wrong | 习题下,用户做错了的消息组 |
| correct | 习题下用户做对了的消息组 |
| record | 每节课的最后一条消息,加个 record:true, 代表这个需要打卡记录 |
一条消息,即`{}`这个符号里面(两不能):不能同时包含 `message` 字段和 `img` 字段;不能同时包含 `link` 字段和 `img` 字段;
Example-1
{"message": "是不是看到了一条笔直的线呀?"}
一个
{}符号里只有一个message字段,纯文本消息,消息后面还是消息
Example-2
{"message":"相信通过学习你已经非常熟悉HTML了。","action":"必须的!"}
> 消息中含有 `message` 和 `action`,意思是会话消息后紧跟着一个动作按钮
Example-1
{"img": "https://static1.bcjiaoyu.com/cxy/html/html1-12.png-674x776"}
这个是图片消息,消息后面还是消息。只含有一个
img字段
Example-2
{"img": "https://static1.bcjiaoyu.com/cxy/CSS/p7-1.png-279x346","action": "对哦!"}
图片消息出来之后,紧跟着出来一个动作按钮。必须有
img和action
Example-1
{"img": "https://static1.bcjiaoyu.com/cxy/CSS/p7-1.png-279x346","video": "https://static1.bcjiaoyu.com/cxy/1.mp4"}
Example-2
{"img": "https://static1.bcjiaoyu.com/cxy/CSS/p7-1.png-279x346","video": "https://static1.bcjiaoyu.com/cxy/1.mp4","action": "对哦!"}
Example-1
{"link": "www.code.com","message": "现在,修改右边的HTML,改成这样:"}
如果是带链接的消息,则
link必须与message放在一起。链接消息后面跟着的还是消息。
Link 描述:如果是www.code.com,则打开的是html/javascript 编辑器;如果是www.compile.com/python,则打开的就是 python 编译器;如果是https://repl.it/languages/python(类似这种),则打开的就是一个第三方的网站;
Example-2
{"message": "下面尝试设置不同的边框宽度和颜色。","link": "www.code.com","action": "做好啦!"}
链接消息的后面紧跟着动作按钮。
Example-1
{"message":"请问下面哪一种才是p标签的正确写法?\n A.<p>不知道写点啥</p>\n B.<p>不知道写点啥<p>\n C.(p)不知道写点啥(p)","action":[{"type":"text", "content":"A"},{"type":"text", "content":"B"},{"type":"text", "content":"C"}],"answer":"A","exercises":true,"wrong":[{"img":"../../statics/images/icons/icon3.gif"},{"message":"抱歉,没忍住的我笑出了声……"},{"message":"答案应该是A啦,要记住哦!","action":"好哒!"}],"correct":[{"img":"../../statics/images/icons/icon7.gif"},{"message":"题做对了就是要这么拽~","action":"就素这么厉害!"}]}
Example-2:(again:true)
{"message": "请问<h1>到<h6>元素的功能是什么呢?\n A.定义标题\n B.定义段落\n C.定义字体","action": [{"type": "text","content": "A"},{"type": "text","content": "B"},{"type": "text","content": "C"}],"answer": "A","exercises": true,"wrong": [{"img": "https://static1.bcjiaoyu.com/cxy/html/3-3.gif-200x200"},{"message": "What?再想想","action": "再做一次","again": true}],"correct": [{"message": "学的很好哦!"},{"img": "https://static1.bcjiaoyu.com/cxy/html/3-2.gif-500x275","action": "嘿嘿","chapter": 3,"zuan_number": 2,"grow_number": 16}]}
习题消息,
message是题目,answer是这个题的答案,action是一个数组,对应的是A,B,C这种选项,exercises是区分是习题消息还是普通消息。wrong对应的是一个消息组,即用户选错了之后要放出的消息。correct对用的是一个消息组,即用户选对了之后要放出的消息。
需要注意是: 每个消息组的最后一条消息,必须有action字段。
需要注意是: 如果习题做错了,想要用户一直做下去,则在wrong消息组的最后一条,加个字段again:true
| Name | Description | 值 |
|---|---|---|
| tag | 习题的编号 | 做标记使用 |
| type | 习题类型 | adaptProblem,blankProblem,sequenceProblem |
| message | 题干 | |
| imgs | 问题的图片描述(选择题/顺序题) | 数组 |
| detailMessage | 需要填的空和已有值(仅限填空题) | 数组 |
| options | 选项列表 | 数组 |
| action | 用户所有的选择项 | 数组 |
| answer | 填空题的答案(填空题/顺序题为数组,选择题为字符串) | |
| exercises | 是习题 | true |
| wrong | 错误 | 错误消息列表 |
| correct | 正确 | 正确消息列表 |
| isHide | 该题是否隐藏当学习教程时 | true |
| choiceType | 单选还是多选 | single(单选) |
填空题:
detailMessage如果需要用户填的选项,则用""空字符代替。answer填空题的答案,是一个数组。choiceType,单选值为single,多选则该字段不写。
{"type": "sequenceProblem","answer": ["1","2","3"],"tag": "1","exercises": true,"message": "把大象放进冰箱的顺序?","imgs": [],"options": [{"message": "打开冰箱门","imgs": [],"content": "1"},{"message": "大象放进去","imgs": [],"content": "2"},{"message": "关闭冰箱门","imgs": [],"content": "3"}],"action": [{"type": "text","content": "1"},{"type": "text","content": "2"},{"type": "text","content": "3"}],"wrong": [{"message": "答错了","action": "下一条"}],"correct": [{"message": "答对了","action": "下一条"}],"isHide": true}
{"tag": "1","type": "blankProblem","message": "请翻译我是一个男孩","detailMessage": ["I","","a",""],"options": [{"message": "am"},{"message": "boy"},{"message": "i"}],"action": [{"type": "text","content": "am"},{"type": "text","content": "boy"},{"type": "text","content": "i"}],"answer": ["am","boy"],"exercises": true,"wrong": [{"message": "答错了","action": "下一条"}],"correct": [{"message": "答对了","action": "下一条"}],"isHide": true}
{"type": "adaptProblem","answer": "A","tag": "1","exercises": true,"message": "1+1=?","imgs": [],"options": [{"message": "2","imgs": [],"content": "A"},{"message": "1","imgs": [],"content": "B"},{"message": "3","imgs": [],"content": "C"}],"action": [{"type": "text","content": "A"},{"type": "text","content": "B"},{"type": "text","content": "C"}],"wrong": [{"message": "答错了","action": "下一条"}],"correct": [{"message": "答对了","action": "下一条"}]}
| Name | Description | 值 |
|---|---|---|
| message | 链接信息描述 | 点击阅读大段文本 |
| link | https://static1.bcjiaoyu.com/3a7f1c1d7d8e2f16a13122ebc5f9976b_q.html |
{"message":"点击阅读大段文本","link":"https://static1.bcjiaoyu.com/3a7f1c1d7d8e2f16a13122ebc5f9976b_q.html"}
| Name | Description | 值 |
|---|---|---|
| message | 链接信息描述 | 点击阅读大段代码文本 |
| link | https://static1.bcjiaoyu.com/3a7f1c1d7d8e2f16a13122ebc5f9976b_q.html | |
| typeEditor | 代码文本类型 | c、python、cpp、java |
{"message":"点击阅读大段代码文本","link":"https://static1.bcjiaoyu.com/3a7f1c1d7d8e2f16a13122ebc5f9976b_q.html","typeEditor":"python"}
| Name | Description | 值 |
|---|---|---|
| message | 题目的描述 | |
| codeQuestion | 该文本信息是否是编程题 | true |
| typeEditor | 编程题的类型 | c、cpp、python、java |
| udid | 编程题的唯一编号 | 1b31deb7-75f2-48c7-80c4-9ee9c83230a4 |
目前编程题仅支持文本信息,当消息被作为编程题使用时,需添加字段
codeQuestion:truetypeEditor:"c"udid:"1b31deb7-75f2-48c7-80c4-9ee9c83230a4",否则不做处理。
{"message":"请统计1在列表[1,2,3,4,5,1]中出现的次数?","codeQuestion":true,"typeEditor":"python","udid":"1b31deb7-75f2-48c7-80c4-9ee9c83230a4"}
| Name | Description |
|---|---|
| homework | 当前消息是否是作业 |
目前作业仅支持简答题式的消息,当消息被作为作业使用时,需添加字段
homework:true,否则不做处理
{"message":"请统计1在列表[1,2,3,4,5,1]中出现的次数?","homework":true,}
| Name | Description | Value |
|---|---|---|
| type | 当前图片是表情包 | emoticon |
| detailType | 表情包的类型 | 答对鼓励(encourage)、答错(error)、再见(bye)、加油(comeon)、打招呼(greet) |
目前表情包支持答对(encourage)、答错(error)。
{"img":"https://resource.bcgame-face2face.haorenao.cn/emoticon_imgs/encourage/1.gif-240x240","type":"emoticon","detailType":"encourage"}
html 编辑器: https://www.cxy61.com/face2face/app/home/codeEditRN.html
python 编译器: https://www.cxy61.com/face2face/app/home/codeCompileRN.html?lang=python
java 编译器: https://www.cxy61.com/face2face/app/home/codeCompileRN.html?lang=java
c++编译器: https://www.cxy61.com/face2face/app/home/codeCompileRN.html?lang=cpp
c 语言编译器: https://www.cxy61.com/face2face/app/home/codeCompileRN.html?lang=c