Introduction to Python Applications 2023 - Python Telegram Bot 期末專案規格 === ###### tags: `Python` `Python and Its Application 2023` `telegram` `Reversi` ## 使用 Telegram Bot 做黑白棋遊戲 {%youtube icS-JhBABiI %} ## 黑白棋遊戲規則 1. 棋盤共有8行8列共64格。開局時,棋盤正中央的4格先置放黑白相隔的4枚棋子 2. 黑子先行 3. 雙方輪流落子 4. 落子和棋盤上任一枚己方的棋子在一條線上(橫、直、斜線皆可)夾著對方棋子,就能將對方的這些棋子轉變為己方 5. 落子時必須能達成「**落子和棋盤上任一枚己方的棋子在一條線上(橫、直、斜線皆可)夾著對方棋子**」 6. 當己方無法落子,則對方可以繼續落子,反之亦然 7. 雙方都沒有棋步可下則對局結束,棋子顏色多的一方為獲勝者 ## 你的 Telegram Bot 需要符合 1. 透過一個指令開啟一場新的黑白棋(EX: /game_start) 2. 所提供的黑白棋遊戲,需按照規格所定義的黑白棋遊戲規則運作 3. 電腦都是持白棋,User 則是持黑棋 4. 運作方式可以參照範例的,也可以自己設計一套,唯需要於錄影解說程式碼時說明你的運作邏輯 ## 你需要符合 1. 錄影並解說程式碼,向助教證明你有學到足夠的知識完成題目 2. 電腦不能將棋下至非法的地方,使用者將棋下至非法的地方則需要給予使用者提示,並阻止使用者 3. 當遊戲結束時,需要可以知道是誰贏,並顯示出來 4. 遊戲要可以重新開始 5. 嚴禁抄襲 ## 你不需要符合 1. 電腦下贏使用者 ## 提交 > Windows可以使用Bandicam來錄影,也可以使用支援Windows、MAC的OBS但比較複雜一些;無論如何千萬不要使用手機對螢幕錄影,拜託! - 拍攝YouTube解說你的程式碼並完成一場遊戲,請確定畫質可以看清楚(720p以上),以及有清楚錄製你的聲音 - 將主程式打包好提交到e3,並於作業說明貼上 youtube 連結 - 請勿使用 Mac 內建錄影,因為沒有聲音(如果你確定有聲音的話可以用) - 早點寫早點交,如果助教發現有問題會通知你,如果太晚交可能就算通知你也來不及改 ## 提示 1. 範例有用到的 telegram 的功能皆在[本篇 Lecture Notes](https://hackmd.io/@truckski/SJkxm2gV3)有提到 2. 會有電腦因為 User 無法落子,而連續落子的狀況 3. 會有 User 因為電腦無法落子,而連續落子的狀況 4. 遊戲不一定會是在所有 64 格都下完了時才結束,可能因為雙方皆無法落子,而提早結束 5. 你可以使用人工智慧來幫你完成作業,唯你需要將使用過程錄製下來上傳至 E3 作業繳交區 ### 落子在非法的地方 可以用以下方式提醒使用者 ![](https://hackmd.io/_uploads/SJZbnHW43.png) ## 附件(黑子與白子) - ⚫️ - ⚪️ ## 參考資料 - [wiki](https://zh.wikipedia.org/zh-tw/%E9%BB%91%E7%99%BD%E6%A3%8B)