jj循环pk赛中败局手牌的发放

jj斗地主中pk赛中的败局

比较统一的规律为

炸(10以内)

三(A/2) 不同时出现
以上内容出现的牌数在0/3/5

断点 位置(3-13)随机挑3个

现进行模仿

import numpy as np
import random as random
# 构建牌池
pool_1=[1,2,3,4,5,6,7,8,9,10,11,12,13]
pool=np.repeat(pool_1,4).tolist()

# 选择顶牌是那种方式
## 0 炸 1给单王 2给三个
top_card=np.random.choice([0,1,2],1,replace=False)
## 炸的处理
if top_card==0:
    boom=np.random.choice([1,2,3,4,5,6,7,8,9,10],1,replace=False)
    gamer1=[boom]*4 #玩家手牌增加炸牌

    pool_1.remove(boom)

elif top_card==1:
    boom=np.random.choice([14,15],1,replace=False).tolist()
    gamer1=boom
else:
    boom=np.random.choice([12,13],1,replace=False)
    gamer1=[boom]*3#乘三可以考虑

    pool_1.remove(boom)

# 选择断点

break_card=np.random.choice(pool_1,3,replace=False).tolist()#3的数量可以修改
for bc in break_card:
    pool_1.remove(bc)
## 开始抽牌
need=17-len(gamer1)#需要抽取的数量
pool_last=np.repeat(pool_1,2)
gamer1_puls=np.random.choice(pool_last,need,replace=False).tolist()
if type(gamer1)==np.array:
    gamer1.tolist()
else:
    pass
## 合并
for puls in gamer1_puls:
    gamer1.append(puls)

# 剩余牌数
pool=np.repeat([1,2,3,4,5,6,7,8,9,10,11,12,13],4).tolist()
pool.append(14)
pool.append(15)
for used_card in gamer1:
    pool.remove(used_card)
## 分发牌数
random.shuffle(pool)
gamers=random.sample(pool,34)
gamer2=gamers[0:17]
gamer3=gamers[17:34]
gamer1.sort()
gamer2.sort()
gamer3.sort()
print(gamer1,len(gamer1))
print(gamer2,len(gamer2))
print(gamer3,len(gamer3))
for hand_card2 in gamer2:
    pool.remove(hand_card2)
for hand_card3 in gamer3:
    pool.remove(hand_card3)
print(pool)

原文地址:https://www.cnblogs.com/yuvejxke/p/12679462.html

时间: 2024-10-06 11:13:12

jj循环pk赛中败局手牌的发放的相关文章

使用javascript随机生成斗地主玩家手牌

学习javascript估摸着有半个多月了,好歹自己有过编程基础,学的还算轻松,不过js里的面向对象是真的打脑壳,但都但不懂,和我以前学过的c#简直相差太远 今天写了个随机生成斗地主玩家手牌的代码,自己还蛮满意的,一溜叽滚下床,戳开电脑来分享一手 虽然这种东西根本没啥用,哈哈 卡牌列表数组元素类型: [1, "黑桃", 11, "K"] 每一张卡牌为一个数组,有4个元素,0号元素代表当前花色大小,2号元素代表当前卡片数值大小,1号和3号都是字符串,用来表示卡牌表面信

怎么从自己的手牌中寻找比另一副牌大的几连对

//调试用的数组--自己的牌    int[] array = new int[24]{//306                  215,307,308,309,310,311,312,313,314,          415,405,    407,    409,410,411,412,413,414,          315,        207,208,                  106,107,    109,    };    /*       int[] arra

7-9交换手牌

import java.util.Scanner; public class D1 { public static void main(String[] args) { Scanner input=new Scanner (System.in); System.out.println("输出互换前手中的纸牌:"); System.out.print("请输入第一个数:"); int one=input.nextInt(); System.out.print(&quo

Codeforces546C:Soldier and Cards

Two bored soldiers are playing card war. Their card deck consists of exactly n cards, numbered from 1 to n, all values are different. They divide cards between them in some manner, it's possible that they have different number of cards. Then they pla

自然系卡牌主要增加血量m--4武侠联盟游戏

在<游戏降临>这一款手游中,有很多不同类型不同属性的卡牌,卡牌一共分为5个系,近百种卡牌,让玩家为之倾心.卡牌分为火,水,自然,雷,光5个系,火系卡牌主要增加攻击力,水系卡牌主要增加幸运,自然系卡牌主要增加血量,雷系卡牌主要增加敏捷,光系卡牌主要增加防御.每一种卡牌都有其特定的作用和效果,只要玩家善于运用和搭配,就能发挥卡牌的最大能量,引爆战争. 战术阵型的作用会愈来愈突出的.举个例子,你的球队实力2000,但却打不过实力1800的球队,这就是阵容战术在作怪!阵型战术的相克原理是:组织克防守,

TCG卡牌游戏研究:《炉石战记:魔兽英雄传》所做的改变

转自:http://www.gameres.com/665306.html TCG演进史 说到卡牌游戏,大家会联想到什么呢? 是历史悠久的扑克牌.风靡全球的<MTG 魔法风云会>与<游戏王>.结合数位与现实的<三国志大战>.或是在手机上掀起收集热潮的<龙族拼图>和<百万亚瑟王>? 卡牌游戏这个统称,其内容可以跟各式各样的玩法结合,而暴风雪新推出的<炉石战记>(以下简称炉石)所选择的玩法,是让玩家自行组牌.进行对战的「集换式卡牌游戏」(

开发h5斗地主大厅算法——第十二章の主动出牌(1)

本章开始,我们介绍主动出牌的算法,和被动出牌类似,我们第一步把主要架子搭起来. 首先清空出牌序列 [cpp] view plain copy clsHandCardData.ClearPutCardList(); 主动出牌的策略按照优先级大体可以分为三类: [一]能直接一手牌出去,优先出. [二]两手牌出去且有绝对大牌,先出绝对大牌. [三]出一手牌使得接下来自己手牌价值最大化. [cpp] view plain copy //剪枝:如果能出去最后一手牌直接出 CardGroupData Sur

HuaweiOJ-扑克牌大小

[问题描述] 扑克牌游戏大家应该都比较熟悉了,一副牌由54张组成,含3~A.2各4张,小王1张,大王1张.牌面从小到大用如下字符和字符串表示(其中,小写joker表示小王,大写JOKER表示大王): 3 4 5 6 7 8 9 10 J Q K A 2 joker JOKER 输入两手牌,两手牌之间用"-"连接,每手牌的每张牌以空格分隔,"-"两边没有空格,如:4 4 4 4-joker JOKER. 请比较两手牌大小,输出较大的牌,如果不存在比较关系则输出ERRO

9508 诸葛给我牌

Description 三国杀是现在流行的桌游..分为两方,用牌来进行对战,每一张牌都有自己的属性,而每一个武将(就是玩家)都有自己的技能. 每一次玩家都从牌堆里面抽两张牌到手牌上,然后进行出牌杀死对方玩家(更具体请参考官方说明).. 诸葛亮的技能就是能看到牌堆上面的5张牌而可以对这5张牌进行摆放,绝对自己或者下家得到的牌. 而甄姬的技能就是一开始可以在牌堆里面摸牌,只要摸到的是黑色牌都可以拿到手牌上,一直摸到不是黑色的牌为止. 现在诸葛亮和甄姬刚好坐在一起,甄姬成为了诸葛亮的下家.现在诸葛亮想