Allen Chou
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
      • Invitee
    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Engagement control
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Versions and GitHub Sync Engagement control Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
Invitee
Publish Note

Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

Your note will be visible on your profile and discoverable by anyone.
Your note is now live.
This note is visible on your profile and discoverable online.
Everyone on the web can find and read all notes of this public team.
See published notes
Unpublish note
Please check the box to agree to the Community Guidelines.
View profile
Engagement control
Commenting
Permission
Disabled Forbidden Owners Signed-in users Everyone
Enable
Permission
  • Forbidden
  • Owners
  • Signed-in users
  • Everyone
Suggest edit
Permission
Disabled Forbidden Owners Signed-in users Everyone
Enable
Permission
  • Forbidden
  • Owners
  • Signed-in users
Emoji Reply
Enable
Import from Dropbox Google Drive Gist Clipboard
   owned this note    owned this note      
Published Linked with GitHub
Subscribed
  • Any changes
    Be notified of any changes
  • Mention me
    Be notified of mention me
  • Unsubscribe
Subscribe
# 資訊之芽 2022 二階大作業 說明文件 [toc] ## 簡介 從前從前,大概是盤古還沒開天時,女媧還在研究自己的名字要怎麼念的時候,在遠得要命王國,有個公主,她想要寫一個 Discord Bot,可是... (懶得想故事),所以善良又閒閒沒事做的你決定要寫出一個 Discord Bot,不然公主會很難過只有她在寫 Discord Bot。 在這個作業,你將要寫一個 Discord Bot,包含兩個指定功能與兩個你自己設計的功能。你可以找至多三個人與你同組。**作業死線是:7/3。** ## 分組規定 我們建議(但不強迫)可以找幾個同學一起寫,人數原則上**以 3 人為上限,1 人為下限**,因為我不知道沒有人的組別是什麼概念。 我們不會幫忙分組,你可以到 Discord 上問說誰想一起組隊,也可以直接找認識的,或是我們有開一個 [Spreadsheet](https://docs.google.com/spreadsheets/d/1k64aaNu6foWMHr7bsUaMMHLGt3l4SDYs2XUr2spvcGc/edit?usp=sharing),你也可以在上面徵求組員。再重申一次,**我們不強制但強烈建議找同學一起寫**,不然你可能會寫不完,而且會錯失在團隊寫程式的寶貴經驗,畢竟在團隊內寫程式和自己寫程式非常不一樣。 若你決定跟多個人同組,請在繳交作業時註記組員,屆時會有個欄位讓你填寫組員。原則上整組會同分,若你認為整組同分並不公平,也可以在繳交作業時註記每個成員的貢獻程度,我們會斟酌調分。不過,盡可能不要最後一刻才出來說組員不做事,當你發現你的組員在擺爛時,請先友善溝通,若溝通無效,請立即知會我們,我們才有機會協助排除問題。 最後,我們不會因為組別人數多寡而改變評分標準,所以找人同組在多數情況下都比較有利。 ## 作業要求 本次作業分成三個部份:程式(70%)、文件(15%)、口頭報告(15%)。 ### 程式(70%) 必須完成以下列舉的兩個功能中,並自己想兩個功能。 - TODO List (20%) - 新增 (5%) - 刪除 (5%) - 顯示且依日期排序 (5%) - 清空 (5%) - 猜數字 (20%) - 隨機產生不含 0 且沒有數字重複的四位數 (3%) - 猜了會回應幾 A 幾 B、猜對會結束 (7%) - 使用者不想玩了可以跳出 (5%) - 顯示目前玩家排名 (5%) 至於剩下兩個功能(各 10%),可以自行發揮,惟須滿足下述要求: - 至少有三個指令。(所以兩個功能加起來至少六個指令) - 必須要是一個正常人類看了會覺得這是「功能」的東西。 - 「傳無腦廢圖」雖然很廢,但這是功能;「敲了什麼也不會做」不只很廢而且不是功能。 - 不要爬色情網站或傳送任何色情暴力的內容,批改者會很困擾。 最後 10% 則是取決於你的 coding style,我們會針對以下幾點做評分(這並不代表每點 2%)。 - 是否有在應該寫註解的地方寫註解 - 變數命名是否有意義 - 是否有把各種不同的功能包裝成 function 或 method - Coding style 符合 PEP8 - Error handling 是否完善,不會收到奇怪訊息或網路斷掉時程式就壞掉了 你**可以**使用之前自己練習時寫的 code 以及任何授課簡報(無論北區或竹區)上曾經出現的 code。 ### 文件(15%) - 程式檔案架構(5%):請你簡單說明每個檔案分別在實作哪些功能 - 指令及功能介紹(10%) - 對每個功能請詳述如何使用 - 需要說明使用者要輸入的內容或參數、預期程式回傳的內容 檔案請匯出成 PDF。 :::spoiler 範例文件 > ### 程式檔案架構 > - `main.py`: 載入各個模組 > - `util.py`: 放一些常用的 function > - `todo.py`: 實做 TODO list > - `guess.py`: 實做猜數字遊戲 > - `handler.py`: 處理各種例外狀態 > ### 指令及功能介紹 > #### TODO List > 功能:一個簡單的待辦清單 > 使用方法: > - 新增事項:`add <date> <message>`,`<date>` 表示完成時間,`<message>` 表示事項 > - 列出事項:`list`,會依照時間列出現存的事項 > - 刪除事項:`delete <id>`,`<id>` 表示列出時排在第幾個 > - 清空所有事項:`clear` > #### 另外一個功能 > 功能:這功能在做啥 > 使用方法: > - 列出一些指令 注意你不一定需要完全按照這個範例文件的架構,如果有其他文件架構可以更充分表達你的功能,歡迎使用你認為最適合的文件架構,但按照此範例就不會出事。 ::: ### 口頭報告(15%) 為了讓大家可以互相分享自己寫了什麼,我們預計於最後一堂課(7/3)舉辦分享會,屆時會有小組互評。每組會有 **10 分鐘**的報告時間,其中包含 demo 與問答,請自行決定時間分配。報告分數包含基本分 + 小組互評,基本分是有來報告就有分數,小組互評就是其他組的評分取平均。小組互評項目包含自訂功能的有趣或有用程度、Demo 的完成度、報告品質。 [報告順序](https://docs.google.com/spreadsheets/d/1E3-H9OgawTOHjFiBTAJQl_jDPWw7849erScip_iM14c/edit#gid=0) 幾個規則: - 沒有一定要包含什麼或不能包含什麼,唯獨一定要有 demo(不然你的 demo 分數會很低),所以可以適度取捨,只報告最有趣、最值得分享的部份。 - 時間以 10 分鐘為上限,沒有下限,也不會因為報告時間太短而扣基本分,但其他小組的評價可能不會太好喔。 - 若有特殊原因無法參與,請先完成請假程序,並於報告前繳交影片檔案,口頭報告不接受遲交。 [小組評分表單](https://docs.google.com/forms/d/e/1FAIpQLSdYPG4Z5d2ua23Timyp70lUkWdCGFyj17pV4OwL72ihnJvrcA/viewform) ## 繳交作業 請建構下述目錄結構,然後把 `<你的名字>` 這個資料夾壓縮成 .zip。**繳交檔案時記得不要把 token 傳上來。** ``` <你的名字>/ ├─ code/ │ ├─ main.py │ ├─ ... ├─ report.pdf ``` Google 表單:[繳交連結](https://docs.google.com/forms/d/e/1FAIpQLSdl8Yw7hNJgYITMWL2wyz3ZzVmhIIle9Wf92RYOYZnJIZu3kA/viewform) **作業死線:7/3 23:59:59** ## 作業規則 - 我們鼓勵跨組的討論與合作,但不要跨組抄 code。 - 組內互抄 code 沒有關係,但如果你需要複製你組員的 code,也許你們應該把它包裝成 function 或 class。 - 所有授課投影片上的範例 code 都可以複製貼上,但確實理解後再複製貼上才對學習有幫助。 - 如果多次繳交則以期限內最後一次上傳為主。 - 原則上不接受遲交,若有特殊原因以致無法在期限內繳交,請在死線前徵詢同意。 - 你要說出來,我們才會知道你遇到困難了 QQ ## [7/2 更新] 遲交規範 若有需要遲交,可以於同一個繳交作業的表單繳交,我們會一路開放到 7/10。於 7/4 之後繳交的作業,**程式與文件的分數會打七折**,口頭報告分數不影響。如果你於原訂期限前有繳交,則我們都會批改,並以較高分的那個為準。口頭報告統一於 7/3 進行線上即時報告,無論你是否完成作業,都會需要口頭報告,不然會沒分數。 **遲交死線:7/10 23:59:59**(這個死線沒得商量) 如果基於不可抗力因素而需要遲交,請聯繫負責人,因不可抗力因素而需要延長作業期限者,分數不受影響。不可抗力因素的定義是:無論你如何小心、思考如何縝密,都不能預見與避免其發生。突然生重病、家裡有變故、停電導致電腦檔案損毀等算是不可抗力因素,為了讀段考、忙社團、出去玩等原因不是不可抗力,因為你本來就知道,且可以透過良好的時間規劃來避免寫不完作業。 ## FAQ Q: 分組可以跨區嗎? A: 不能,因為口頭報告時會是兩區分開 QQ Q: 書面報告的繳交檔案格式一定要是 PDF 嗎? A: 原則上只接受 PDF,如果有特別需求需要使用其他檔案格式,請聯繫講師。 Q: 排行榜跟代辦清單有需要持久化儲存(關掉重開後資料會還存在)嗎? A: 不用。但可以嘗試看看,並沒有很難,還可以練習 File IO 的使用。 Q: 可以使用上課沒教過的 module 或 syntax 嗎? A: 可以。你可以使用網路上的任何 open source 的程式,或是任何你有辦法 `pip install` 的東西。任何 syntax 都可以使用,只要有先搞懂即可,不要直接複製貼上。 Q: 口頭報告時的 demo 與最後交作業的程式可以不一樣嗎? A: 可以,你在 demo 完成之後還可以繼續修改程式直到死線。

Import from clipboard

Paste your markdown or webpage here...

Advanced permission required

Your current role can only read. Ask the system administrator to acquire write and comment permission.

This team is disabled

Sorry, this team is disabled. You can't edit this note.

This note is locked

Sorry, only owner can edit this note.

Reach the limit

Sorry, you've reached the max length this note can be.
Please reduce the content or divide it to more notes, thank you!

Import from Gist

Import from Snippet

or

Export to Snippet

Are you sure?

Do you really want to delete this note?
All users will lose their connection.

Create a note from template

Create a note from template

Oops...
This template has been removed or transferred.
Upgrade
All
  • All
  • Team
No template.

Create a template

Upgrade

Delete template

Do you really want to delete this template?
Turn this template into a regular note and keep its content, versions, and comments.

This page need refresh

You have an incompatible client version.
Refresh to update.
New version available!
See releases notes here
Refresh to enjoy new features.
Your user state has changed.
Refresh to load new user state.

Sign in

Forgot password

or

By clicking below, you agree to our terms of service.

Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
Wallet ( )
Connect another wallet

New to HackMD? Sign up

Help

  • English
  • 中文
  • Français
  • Deutsch
  • 日本語
  • Español
  • Català
  • Ελληνικά
  • Português
  • italiano
  • Türkçe
  • Русский
  • Nederlands
  • hrvatski jezik
  • język polski
  • Українська
  • हिन्दी
  • svenska
  • Esperanto
  • dansk

Documents

Help & Tutorial

How to use Book mode

Slide Example

API Docs

Edit in VSCode

Install browser extension

Contacts

Feedback

Discord

Send us email

Resources

Releases

Pricing

Blog

Policy

Terms

Privacy

Cheatsheet

Syntax Example Reference
# Header Header 基本排版
- Unordered List
  • Unordered List
1. Ordered List
  1. Ordered List
- [ ] Todo List
  • Todo List
> Blockquote
Blockquote
**Bold font** Bold font
*Italics font* Italics font
~~Strikethrough~~ Strikethrough
19^th^ 19th
H~2~O H2O
++Inserted text++ Inserted text
==Marked text== Marked text
[link text](https:// "title") Link
![image alt](https:// "title") Image
`Code` Code 在筆記中貼入程式碼
```javascript
var i = 0;
```
var i = 0;
:smile: :smile: Emoji list
{%youtube youtube_id %} Externals
$L^aT_eX$ LaTeX
:::info
This is a alert area.
:::

This is a alert area.

Versions and GitHub Sync
Get Full History Access

  • Edit version name
  • Delete

revision author avatar     named on  

More Less

Note content is identical to the latest version.
Compare
    Choose a version
    No search result
    Version not found
Sign in to link this note to GitHub
Learn more
This note is not linked with GitHub
 

Feedback

Submission failed, please try again

Thanks for your support.

On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

Please give us some advice and help us improve HackMD.

 

Thanks for your feedback

Remove version name

Do you want to remove this version name and description?

Transfer ownership

Transfer to
    Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

      Link with GitHub

      Please authorize HackMD on GitHub
      • Please sign in to GitHub and install the HackMD app on your GitHub repo.
      • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
      Learn more  Sign in to GitHub

      Push the note to GitHub Push to GitHub Pull a file from GitHub

        Authorize again
       

      Choose which file to push to

      Select repo
      Refresh Authorize more repos
      Select branch
      Select file
      Select branch
      Choose version(s) to push
      • Save a new version and push
      • Choose from existing versions
      Include title and tags
      Available push count

      Pull from GitHub

       
      File from GitHub
      File from HackMD

      GitHub Link Settings

      File linked

      Linked by
      File path
      Last synced branch
      Available push count

      Danger Zone

      Unlink
      You will no longer receive notification when GitHub file changes after unlink.

      Syncing

      Push failed

      Push successfully