import numpy as np import random as random # gamer1/gamer2/gamer3 随机指定,这点比较重要 # 构造牌池 pool_1=list(range(1,14)) pool=np.repeat(pool_1,4).tolist() pool.append(14) pool.append(15) random.shuffle(pool) gamer1=pool[0:17] gamer2=pool[17:34] gamer3=pool[34:51] n=0 boom1= np.array(np.unique(gamer1, return_counts=True)) n1=boom1[0, (np.where(boom1[1, ] == 4))] boom2= np.array(np.unique(gamer2, return_counts=True)) n2=boom2[0, (np.where(boom2[1, ] == 4))] boom3= np.array(np.unique(gamer3, return_counts=True)) n3=boom3[0, (np.where(boom3[1, ] == 4))] booms=len(n1[0,])+len(n2[0,])+len(n3[0,]) if 14 and 15 in (gamer1): booms=booms+1 elif 14 and 15 in (gamer1): booms=booms+1 elif 14 and 15 in (gamer1): booms=booms+1 else: pass print(booms) if booms==0: pass else: while booms > 1 and n<1000: pool=np.repeat(pool_1,4).tolist() random.shuffle(pool) gamer1=pool[0:17] gamer2=pool[17:34] gamer3=pool[34:51] boom1=np.unique(gamer1, return_counts=True) boom2=np.unique(gamer2, return_counts=True) boom3=np.unique(gamer3, return_counts=True) booms=boom1+boom2+boom3 n=n+1 gamer1.sort() gamer2.sort() gamer3.sort() # 底牌中的牌 for c_1 in gamer1: pool.remove(c_1) for c_2 in gamer2: pool.remove(c_2) for c_3 in gamer3: pool.remove(c_3) #print(gamer1,len(gamer1)) #print(gamer2,len(gamer2)) #print(gamer3,len(gamer3)) #print(pool) def trans_card(loser_1, winer_1, norm_er): pool_dict = {"0": 12, "1": 12, "2": 12, "3": 12, "4": 13, "5": 13, "6": 13, "7": 13, "8": 1, "9": 1, "10": 1, "11": 1, "12": 2, "13": 2, "14": 2, "15": 2, "16": 3, "17": 3, "18": 3, "19": 3, "20": 4, "21": 4, "22": 4, "23": 4, "24": 5, "25": 5, "26": 5, "27": 5, "28": 6, "29": 6, "30": 6, "31": 6, "32": 7, "33": 7, "34": 7, "35": 7, "36": 8, "37": 8, "38": 8, "39": 8, "40": 9, "41": 9, "42": 9, "43": 9, "44": 10, "45": 10, "46": 10, "47": 10, "48": 11, "49": 11, "50": 11, "51": 11, "52": 14, "53": 15} key_list = [] value_list = [] for key, value in pool_dict.items(): key_list.append(key) value_list.append(value) loser_card = [] for number in loser_1: index_mid = value_list.index(number) add_card = key_list[index_mid] add_card = int(add_card) value_list.pop(index_mid) key_list.pop(index_mid) loser_card.append(add_card) winer_card = [] for number1 in winer_1: index_mid = value_list.index(number1) add_card = key_list[index_mid] add_card = int(add_card) value_list.pop(index_mid) key_list.pop(index_mid) winer_card.append(add_card) norm_card = [] for number2 in norm_er: index_mid = value_list.index(number2) add_card = key_list[index_mid] add_card = int(add_card) value_list.pop(index_mid) key_list.pop(index_mid) norm_card.append(add_card) for pt in (loser_card, winer_card, norm_card): print(pt) trans_card(gamer1,gamer2,gamer3)
对于斗地主中无炸牌局的构造
猜你喜欢
转载自www.cnblogs.com/yuvejxke/p/12674895.html
今日推荐
周排行