From 9e7c4030651625d6eb893c3fa1b08d04abb52c7f Mon Sep 17 00:00:00 2001 From: feilong <fanfeilong@outlook.com> Date: Thu, 24 Feb 2022 20:48:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96reademe?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 146 +++++++++++++++++- .../1.HelloOO/config.json" | 2 +- .../1.HelloOO/helloworld.json" | 2 +- .../1.HelloOO/helloworld.md" | 0 .../config.json" | 0 5 files changed, 147 insertions(+), 3 deletions(-) rename "data/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\210\235\351\230\266/1.OO\345\210\235\346\255\245/1.HelloOO/config.json" => "data/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\210\235\351\230\266/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\237\272\347\241\200/1.HelloOO/config.json" (87%) rename "data/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\210\235\351\230\266/1.OO\345\210\235\346\255\245/1.HelloOO/hello.json" => "data/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\210\235\351\230\266/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\237\272\347\241\200/1.HelloOO/helloworld.json" (87%) rename "data/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\210\235\351\230\266/1.OO\345\210\235\346\255\245/1.HelloOO/hello.md" => "data/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\210\235\351\230\266/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\237\272\347\241\200/1.HelloOO/helloworld.md" (100%) rename "data/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\210\235\351\230\266/1.OO\345\210\235\346\255\245/config.json" => "data/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\210\235\351\230\266/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\237\272\347\241\200/config.json" (100%) diff --git a/README.md b/README.md index def1d6a..4360d80 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,147 @@ # skill_tree_oo -é¢å‘对象程åºè®¾è®¡æŠ€èƒ½æ ‘ +`é¢å‘对象程åºè®¾è®¡æŠ€èƒ½æ ‘` 是[技能森林](https://gitcode.net/csdn/skill_tree)的一部分。 + +## 目录结构说明 + +* æŠ€èƒ½æ ‘`骨架文件`: + * ä½ç½®ï¼š`data/tree.json` + * 说明:该文件是执行 `python main.py` 生æˆçš„,请勿人工编辑 +* æŠ€èƒ½æ ‘`æ ¹èŠ‚ç‚¹`é…置文件: + * ä½ç½®ï¼š`data/config.json` + * 说明:å¯ç¼–辑é…置关键è¯ç‰å—æ®µï¼Œå…¶ä¸ `node_id` å—段是生æˆçš„,请勿编辑 +* æŠ€èƒ½æ ‘`难度节点`: + * ä½ç½®ï¼š`data/xxx`,例如: `data/1.é¢å‘对象程åºè®¾è®¡åˆé˜¶` + * 说明: + * æ¯ä¸ªæŠ€èƒ½æ ‘有 3 个ç‰çº§ï¼Œç›®å½•å‰çš„åºå·æ˜¯å¿…è¦çš„,用æ¥ä¿æŒæ–‡ä»¶å¤¹ç›®å½•çš„é¡ºåº + * æ¯ä¸ªç›®å½•ä¸‹æœ‰ä¸€ä¸ª `config.json` å¯é…置关键è¯ä¿¡æ¯ï¼Œå…¶ä¸ `node_id` å—段是生æˆçš„,请勿编辑 +* æŠ€èƒ½æ ‘`ç« èŠ‚ç‚¹`: + * ä½ç½®ï¼š`data/xxx/xxx`,例如:`data/1.é¢å‘对象程åºè®¾è®¡åˆé˜¶/1.é¢å‘对象程åºè®¾è®¡åŸºç¡€` + * 说明: + * æ¯ä¸ªæŠ€èƒ½æ ‘çš„æ¯ä¸ªéš¾åº¦ç‰çº§æœ‰ n ä¸ªç« èŠ‚ï¼Œç›®å½•å‰çš„åºå·æ˜¯å¿…è¦çš„,用æ¥ä¿æŒæ–‡ä»¶å¤¹ç›®å½•çš„é¡ºåº + * æ¯ä¸ªç›®å½•ä¸‹æœ‰ä¸€ä¸ª `config.json` å¯é…置关键è¯ä¿¡æ¯ï¼Œå…¶ä¸ `node_id` å—段是生æˆçš„,请勿编辑 +* æŠ€èƒ½æ ‘`知识节点`: + * ä½ç½®ï¼š`data/xxx/xxx/xxx`,例如:`data/1.é¢å‘对象程åºè®¾è®¡åˆé˜¶/1.é¢å‘对象程åºè®¾è®¡åŸºç¡€/1.HelloOO` + * 说明: + * æ¯ä¸ªæŠ€èƒ½æ ‘çš„æ¯ç« 有 `n` 个知识节点,目录å‰çš„åºå·æ˜¯å¿…è¦çš„,用æ¥ä¿æŒæ–‡ä»¶å¤¹ç›®å½•çš„é¡ºåº + * æ¯ä¸ªç›®å½•ä¸‹æœ‰ä¸€ä¸ª `config.json` + * å…¶ä¸ `node_id` å—段是生æˆçš„,请勿编辑 + * å…¶ä¸ `keywords` å¯é…置关键å—å—段 + * å…¶ä¸ `children` å¯é…置该`知识节点`下的åæ ‘ç»“æž„ä¿¡æ¯ï¼Œå‚考åŽé¢æè¿° + * å…¶ä¸ `export` å¯é…置该`知识节点`ä¸‹çš„å¯¼å‡ºä¹ é¢˜ä¿¡æ¯ï¼Œå‚考åŽé¢æè¿° + +## `知识节点` åæ ‘ä¿¡æ¯ç»“æž„ + +例如 `data/1.é¢å‘对象程åºè®¾è®¡åˆé˜¶/1.é¢å‘对象程åºè®¾è®¡åŸºç¡€/1.HelloOO/config.json` 里é…置对该知识节点åæ ‘ä¿¡æ¯ç»“构: + +```json +{ + // ... + + "children": [ + // TODO ... + ], +} +``` + +## `知识节点` çš„å¯¼å‡ºä¹ é¢˜ç¼–è¾‘ + +例如 `data/1.é¢å‘对象程åºè®¾è®¡åˆé˜¶/1.é¢å‘对象程åºè®¾è®¡åŸºç¡€/1.HelloOO/config.json` 里é…ç½®å¯¹è¯¥çŸ¥è¯†èŠ‚ç‚¹å¯¼å‡ºçš„ä¹ é¢˜ + +```json +{ + // ... + "export": [ + "helloworld.json" + ] +} +``` + +在 export å—段ä¸ï¼Œæˆ‘ä»¬åˆ—å‡ºä¹ é¢˜å®šä¹‰ json ,下é¢æˆ‘ä»¬äº†è§£å¦‚ä½•ç¼–å†™ä¹ é¢˜ã€‚ + +## `知识节点` çš„å¯¼å‡ºä¹ é¢˜é€‰é¡¹é…置编辑 + +ç›®å‰æˆ‘们支æŒä½¿ç”¨ markdown è¯æ³•ç›´æŽ¥ç¼–è¾‘ä¹ é¢˜å’Œå„选项。 + +如å‰æ–‡å†…å®¹ï¼Œæˆ‘ä»¬åœ¨çŸ¥è¯†èŠ‚ç‚¹ä¸‹å¢žåŠ ä¹ é¢˜ `helloworld`的定义文件,å³åœ¨`data/1.é¢å‘对象程åºè®¾è®¡åˆé˜¶/1.é¢å‘对象程åºè®¾è®¡åŸºç¡€/1.HelloOO` ç›®å½•å¢žåŠ ä¸€ä¸ª`helloworld.json`文件: + +```json +{ + "type": "code_options", + "author": "xxx", + "source": "helloworld.md", + "notebook_enable": false +} +``` + +å…¶ä¸ type å—段目å‰éƒ½å›ºå®šæ˜¯ `code_options`,`notebook_enable` å—æ®µå†³å®šè¿™ä¸ªä¹ é¢˜æ˜¯å¦ç”Ÿæˆå¯¹åº”çš„ `notebook` ,å¯ä»¥é»˜è®¤è®¾ç½®ä¸ºfalseã€‚æ ¹æ®å…·ä½“情况写好其它å—段,注æ„这里 `source` 的文件å,我们指定了一个 markdwon 文件。现在我们新建一个 `helloworld.md` 并编辑为: + +````markdown +# Hello OO + +以下哪个是é¢å‘对象程åºä»£ç + +## ç”案 + +```cpp +// C++ +class Object{ + Object(){} + ~Object(){} + void test(){ + std::cout<<"hello"<<std::endle; + } +} + +int main(){ + Object* o = new Object(); + delete o; + return 0; +} +``` + +## 选项 + +### A + +```javascript +var foo = function(){ + return { + + } +} +``` + +### B + +```python +def object(): + return {} + +o = object() +``` + +### C + +```c +int test(){ + +} + +int main(){ + test(); + return 0; +} +``` + +```` + +è¿™æ˜¯ä¸€ä¸ªæœ€åŸºæœ¬çš„ä¹ é¢˜ç»“æž„ï¼Œå®ƒåŒ…å«æ ‡é¢˜ã€ç”案ã€é€‰é¡¹ï¼Œæ³¨æ„è¿™å‡ ä¸ªä¸€çº§å’ŒäºŒçº§æ ‡é¢˜å¿…é¡»å¡«å†™æ£ç¡®ï¼Œè§£é‡Šå™¨ä¼šè¯»å–è¿™å‡ ä¸ªæ ‡é¢˜ã€‚è€Œé€‰é¡¹çš„æ ‡é¢˜ä¼šè¢«ç›´æŽ¥å¿½ç•¥æŽ‰ï¼Œåœ¨ +最终生æˆçš„ä¹ é¢˜ä¸ä¸åŒ…å«é€‰é¡¹çš„ä¸‰çº§æ ‡é¢˜ï¼Œæ‰€ä»¥è¿™ä¸ªæ ‡é¢˜å¯ä»¥ç”¨æ¥æ ‡æ³¨ä¸€äº›ç¼–辑信æ¯ï¼Œä¾‹å¦‚“æ¤é€‰é¡¹æ²¡æœ‰å…³é—文件连接â€ï¼Œâ€œç±»åž‹é”™è¯¯â€ç‰ç‰ã€‚ + +## æŠ€èƒ½æ ‘åˆæˆ + +åœ¨æ ¹ç›®å½•ä¸‹æ‰§è¡Œ `python main.py` 会åˆæˆæŠ€èƒ½æ ‘文件,åˆæˆçš„æŠ€èƒ½æ ‘æ–‡ä»¶: `data/tree.json` + +* åˆæˆè¿‡ç¨‹ä¸ï¼Œä¼šè‡ªåŠ¨æ£€æŸ¥æ¯ä¸ªç›®å½•ä¸‹ `config.json` 里的 `node_id` 是å¦å˜åœ¨ï¼Œä¸å˜åœ¨åˆ™ç”Ÿæˆ +* åˆæˆè¿‡ç¨‹ä¸ï¼Œä¼šè‡ªåŠ¨æ£€æŸ¥æ¯ä¸ªçŸ¥è¯†ç‚¹ç›®å½•ä¸‹ `config.json` 里的 `export` é‡Œå¯¼å‡ºçš„ä¹ é¢˜é…置,检查是å¦å˜åœ¨`exercise_id` å—段,如果ä¸å˜åœ¨åˆ™ç”Ÿæˆ diff --git "a/data/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\210\235\351\230\266/1.OO\345\210\235\346\255\245/1.HelloOO/config.json" "b/data/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\210\235\351\230\266/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\237\272\347\241\200/1.HelloOO/config.json" similarity index 87% rename from "data/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\210\235\351\230\266/1.OO\345\210\235\346\255\245/1.HelloOO/config.json" rename to "data/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\210\235\351\230\266/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\237\272\347\241\200/1.HelloOO/config.json" index 8fb0922..1649183 100644 --- "a/data/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\210\235\351\230\266/1.OO\345\210\235\346\255\245/1.HelloOO/config.json" +++ "b/data/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\210\235\351\230\266/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\237\272\347\241\200/1.HelloOO/config.json" @@ -3,7 +3,7 @@ "keywords": [], "children": [], "export": [ - "hello.json" + "helloworld.json" ], "keywords_must": [], "keywords_forbid": [] diff --git "a/data/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\210\235\351\230\266/1.OO\345\210\235\346\255\245/1.HelloOO/hello.json" "b/data/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\210\235\351\230\266/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\237\272\347\241\200/1.HelloOO/helloworld.json" similarity index 87% rename from "data/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\210\235\351\230\266/1.OO\345\210\235\346\255\245/1.HelloOO/hello.json" rename to "data/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\210\235\351\230\266/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\237\272\347\241\200/1.HelloOO/helloworld.json" index 26ddf9e..bef340d 100644 --- "a/data/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\210\235\351\230\266/1.OO\345\210\235\346\255\245/1.HelloOO/hello.json" +++ "b/data/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\210\235\351\230\266/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\237\272\347\241\200/1.HelloOO/helloworld.json" @@ -1,6 +1,6 @@ { "type": "code_options", - "author": null, + "author": "", "source": "hello.md", "notebook_enable": false, "exercise_id": "d4e2302f452541b99f140996252d91a8" diff --git "a/data/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\210\235\351\230\266/1.OO\345\210\235\346\255\245/1.HelloOO/hello.md" "b/data/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\210\235\351\230\266/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\237\272\347\241\200/1.HelloOO/helloworld.md" similarity index 100% rename from "data/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\210\235\351\230\266/1.OO\345\210\235\346\255\245/1.HelloOO/hello.md" rename to "data/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\210\235\351\230\266/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\237\272\347\241\200/1.HelloOO/helloworld.md" diff --git "a/data/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\210\235\351\230\266/1.OO\345\210\235\346\255\245/config.json" "b/data/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\210\235\351\230\266/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\237\272\347\241\200/config.json" similarity index 100% rename from "data/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\210\235\351\230\266/1.OO\345\210\235\346\255\245/config.json" rename to "data/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\210\235\351\230\266/1.\351\235\242\345\220\221\345\257\271\350\261\241\347\250\213\345\272\217\350\256\276\350\256\241\345\237\272\347\241\200/config.json" -- GitLab