摘要:最近在自學(xué),無(wú)意看到群友一道比較有趣的問(wèn)題,故嘗試給出答案。目前給出的版本是最簡(jiǎn)單的情況,沒(méi)有考慮比較牌大小中出現(xiàn)數(shù)字或者字母重復(fù)的情況,以后有時(shí)間或許會(huì)給出更精細(xì)的版本。編寫(xiě)程序,進(jìn)行撲克牌大小比較。
最近在自學(xué)Python,無(wú)意看到群友一道比較有趣的問(wèn)題,故嘗試給出答案。目前給出的版本是最簡(jiǎn)單的情況,沒(méi)有考慮比較牌大小中出現(xiàn)數(shù)字或者字母重復(fù)的情況,以后有時(shí)間或許會(huì)給出更精細(xì)的版本。
編寫(xiě)程序,進(jìn)行撲克牌大小比較。利用函數(shù)方法,生成52張四色(梅花,方塊,黑桃,紅桃)撲克牌,玩家的人數(shù)由用戶輸入,根據(jù)玩家的人數(shù)進(jìn)行發(fā)牌,然后比較大小。1. 牌的生成、發(fā)牌、大小比較,必須為函數(shù)2. 程序要有終止條件3. 用戶不選擇程序終止,那么繼續(xù)發(fā)牌、出牌,進(jìn)行大小比較提示:可以使用以下列表表示信息```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 = ["甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸", "子", "丑", "寅", "卯", "巳", "午", "未", "申", "酉", "戌", "亥"]
# 需要定義的函數(shù)def generate_porker(): """ 產(chǎn)生隨機(jī)的52張牌,允許重復(fù) """ 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張牌中給每個(gè)玩家按照順序發(fā)牌 """ 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): """ 隨機(jī)讓每個(gè)玩家抽一張牌出來(lái) """ 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): """ 比較出來(lái)贏家(不考慮數(shù)字和花色重復(fù)的情況) """ 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("請(qǐng)輸入玩家的人數(shù)(可以被52整數(shù)的正整數(shù),不大于22):")) if n < 0 or n > 22 or 52 % n > 0: print("請(qǐng)重新輸入玩家的人數(shù)!") 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("請(qǐng)選擇你要執(zhí)行的操作(1.繼續(xù) 2.退出):")) if temp == 2: flag = 0
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/122016.html
摘要:本期貓薦書(shū)欄目系列之六,就以此為話題,推薦給大家兩本書(shū)它們都叫深度學(xué)習(xí),但是內(nèi)容很不一樣。事實(shí)上,第一本書(shū)被很多人譽(yù)為深度學(xué)習(xí)的圣經(jīng),知名度極高,有一個(gè)昵稱(chēng)叫作花書(shū)。 最近出了兩件大新聞,相信大家可能有所耳聞。 我來(lái)當(dāng)個(gè)播報(bào)員,給大家轉(zhuǎn)述一下: 1、中國(guó)隊(duì)在第 11 界羅馬尼亞數(shù)學(xué)大師賽(RMM)中無(wú)緣金牌。該項(xiàng)賽事是三大國(guó)際賽事之一,被譽(yù)為中學(xué)奧數(shù)的最高難度。其中一道題,令中國(guó)隊(duì)全軍...
閱讀 2893·2023-04-26 00:26
閱讀 3501·2023-04-25 14:30
閱讀 3394·2021-10-09 09:44
閱讀 3687·2021-09-28 09:35
閱讀 1868·2021-09-22 16:02
閱讀 1259·2021-09-03 10:30
閱讀 3231·2019-08-30 15:53
閱讀 2165·2019-08-30 14:07