請使用 Python 在 telegram 實作一個德州撲克遊戲
<aside>
💡
5/19修正:感謝蔡同學指正,回合結束獎池分發完應清空獎池,原影片沒有清空。已重新上傳影片
</aside>
<aside>
💡
5/15修正:感謝方同學指正,修改敘述以對齊影片
</aside>
示範
https://www.youtube.com/watch?v=8uGi6STZOHI
簡化版規則
- 牌力大小:
- Royal Flush
- Straight Flush
- Four of a Kind
- Full House
- Flush
- Straight
- Three of a Kind
- Two Pairs
- One Pair
- High Card
- 玩家:1 個人類玩家,3 個電腦(電腦1、電腦2、電腦3)
- 玩家只有三種行為可以使用:壓1塊、棄牌、All in
- All in 僅單純把全部的錢丟進去獎池內,並不用再詢問其他玩家要不要跟
- 棄牌僅單純pass回合,最後若牌力為最大,仍可以參與平分獎金池 (5/15修正)
- All in 跟棄牌後輪到該玩家等同跳過,但還是要顯示這輪發生了甚麼事
- 每回合有四個階段:
- Preflop: 沒有任何公共牌
- Flop: 翻出三張公共牌
- Turn: 翻出第四張公共牌
- River: 翻出第五張公共牌
- 電腦下注規則:
- 電腦1:
- 電腦2:
- Preflop壓1塊。
- Flop時如果只有High Card就棄牌,不然壓1塊
- Turn和River如果拿到Full House以上就All in,不然壓1塊
- 電腦3:
- Preflop壓1塊。
- Flop時如果只有Two Pairs就棄牌,不然All in
- 順序為
- 電腦1
- 電腦2
- 電腦3
- 人類玩家
- 每回合流程:
- 將一副撲克牌(4種花色 * 13 = 52張)隨機打亂。
- 輪流發給每位玩家 2 張底牌(12341234)。
- 詢問各玩家操作 (Preflop)
- 翻三張牌
- 詢問各玩家操作 (Flop)
- 翻一張牌
- 詢問各玩家操作 (Turn)
- 翻一張牌
- 詢問各玩家操作 (River)
- 結算分數,並顯示每位玩家的牌力大小。
- 每個玩家一開始擁有 100 元。
- 贏的玩家獲得所有的錢,若有多位玩家平手則平分(向下取整,不考慮花色)
- 有玩家超過 250 元或沒錢時遊戲結束。
你需要符合
- 透過一個指令開啟一場新的德州撲克遊戲(EX: /start)
- 所提供的遊戲,需按照規格所定義的規則運作
- 在程式執行時,每回合需要隨機產生每次都不一樣的牌順序,前四回合人類玩家都不可以用All in。第五回合開始,人類玩家每次都All in直到遊戲結束