105-2 Python Homework 2
Blackjack
規則 用socket實作 撲克牌有花色和數字,用(花色,數字)代表拿到的牌 玩家盡可能接近21點但不超過 server.py 代表莊家,client.py 代表玩家(1~5人) 撲克牌有花色和數字,用(花色,數字)代表拿到的牌 花色:1:黑桃,2:愛心,3:方塊,4:梅花 數字:用1~13表示即可 玩家盡可能接近21點但不超過 1(Ace):可以為1或11點 10~13:為10點 其他依照字面點數 玩家和莊家點數一樣或一起爆掉都算莊家贏 21點規則可以參考: https://zh.wikipedia.org/wiki/廿一點
說明 第一步:發牌 玩家和莊家都各發兩張牌 其中莊家一張明牌,一張暗牌 各玩家螢幕顯示自己的兩張牌 在莊家的螢幕上要顯示兩張牌 Server.py(莊家) 第一步:發牌 玩家和莊家都各發兩張牌 其中莊家一張明牌,一張暗牌 在莊家的螢幕上要顯示兩張牌 在玩家的螢幕上顯示其中一張牌(明牌) 各玩家螢幕顯示自己的兩張牌 各個玩家是獨立的 client.py(玩家) client.py(玩家) client.py(玩家)
說明 第二步:玩家回合 每個玩家都可以選擇加牌或停止 直到每個玩家回合結束 若加牌點數超過21點則結束換下一個 1可視為11或1點 Server.py(莊家) 第二步:玩家回合 每個玩家都可以選擇加牌或停止 若加牌點數超過21點則結束換下一個 1可視為11或1點 直到每個玩家回合結束 都有各自的分數 玩家1: 1.加牌 2.停止 玩家2: 1.加牌 2.停止 玩家3: 1.加牌 2.停止 client.py(玩家) client.py(玩家) client.py(玩家)
說明 第三步:定輸贏 若莊家和玩家同分或同時爆都算莊家贏 莊家把牌翻開,然後加牌直到點數超過17點(莊家螢幕要顯示分數) Server.py(莊家) 12分 第三步:定輸贏 莊家把牌翻開,然後加牌直到點數超過17點(莊家螢幕要顯示分數) 玩家和莊家比分數,越接近21者勝 輸贏結果顯示在玩家螢幕中(個玩家是獨立的) 若莊家和玩家同分或同時爆都算莊家贏 加牌直到大於17點 19分 21分 贏 15分 輸 爆掉 輸
計分方式 (發牌)每個玩家發2張牌 (30%) (玩家回合)各玩家會決定要不要加牌 (25%) (發牌)每個玩家發2張牌 (30%) 發給各個玩家(牌可以重複,可各至用隨機直接產生牌) 莊家也會有兩張(一暗一明) 莊家的螢幕能看到兩張牌,玩家的只能看到其中一張 (玩家回合)各玩家會決定要不要加牌 (25%) 超過21點或玩家決定不要加牌 Ace會爆算1點不會爆算11點(5%) (莊家回合)每個玩家回合結束,莊家算牌 (25%) 莊家會把牌加到介於17~21為止 各玩家跟莊家比點數,看是誰贏 牌不重複(20%): 能做到牌不重複,莊家(server端)維持一副牌,發給各個玩家(client) 額外加分(20%): 用使用者圖形介面(GUI)呈現遊戲過程
繳交方式 不要抄襲別人的程式碼 繳交期限 : 4/26 星期三 23:59前 (遲交不收!!!!!!) 繳交方式 : mail到 nchuwccclab@gmail.com 信件主旨 : 系級 學號 姓名 壓縮檔(檔名:系級 學號 姓名) Python程式檔 文字檔:說明實現了哪些功能(或一些補充說明) 不要抄襲別人的程式碼
The end Thanks for your time