摘要:最近在自學,無意看到群友一道比較有趣的問題,故嘗試給出答案。目前給出的版本是最簡單的情況,沒有考慮比較牌大小中出現數字或者字母重復的情況,以后有時間或許會給出更精細的版本。編寫程序,進行撲克牌大小比較。
最近在自學Python,無意看到群友一道比較有趣的問題,故嘗試給出答案。目前給出的版本是最簡單的情況,沒有考慮比較牌大小中出現數字或者字母重復的情況,以后有時間或許會給出更精細的版本。
編寫程序,進行撲克牌大小比較。利用函數方法,生成52張四色(梅花,方塊,黑桃,紅桃)撲克牌,玩家的人數由用戶輸入,根據玩家的人數進行發牌,然后比較大小。1. 牌的生成、發牌、大小比較,必須為函數2. 程序要有終止條件3. 用戶不選擇程序終止,那么繼續發牌、出牌,進行大小比較提示:可以使用以下列表表示信息```pythonnum = ["3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2"]color = ["紅桃", "梅花", "方塊", "黑桃"]playerName = ["甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸", "子", "丑", "寅", "卯", "巳", "午", "未", "申", "酉", "戌", "亥"]```
# 需要用到的信息列表num = ["3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2"]color = ["紅桃", "梅花", "方塊", "黑桃"]playername = ["甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸", "子", "丑", "寅", "卯", "巳", "午", "未", "申", "酉", "戌", "亥"]
# 需要定義的函數def generate_porker(): """ 產生隨機的52張牌,允許重復 """ gp = [] import random color_gp = random.choices(color, k = 52) num_gp = random.choices(num, k =52) for i in range(52): gp.append(color_gp[i] + num_gp[i]) return gpdef deal_porker(n, gp): """ 從52張牌中給每個玩家按照順序發牌 """ players = playername[0: n] n_porker = int(52 / n) deal = [] import random for i in range(n): temp = [] temp.append(playername[i]) temp.append(gp[i * (n_porker) : (i + 1) * n_porker]) deal.append(temp) return dealdef discard_porker(n, deal): """ 隨機讓每個玩家抽一張牌出來 """ discard = [] import random for i in range(n): temp = [] temp.append(deal[i][0]) temp.append(random.choice(deal[i][1])) discard.append(temp) return discarddef compare(n, discard): """ 比較出來贏家(不考慮數字和花色重復的情況) """ temp = 0 for i in range(n): if len(discard[temp][1]) == 4: a = discard[temp][1][-2:] else: a = discard[temp][1][-1:] if len(discard[i][1]) == 4: b = discard[i][1][-2:] else: b = discard[i][1][-1:] if num.index(a) < num.index(b): temp = i return discard[temp][0]
flag = 1while flag: n = eval(input("請輸入玩家的人數(可以被52整數的正整數,不大于22):")) if n < 0 or n > 22 or 52 % n > 0: print("請重新輸入玩家的人數!") continue else: gp = generate_porker() deal = deal_porker(n, gp) for i in range(n): print("{}的牌為:{}".format(deal[i][0],deal[i][1])) discard = discard_porker(n, deal) for i in range(n): print("{}出的牌為:{}".format(discard[i][0], discard[i][1])) winner = compare(n, discard) print("{}贏".format(winner)) temp = eval(input("請選擇你要執行的操作(1.繼續 2.退出):")) if temp == 2: flag = 0
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/122016.html
摘要:本期貓薦書欄目系列之六,就以此為話題,推薦給大家兩本書它們都叫深度學習,但是內容很不一樣。事實上,第一本書被很多人譽為深度學習的圣經,知名度極高,有一個昵稱叫作花書。 最近出了兩件大新聞,相信大家可能有所耳聞。 我來當個播報員,給大家轉述一下: 1、中國隊在第 11 界羅馬尼亞數學大師賽(RMM)中無緣金牌。該項賽事是三大國際賽事之一,被譽為中學奧數的最高難度。其中一道題,令中國隊全軍...
閱讀 2884·2023-04-26 00:26
閱讀 3487·2023-04-25 14:30
閱讀 3383·2021-10-09 09:44
閱讀 3675·2021-09-28 09:35
閱讀 1844·2021-09-22 16:02
閱讀 1247·2021-09-03 10:30
閱讀 3220·2019-08-30 15:53
閱讀 2156·2019-08-30 14:07