对于斗地主中无炸牌局的构造

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
今日推荐