類比鬥地主發牌,牌共54張,
花色:黑桃('\u2660'),梅花('\u2663'),方塊('\u2665'),紅桃(‘\u2666’),種類為:A2-10JQK,大小王(X, x) 三個人,每個人17張牌,牌底留三張
輸入斷行符號,列印第一個問的17張牌
輸入斷行符號,列印第二個問的17張牌
輸入斷行符號,列印第三個問的17張牌
import random as R
""" 實現一人一次隨機發17張牌""" def reduce(L, w): for x in w: L.pop(L.index(x)) return L L = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K'] H = ['\u2660', '\u2663', '\u2665', '\u2666'] P = ['X','x'] for x in H: for y in L: s = x + y P.append(s) R.shuffle(P) i = 0 L2 = [] while i < 2: if len(P) > 17: w = R.sample(P, 17) # 從序列中選擇n個隨機且不重複的元素 L2.append(w) P = reduce(P, w) print(w) input() else: break print(P)
import random as R"""上面代碼的簡單實現"""L = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']L1 = ['X', 'x']L1.extend(map(lambda x: x+"\u2660", L))L1.extend(map(lambda x: x+"\u2663", L))L1.extend(map(lambda x: x+"\u2665", L))L1.extend(map(lambda x: x+"\u2666", L))R.shuffle(L1)print(L1[0:17])input()print(L1[17:34])input()print(L1[34:51])input()print(L1[51:])
import random as R"""一次一人發一張牌"""L = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']H = ['\u2660', '\u2663', '\u2665', '\u2666']w1 = []w2 = []w3 = []P = ['X','x']for x in H: for y in L: s = x + y P.append(s)R.shuffle(P)i = 1while i <= 17: w1.append(P.pop()) w2.append(P.pop()) w3.append(P.pop()) i += 1print(w1)input()print(w2)input()print(w3)input()print(P)