From 814ca7204055a07d34e0294aacb031e1def019e6 Mon Sep 17 00:00:00 2001 From: "Chen, Tai-Lin" Date: Wed, 22 Nov 2023 23:07:33 +0800 Subject: [PATCH] quests requirement update --- quests/cast/game.yml | 3 + quests/create/game.yml | 3 + quests/explore/game.yml | 65 ++++++++-- quests/helloworld/game.yml | 3 + quests/meta.yml | 1 - quests/read/game.yml | 199 ++++++++++++++++-------------- quests/read/home/file.txt | 1 + quests/read/home/folder/words.txt | 164 ++++++++++++++++++++++++ quests/read/home/hello.txt | 1 - quests/read/home/notes/note.txt | 1 - quests/read/home/world.txt | 1 - quests/transport/game.yml | 142 --------------------- 12 files changed, 337 insertions(+), 247 deletions(-) create mode 100644 quests/read/home/file.txt create mode 100644 quests/read/home/folder/words.txt delete mode 100644 quests/read/home/hello.txt delete mode 100644 quests/read/home/notes/note.txt delete mode 100644 quests/read/home/world.txt delete mode 100644 quests/transport/game.yml diff --git a/quests/cast/game.yml b/quests/cast/game.yml index 26b3bcb..e9c6010 100644 --- a/quests/cast/game.yml +++ b/quests/cast/game.yml @@ -4,6 +4,9 @@ instruction: | 請輸入 `echo start` 來開始這一關。 +requirements: + - get-started + stages: - id: warning-01 repeatable: true diff --git a/quests/create/game.yml b/quests/create/game.yml index 782742e..3c99acd 100644 --- a/quests/create/game.yml +++ b/quests/create/game.yml @@ -5,6 +5,9 @@ instruction: | 2. 如何使用 `mkdir` 建立資料夾 準備好就輸入 `echo start` 開始吧! +requirements: + - read + stages: - id: start task: 輸入 `echo start` 來開始 diff --git a/quests/explore/game.yml b/quests/explore/game.yml index 8555e0f..d4013d3 100644 --- a/quests/explore/game.yml +++ b/quests/explore/game.yml @@ -6,6 +6,9 @@ instruction: | 請輸入 `echo start` 來開始這一關。 +requirements: + - get-started + stages: - id: warning-01 repeatable: true @@ -22,8 +25,7 @@ stages: output: - ^start$ responses: - - type: narrative - content: + - content: - 在終端機中,並沒有圖形介面可以讓你查看資料夾的內容。 - 但是你可以透過 `ls` 指令來查看資料夾的內容。 - '`ls` 指令是 list 的縮寫,也就是列出檔案的意思。' @@ -39,11 +41,6 @@ stages: condition: command: - ^ls$ - files: - - path: folder1 - type: folder - - path: folder2 - type: folder responses: - type: dialogue speaker: Unix 精靈 @@ -90,7 +87,7 @@ stages: - 你成功的進入 `folder1` 資料夾了。 - 你可以發現指令提示符從原本的 - '`commander:~ $` 變成了' - - '`commander:~/folder1 $' + - '`commander:~/folder1 $` 。' - 這表示你現在正位在 `folder1` 資料夾中。 - 現在,請試著查看 `folder1` 資料夾的內容。 hints: @@ -140,4 +137,54 @@ stages: - type: narrative content: - 你成功的回到上一層資料夾了。 - - 現在,請你試著進入 `folder2` 資料夾。 + - 現在,請你剛才所學的指令,進入 `folder2` 資料夾,檢查 `folder2` 資料夾的內容,最後回到這個資料夾。 + hints: + - ➤ 使用 `cd` 指令進出資料夾 + - ➤ 使用 `ls` 指令查看資料夾的內容 + + - id: cd-folder2 + task: 進入 `folder2` 資料夾 + requirements: + - cd-.. + condition: + pwd: + - /home/commander/folder2 + responses: + - content: + - 你成功的進入 `folder2` 資料夾了。 + - 現在,請你查看 `folder2` 資料夾的內容。 + hints: + - ➤ 使用 `ls` 查看資料夾的內容 + + - id: ls-folder2 + task: 查看 `folder2` 資料夾的內容 + requirements: + - cd-folder2 + condition: + pwd: + - /home/commander/folder2 + command: + - ls + responses: + - type: narrative + content: + - 你看到了 `folder2` 資料夾中的檔案,分別是 `file3.txt` 跟 `file4.txt`。 + - 現在你可以離開 `folder2` 回到原本的資料夾了。 + hints: + - ➤ 使用 `cd ..` 回到上一層資料夾 + + - id: END + task: 回到原本的資料夾 + requirements: + - ls-folder2 + condition: + pwd: + - /home/commander + responses: + - type: narrative + content: + - 你成功的回到原本的資料夾了。 + - 恭喜你學會了 `ls` 和 `cd` 指令的用法。 + hints: + - ➤ 使用 `cd` 指令進出資料夾 + - ➤ 使用 `ls` 指令查看資料夾的內容 diff --git a/quests/helloworld/game.yml b/quests/helloworld/game.yml index 35be209..b4d478c 100644 --- a/quests/helloworld/game.yml +++ b/quests/helloworld/game.yml @@ -4,6 +4,9 @@ instruction: | 你感到腦中有某個聲音跟你說: 「使用 `echo [ 咒語 ]` 指令來朗誦咒語 "help" 」 +requirements: + - remove + stages: - id: help task: 輸入 `echo help` 來朗誦咒語 diff --git a/quests/meta.yml b/quests/meta.yml index e0f9537..1d7a41a 100644 --- a/quests/meta.yml +++ b/quests/meta.yml @@ -2,7 +2,6 @@ quests: - get-started - cast - - explore - read diff --git a/quests/read/game.yml b/quests/read/game.yml index 26b3bcb..db2b5cf 100644 --- a/quests/read/game.yml +++ b/quests/read/game.yml @@ -1,9 +1,14 @@ -title: 在終端機上顯示文字 +title: 在終端機中查看檔案的內容 instruction: | - 在這一關,你將會學到如何使用 `echo` 指令,以及它在遊戲中的特殊功能。 + 在這個關卡中,你將會學到: + 1. 如何使用 `cat` 查看檔案的內容 請輸入 `echo start` 來開始這一關。 +requirements: + - cast + - explore + stages: - id: warning-01 repeatable: true @@ -15,119 +20,129 @@ stages: - id: start task: 輸入 `echo start` 來開始教程 - repeatable: false condition: output: - ^start$ responses: - - type: narrative - content: - - 你剛才使用的指令叫做 `echo`。 - - '`echo` 指令可以將後方接續的文字輸出到終端機上。' - - 例如你輸入 `echo Hello`,終端機就會顯示 `Hello`。 - - 你可以試著輸入 `echo` 並在後面加上一些文字,然後按下 Enter 鍵,就可以看到終端機上顯示了你剛才輸入的文字。 + - content: + - 在終端機中,並沒有圖形介面可以讓你查看檔案的內容。 + - 但是你可以透過 `cat` 指令來查看檔案的內容。 + - '`cat` 指令是 concatenate 的縮寫,也就是串接的意思。' + - 在輸入 `cat [檔案名稱]` 指令後,終端機會輸出檔案的內容。 + - 請你先查看這個資料夾中哪些檔案。 hints: - - ➤ 輸入 `echo` 並在後面加上一些文字 - - ➤ 例如:`echo example` + - ➤ 請輸入 `ls` 來查看這個資料夾中的檔案。 - - id: echo - task: 在終端機上顯示顯示任意文字 - repeatable: false + - id: ls-~ + task: 查看資料夾中的檔案 requirements: - start condition: + pwd: + - ^/home/commander$ command: - - ^echo .* + - ^ls$ responses: - - type: narrative - content: - - 你應該可以看到終端機上顯示了你在 `echo` 指令後面的文字。 - - 接下來,請你試著在終端機上顯示 `How are you?`。 + - content: + - 這個資料夾中有一個檔案和一個資料夾。 + - 現在你可以使用 `cat` 指令來查看 `file.txt` 的內容。 hints: - - ➤ 利用 `echo` 指令來在終端機上顯示 `How are you?` + - ➤ 請輸入 `cat file.txt` 來查看檔案的內容。 - - id: how-are-you - task: 在終端機上顯示 `How are you?` - repeatable: false + - id: cat-file + task: 查看 `file.txt` 的內容 requirements: - - echo + - ls-~ condition: - output: - - ^[Hh]ow are you\??$ + pwd: + - ^/home/commander$ + command: + - ^cat file.txt$ responses: - - type: narrative - content: - - 你成功的在終端機上顯示了 `How are you?`。 - - 相信你已經了解 `echo` 指令的用法了。 - - 接下來,要像你介紹 `echo` 在遊戲中的特殊功能,那就是詠唱咒語。 - - 你可以通過輸入 `echo [咒語]` 來詠唱咒語,並產生對應的特殊效果。 - - 但是要注意,詠唱咒語只有在 Linux Odyssey 中才會有特殊效果。 - - 在真實的 Linux 環境中,詠唱咒語並不會有任何特殊效果。 - - 現在,有一段咒語叫做 `HELP`,請你試著使用 `echo` 詠唱這段咒語。 + - content: + - 你應該能看到檔案的內容了。 + - 檔案的內容是一首李白的詩,叫做「靜夜思」。 + - 另外,如果我們在指令的後面加上 `-n` 參數,就可以用顯示行數的方式查看檔案時。 + - 請試著用這個方式來查看 `file.txt` 的內容。 hints: - - ➤ 試著使用 `echo` 來詠唱 `HELP` 咒語 - - ➤ 注意:咒語要使用大寫 - exceptions: - - condition: - command: - - ^[Hh]ow are you\??$ - hints: - - ➤ 在 `How are you?` 前面必須加上 `echo` - - condition: - command: - - ^echo$ - hints: - - ➤ 在 `echo` 後面還需要加上一些文字 + - ➤ 請輸入 `cat -n file.txt` 來查看檔案的內容並顯示行數。 - - id: help - task: 詠唱 `HELP` 咒語 - repeatable: false + - id: cat-n-file + task: 查看 `file.txt` 的內容並顯示行數 requirements: - - how-are-you + - cat-file condition: - output: - - ^HELP$ + pwd: + - ^/home/commander$ + or: + - command: + - ^cat -n file.txt$ + - command: + - ^cat file.txt -n$ responses: - - type: narrative - content: - - 你詠唱了 `HELP` 咒語,一位精靈出現了。 - - type: dialogue - speaker: Unix 精靈 - content: - - 你好,我是 Unix 精靈。 - - 既然你使用了 `HELP` 咒語呼喚我,就讓我來教你一個咒語吧。 - - 讓我想想... 好了,我想到了一個咒語,叫做 `WATER`。 - - 這是施展水魔法的咒語。詠唱這個咒語可以施展水魔法,產生少量的水。 - - 試著使用 `echo` 詠唱這個咒語吧。 + - content: + - 你應該能看到檔案的內容和行數了。 + - 接下來,請你進入 `folder` 資料夾,並查看資料夾內有哪些檔案。 hints: - - ➤ 詠唱 `WATER` 咒語 + - ➤ 輸入 `cd folder` 來進入 `folder` 資料夾 + + - id: cd-folder + task: 進入 `folder` 資料夾 + requirements: + - cat-n-file + condition: + pwd: + - ^/home/commander/folder$ + responses: + - content: + - 現在你已經進入 `folder` 資料夾了。 + - 請查看資料夾內有哪些檔案。 + hints: + - ➤ 請輸入 `ls` 來查看資料夾中的檔案。 + + - id: ls-folder + task: 查看 `folder` 資料夾中的檔案 + requirements: + - cd-folder + condition: + pwd: + - ^/home/commander/folder$ + command: + - ^ls$ + responses: + - content: + - 這個資料夾中有一個檔案,叫做 `words.txt`。 + - 請用 `cat` 指令找出檔案中第 139 行的內容。 + hints: + - ➤ 請輸入 `cat -n words.txt` 來查看檔案的內容。 + + - id: cat-n-words + task: 查看 `words.txt` 的內容 + requirements: + - ls-folder + condition: + pwd: + - ^/home/commander/folder$ + or: + - command: + - ^cat -n words.txt$ + - command: + - ^cat words.txt -n$ + responses: + - content: + - 你應該能看到檔案的內容和行數了。 + - 請用 `echo` 指令來在終端機顯示檔案中第 139 行的內容。 + hints: + - ➤ 請輸入 `echo [第 139 行的內容]` 來顯示檔案中第 139 行的內容。 - id: END - task: 詠唱 `WATER` 咒語 - repeatable: false - requirements: - - help + task: 這是教學的結束 condition: - output: - - ^WATER$ + command: + - ' ' responses: - - type: narrative - content: - - 你施展了水魔法,一個水球出現在你的手中。 - - type: dialogue - speaker: Unix 精靈 - content: - - 很好,你已經學會了水魔法。 - - type: narrative - content: - - 真厲害,你已經了解如何使用 `echo` 指令,並且學會了詠唱咒語的方法。 - - 最後複習一下,你可以通過輸入 `echo [文字]` 來在終端機上顯示文字。 - - 你也可以通過輸入 `echo [咒語]` 來詠唱咒語,並產生對應的特殊效果。 - - 不要忘了,詠唱咒語只有在 Linux Odyssey 中才會有特殊效果。 - - 在真實的 Linux 環境中,咒語只會被視為一串文字顯示出來而已。 - - 以上就是 `echo` 指令的用法,請繼續努力,完成接下來的關卡吧! - hints: | - 複習: - 通過輸入 `echo [文字]` 來在終端機上顯示文字 - 通過輸入 `echo [咒語]` 來詠唱咒語 - 咒語只有在 Linux Odyssey 中才會有特殊效果 + - content: + - 這是教學的結束。 + - 請輸入 `echo end` 來結束這一關。 + hints: + - ➤ 請輸入 `echo end` 來結束這一關。 diff --git a/quests/read/home/file.txt b/quests/read/home/file.txt new file mode 100644 index 0000000..2583542 --- /dev/null +++ b/quests/read/home/file.txt @@ -0,0 +1 @@ +This is file.txt diff --git a/quests/read/home/folder/words.txt b/quests/read/home/folder/words.txt new file mode 100644 index 0000000..8f9399b --- /dev/null +++ b/quests/read/home/folder/words.txt @@ -0,0 +1,164 @@ +book +study +purple +mouth +plant +windy +bread +tree +summer +grandma +chair +cloudy +mom +cake +jump +rabbit +orange +white +hands +eyes +dog +draw +fish +eight +winter +bird +desk +seven +sing +brother +banana +pencil +five +fall +run +milk +nose +teacher +drink +grass +sunny +rice +lion +eraser +three +purple +student +dad +elephant +mouth +four +spring +feet +cake +grandma +play +six +apple +head +sister +black +hands +juice +pen +nine +pizza +autumn +cat +legs +flower +drink +eyes +cloudy +orange +winter +mom +bread +sunny +study +lion +four +desk +summer +chair +windy +drink +tree +bread +grandma +study +nose +book +orange +legs +sister +grass +rainy +eyes +white +rabbit +play +black +dad +jump +mom +fish +sunny +winter +pen +flower +purple +brother +hands +cat +spring +cake +mouth +eraser +grandma +juice +run +dog +school +feet +apple +elephant +chair +sister +tiger +yellow +windy +pizza +study +dad +summer +plant +red +monkey +book +fall +cloudy +mom +drink +winter +sunny +fish +play +head +hands +banana +pencil +autumn +legs +eyes +drink +teacher +grass +run +cake +ears +grandma +dog +white +jump diff --git a/quests/read/home/hello.txt b/quests/read/home/hello.txt deleted file mode 100644 index 5ab2f8a..0000000 --- a/quests/read/home/hello.txt +++ /dev/null @@ -1 +0,0 @@ -Hello \ No newline at end of file diff --git a/quests/read/home/notes/note.txt b/quests/read/home/notes/note.txt deleted file mode 100644 index 168015a..0000000 --- a/quests/read/home/notes/note.txt +++ /dev/null @@ -1 +0,0 @@ -Note \ No newline at end of file diff --git a/quests/read/home/world.txt b/quests/read/home/world.txt deleted file mode 100644 index beef906..0000000 --- a/quests/read/home/world.txt +++ /dev/null @@ -1 +0,0 @@ -World \ No newline at end of file diff --git a/quests/transport/game.yml b/quests/transport/game.yml deleted file mode 100644 index a1d0319..0000000 --- a/quests/transport/game.yml +++ /dev/null @@ -1,142 +0,0 @@ -title: 在資料夾中移動 -instruction: | - 在這一關,你將會學到如何使用 `echo` 指令,以及它在遊戲中的特殊功能。 - - 請輸入 `echo start` 來開始這一關。 - -stages: - - id: 00 - task: 輸入 `echo start` 來開始教程 - repeatable: false - condition: - output: - - ^start$ - responses: - - type: narrative - content: - - 你剛才使用的指令叫做 `echo`。 - - '`echo` 指令可以將後方接續的文字輸出到終端機上。' - - 例如你輸入 `echo Hello`,終端機就會顯示 `Hello`。 - - 你可以試著輸入 `echo` 並在後面加上一些文字,然後按下 Enter 鍵,就可以看到終端機上顯示了你剛才輸入的文字。 - hints: | - ➤ 輸入 `echo` 並在後面加上一些文字 - ➤ 例如:`echo example` - - - id: 00.1 - repeatable: true - condition: - command: - - ' ' - hints: | - !! 請勿使用全形空格 !! - - - id: 01 - task: 在終端機上顯示顯示任意文字 - repeatable: false - requirements: - - 00 - condition: - command: - - ^echo .* - responses: - - type: narrative - content: - - 你應該可以看到終端機上顯示了你在 `echo` 指令後面的文字。 - - 接下來,請你試著在終端機上顯示 `How are you?`。 - hints: | - ➤ 利用 `echo` 指令來在終端機上顯示 `How are you?` - - - id: 02.1 - repeatable: false - requirements: - - 01 - condition: - command: - - ^echo$ - hints: | - ➤ 在 `echo` 後面還需要加上一些文字 - - - id: 02.2 - repeatable: false - requirements: - - 01 - condition: - command: - - ^[Hh]ow are you - hints: | - ➤ 在 `How are you?` 前面必須加上 `echo` - - - id: 02 - task: 在終端機上顯示 `How are you?` - repeatable: false - requirements: - - 01 - condition: - command: - - echo [Hh]ow are you - responses: - - type: narrative - content: - - 你成功的在終端機上顯示了 `How are you?`。 - - 相信你已經了解 `echo` 指令的用法了。 - - 接下來,要像你介紹 `echo` 在遊戲中的特殊功能,那就是詠唱咒語。 - - 你可以通過輸入 `echo [咒語]` 來詠唱咒語,並產生對應的特殊效果。 - - 但是要注意,詠唱咒語只有在 Linux Odyssey 中才會有特殊效果。 - - 在真實的 Linux 環境中,詠唱咒語並不會有任何特殊效果。 - - 現在,有一段咒語叫做 `HELP`,請你試著使用 `echo` 詠唱這段咒語。 - hints: | - ➤ 試著使用 `echo` 來詠唱 `HELP` 咒語 - ➤ 注意:咒語要使用大寫 - - - id: 03 - task: 詠唱 `HELP` 咒語 - repeatable: false - requirements: - - 02 - condition: - command: - - echo HELP - responses: - - type: narrative - content: - - 你詠唱了 `HELP` 咒語,一位精靈出現了。 - - type: dialogue - speaker: Unix 精靈 - content: - - 你好,我是 Unix 精靈。 - - 既然你使用了 `HELP` 咒語呼喚我,就讓我來教你一個咒語吧。 - - 讓我想想... 好了,我想到了一個咒語,叫做 `WATER`。 - - 這是施展水魔法的咒語。詠唱這個咒語可以施展水魔法,產生少量的水。 - - 試著使用 `echo` 詠唱這個咒語吧。 - hints: | - ➤ 詠唱 `WATER` 咒語 - - - id: END - task: 詠唱 `WATER` 咒語 - repeatable: false - requirements: - - 03 - condition: - command: - - echo WATER - responses: - - type: narrative - content: - - 你施展了水魔法,一個水球出現在你的手中。 - - type: dialogue - speaker: Unix 精靈 - content: - - 很好,你已經學會了水魔法。 - - type: narrative - content: - - 真厲害,你已經了解如何使用 `echo` 指令,並且學會了詠唱咒語的方法。 - - 最後複習一下,你可以通過輸入 `echo [文字]` 來在終端機上顯示文字。 - - 你也可以通過輸入 `echo [咒語]` 來詠唱咒語,並產生對應的特殊效果。 - - 不要忘了,詠唱咒語只有在 Linux Odyssey 中才會有特殊效果。 - - 在真實的 Linux 環境中,咒語只會被視為一串文字顯示出來而已。 - - 以上就是 `echo` 指令的用法,請繼續努力,完成接下來的關卡吧! - hints: | - 複習: -   通過輸入 `echo [文字]` 來在終端機上顯示文字 -   通過輸入 `echo [咒語]` 來詠唱咒語 -   咒語只有在 Linux Odyssey 中才會有特殊效果