# Kotlin 2024 期末作業 [TOC] 請使用 Kotlin 寫出一個類似 [Texas hold 'em](https://en.wikipedia.org/wiki/Texas_hold_%27em) 的遊戲。 ## 簡化版規則 + 使用 7 附牌進行遊戲。 + 牌力大小: 1. Royal Flush 1. Five of a Kind 1. Straight Flush 1. Four of a Kind 1. Full House 1. Flush 1. Straight 1. Three of a Kind 1. Two Pairs 1. One Pair 1. High Card + 2 張底牌皆必須使用。 + 玩家:1 個人類玩家,3 個電腦(電腦1、電腦2、電腦3) + 電腦下注規則: 1. 電腦1: 1. 不到 One Pair 就棄牌。 2. 沒人 All in 時 One Pair 壓 1 塊。 3. 有人 All in 時 One Pair 就棄牌。 4. 超過 One Pair 就 All in。 2. 電腦2: 1. 不到 Two Pairs 就棄牌。 2. 沒人 All in 時 Two Pairs 壓 1 塊。 3. 有人 All in 時 Two Pairs 就棄牌。 4. 超過 Two Pairs 就 All in。 3. 電腦3: 1. 不到 Three of a Kind 就棄牌。 2. 沒人 All in 時 Three of a Kind 壓 1 塊。 3. 有人 All in 時 Three of a Kind 就棄牌。 4. 超過 Three of a Kind 就 All in。 + 順序為 1. 電腦1 2. 電腦2 3. 電腦3 4. 人類玩家 + 每回合流程: 1. 將牌隨機打亂。 2. 發給每位玩家 2 張底牌。 3. 發 5 張公共牌。 4. 詢問玩家是否 All in。 5. 若玩家 All in,按照順序決定是否 All in 或棄牌。 6. 若玩家不 All in,按照順序決定是否壓 1 元或棄牌。 7. 結算分數,並顯示每位玩家的牌力大小。 + 每個玩家一開始擁有 100 元。 + 贏的玩家獲得所有的錢,若有多位玩家平手則平分(向下取整) + 有玩家超過 250 元或沒錢時遊戲結束。 ## 要求 + 在程式執行時,前三個回合需要隨機產生每次都不一樣的牌順序。第四回合,隨機產生某一個電腦會因為 all in 而輸光的盤面,並解釋程式碼隨機產生牌組跟輸家的過程。 + 牌的長相 1. 文字版花色使用 unicode `♠♥♦♣` 2. 文字版數字使用 2~10 以及 J Q K A 3. 手機版使用 WiKi 上的 [撲克牌 SVG 圖片](https://en.wikipedia.org/wiki/Standard_52-card_deck#SVG)。 + 遊戲結束時,產生玩家排名。 ## 文字版輸入輸出 請自行規劃。 ## 手機版排版參考畫面 請自行規劃,或採用老師之後課程示範之 Sample code 。 ## 提交 > Windows可以使用[Bandicam](https://www.bandicam.com/tw/)來錄影,也可以使用支援Windows、MAC的OBS但比較複雜一些;無論如何千萬不要使用手機對螢幕錄影,拜託! * 拍攝YouTube解說你的程式碼並玩至遊戲結束,請確定畫質可以看清楚,以及有清楚錄製你的聲音 * 將主程式打包好提交到e3 ### 打包方法 ![](https://i.imgur.com/y7pTJxM.png)