美文网首页生活体验
python练习-模拟钓鱼钩的桌游结果

python练习-模拟钓鱼钩的桌游结果

作者: 魔王大柚子 | 来源:发表于2019-12-28 20:43 被阅读0次

规则:

1、 每人平分一半的牌
2、 一人先出牌
3、 如果是出牌的那张牌的相同数字牌在堆中,即可获得这之间和本身的牌
4、 如果出牌为Q对手就给2张牌、K给3张、小王给4张、大王给10张,先给牌,再拿牌,获得的牌放最下面
5、 谁先没牌谁就输了

使用python代码如下:

import random
#所有牌的dict
p={}
#发牌,n是几副牌
def fenpai(n=1):
    p1=[]

    for i in range(52*n):
        p[i]=i%13+1
        p1.append(i)
    for i in range(n):
        p[52*n+2*i]=14
        p[52*n+2*i+1]=15
    s=[]
    r=([],[])
    p2=([],[])
    for i in p:
        s.insert(random.choice(p1),i)
    for i in range(len(p)):

        r[i%2].append(s[i])
        p2[i%2].append(p[s[i]])

    return r,p2
# 钓鱼的排队
line={'p':[],'o':[]}
def role(u):
    dd=0
    pp=[]
    if u[1]==11:
        pp=line['o']
        line['p']=[]
        line['o']=[]
        pp.append(u[0])

    elif u[1]==12:
        dd=2
    elif u[1]==13:
        dd=3
    elif u[1]==14:
        dd=5
    elif u[1]==15:
        dd=10
    if u[1] in line['p']:
        while True:
            v=line['p'].pop()
            k=line['o'].pop()
            pp.insert(0,k)
            if u[1]==v:
                break
        pp.append(u[0])


    else:
        if u[1]!=11:
            line['p'].append(u[1])
            line['o'].append(u[0])
    return dd,pp

# 出牌,man是出牌人信息
def chupai(man):
    if len(man['o'])==0:
        return False,''
    else:
        v=(man['o'].pop(),man['p'].pop())
        return True,v
# 一轮牌堆交互
def geipai(l1,l2,nores=False):
    k,v=chupai(l1)
    again=False
    
    if k:
        if not nores:
            print(l1['name'],'出牌',v[1])
        dd,pp=role(v)
        if len(l2['o'])>dd:
            for _ in range(dd):
                if not nores:
                    print(l2['name'],'罚牌',l2['p'][-1])
                    print(l1['name'],'得牌',l2['p'][-1])

                l1['o'].insert(0,l2['o'].pop())
                l1['p'].insert(0,l2['p'].pop())
            for i in pp:
                l1['o'].insert(0,i)
                l1['p'].insert(0,p[i])
                again=True
                if not nores:
                    print(l1['name'],'得牌',p[i])
        else:
            l2['o']=[]
            l2['p']=[]
            if not nores:
                print(l2['name'],'被清空牌')
        return True,again
        
    else:
        if not nores:
            print(l2['name']+' win !')
        return False,''
# 整个牌局
def paiju(r,nores=False):
    l1={'o':r[0][0],'p':r[1][0],'name':'www'}
    l2={'o':r[0][1],'p':r[1][1],'name':'ccc'}
    init=1
    while  True:
        t,m=geipai(l1,l2,nores)
        if t:
            while True:
                if t:
                    if m:
                        t,m=geipai(l1,l2,nores)
                    else:
                        break
                else:
                    break
        else:
            break
        t,m=geipai(l2,l1,nores)
        if t:
            while True:
                if t:
                    if m:
                        t,m=geipai(l2,l1,nores)
                    else:
                        break
                else:
                    break

        else:
            break
        init+=1
        if not nores:
            print('_'*40)

    return init
# 最大回合数
max=0
# 最小回合数
min=12121
# 跑一千局结果
for i in range(1000):
    r=fenpai(2)
    ini=paiju(r,True)
    if ini>max:
        max=ini
    if ini <min:
        min=ini
print(min,max)



相关文章

  • python练习-模拟钓鱼钩的桌游结果

    规则: 1、 每人平分一半的牌2、 一人先出牌3、 如果是出牌的那张牌的相同数字牌在堆中,即可获得这之间和本身的牌...

  • 古诗》生活录34

    二十五、蓬溪风光 (一) 霞港钓台 龙山赤壁一扁舟,疑是东坡到此游。 欲请严陵同把钓,好将潭月上鱼钩。 (二) ...

  • 熊海水作《钓者嗜好》

    小舟河中央,鱼钩随处钓。 孤单不寂寞,自乐心中笑。

  • 钓鱼

    层云压江口,独钓小舟头。 风动山边树,心静挽鱼钩。

  • 钓鱼奇遇记(六)

    书接上回,谈到了钓浮的问题。 所谓的钓浮,与钓底相对。钓底是要铅皮和带着鱼饵的鱼钩落到湖底,鱼漂露出两目,如果不带...

  • 《述而篇》第二十六章习讲

    原文-- 子钓而不纲,弋不射宿。 我们先解释一下钓而不纲:钓、纲都是动词。“钓”是用只有一个鱼钩的钓竿钓鱼,只能钓...

  • 端午了,爸爸去云端钓粽子

    钓粽子是一个技术活。 首先要有一个好鱼钩。阳光打制的鱼钩太烈,会让粽子微微泛酸。月光打制的鱼钩太寒,会让粽子发涩发...

  • 《论语》述而第七学习笔记(下)

    7.27 子钓而不纲,弋不射宿。——孔子只用(有一个鱼钩)的钓竿钓鱼,而不用(有许多鱼钩的)大绳钓鱼。只射飞鸟,不...

  • 《钓者》

    《钓者》 风漾江上绿,云起水中流。 旁有垂钓人,不复下鱼钩。

  • 线下财富流游戏小结

    上个周末和朋友在茶馆里玩了一款桌游,虽说是桌游它却是以模拟整个人生的投资决策和生活轨迹为背景的。 在游戏中随着骰子...

网友评论

    本文标题:python练习-模拟钓鱼钩的桌游结果

    本文链接:https://www.haomeiwen.com/subject/jzfeoctx.html