python 21点

2023-11-14

21点,你可以叫我仁哥,也可以叫我情哥。mua !没请教

21点黑杰克

废话不多说先上代码

代码部分

import random
import time#延时的这里可以用用
huase=['a','b','c','d']#定义花色
#print(str(pukepai[0]))
dianshu=['A','2','3','4','5','6','7','8','9','10','J','Q','K']#定义点数
#定义每个操作的函数
def print3():#可视化
    print()
    print()
    print()
def fapai():#定义一个发牌函数(单个发牌)
    a=str(random.choice(huase))#从花色与点数随机抽出可以保证随机性
    b=str(random.choice(dianshu))#另一方面也保证了牌量为正无穷增强可玩性
    c=a+b
    if b=='A':
        d=int(input("你发到了A,你选择A的大小是?"))
    elif b=='J' or b=='Q' or b=='K':
        d=10
    else:
        d=int(b)
    return [c,d]#返回一个list,[牌,大小]
def fapai1(a,b):#直接一轮
    for i in range(1,len(a)):
        f=fapai()
        a[i].append(f[0])#牌
        daxiao=b[i]#先定义一个变量储存之前的大小
        del b[i:i+1]#list不能直接改变,所有先删除再添加
        b.insert(i,daxiao+f[1])#添加
def suanqian(person,beishu,i,diqian,b):#算钱的
    qian1=person[i][1]
    del person[i][1]
    person[i].insert(1,qian1+beishu[i]*diqian*b)
    qian1=person[0][1]
    del person[0][1]
    person[0].insert(1,qian1-beishu[i]*diqian*b)
print("准备好了吗?游戏开始!")
flag0=1
persons=int(input("游戏有一共多少人参加:"))
qian=int(input("每个人初始钱多少?(如果想要更好的体验该变量越大越好;建议10000):"))
diqian=int(input("赌多大?小赌怡情,大赌伤身。(还有如果想要更好的体验该变量越小越好;建议100)"))
person=[[]]#每个玩家的钱用list表示
beishu=[1]*persons#记录闲家的倍数
person[0].append("庄家")
person[0].append(qian)#person[0]记录庄家
for i in range(1,persons):
    b=["闲家"+str(i),qian]
    person.append(b)
print("每个人的钱数目")
print(person)
##########################################################################################################################################
while flag0==1:
    touxiang=[0]*persons#投降?不存在!
    dianshudaxiao=[0]*persons#记录大小算最后的输赢
    pai=[[]]#记录牌
    pai[0].append("庄家的牌:")
    for i in range(1,persons):#每个闲家的牌
        b=["闲家"+str(i)+"的牌:"]
        pai.append(b)
    print("开始发牌!唰唰唰。。。。")
    fapai1(pai,dianshudaxiao)
    time.sleep(3)
    print(pai)
    print(dianshudaxiao)
    print("再发一轮")
    fapai1(pai,dianshudaxiao)
    time.sleep(3)
    print(pai)
    print("开始发庄家的牌,第一张明牌")
    f=fapai()
    pai[0].append(f[0]+"(明牌)")
    daxiao=dianshudaxiao[0]
    del dianshudaxiao[0:1]
    dianshudaxiao.insert(0,daxiao+f[1])
    time.sleep(3)
    print(pai)
    print("第二张牌暗牌")
    f=fapai()
    pai[0].append(f[0]+"(暗牌)")
    daxiao=dianshudaxiao[0]
    del dianshudaxiao[0:1]
    dianshudaxiao.insert(0,daxiao+f[1])
    time.sleep(3)
    print(pai)
    print("大小(自己不会算!?)",end=" ")
    print(dianshudaxiao)
    for i in range(1,persons):#每个闲家发话
        print3()
        while True:
            bs=1
            print("闲家"+str(i)+"请发话你现在的大小是"+str(dianshudaxiao[i])+",大于17的话就建议不要继续发牌了")
            xuanze=int(input("请选择:1,继续发牌。2,停牌。3,投降。4,加倍。"))
            if xuanze==1:
                f=fapai()
                pai[i].append(f[0])
                daxiao=dianshudaxiao[i]
                del dianshudaxiao[i:i+1]
                dianshudaxiao.insert(i,daxiao+f[1])
                print("现在牌情况")
                print(pai)
                print(dianshudaxiao)
                if dianshudaxiao[i]>21:
                    print("不好意思你爆了!点数大于了21")
                    del dianshudaxiao[i:i+1]
                    dianshudaxiao.insert(i,0)
                    break
            if xuanze==2:
                break
            if xuanze==3:
                beishu[i]=0.5
                suanqian(person,beishu,i,diqian,-1)
                touxiang[i]=1
                break
            if xuanze==4:
                bs1=int(input("加几倍?"))
                beishu[i]=bs*bs1
                break
    print("现在到了庄家阶段")
    while True:
        print3()
        print("庄家"+"请发话你现在的大小是"+str(dianshudaxiao[0])+"大于17的话就建议不要继续发牌了")
        xuanze=int(input("请选择:1,继续发牌。2,停牌。"))
        if xuanze==1:
            f=fapai()
            pai[0].append(f[0])
            daxiao=dianshudaxiao[0]
            del dianshudaxiao[0:0+1]
            dianshudaxiao.insert(0,daxiao+f[1])
            print("现在牌情况")
            print(pai)
            print(dianshudaxiao)
            if dianshudaxiao[0]>21:
                print("不好意思庄家你爆了!点数大于了21")
                del dianshudaxiao[0:0+1]
                dianshudaxiao.insert(0,0)
                break
        if xuanze==2:
            break
        #计算输赢
    print3()
    print("这局结束,庄家与闲家的点数为:",end=' ')
    print(dianshudaxiao)
    for i in range(1,persons):
        if dianshudaxiao[i]>dianshudaxiao[0] and touxiang[i]==0:
            print("闲家"+str(i)+"的点数为"+str(dianshudaxiao)+"大于庄家。闲家"+str(i)+"赢")
            suanqian(person,beishu,i,diqian,1)
        if dianshudaxiao[i]<dianshudaxiao[0] and touxiang[i]==0:
            print("闲家"+str(i)+"的点数为"+str(dianshudaxiao)+"小于庄家。庄家赢")
            suanqian(person,beishu,i,diqian,-1)
        if dianshudaxiao[i]==dianshudaxiao[0] and touxiang[i]==0:
            print("闲家"+str(i)+"的点数为"+str(dianshudaxiao)+"等于庄家。平局")
    print("各个闲家的倍数为:")
    print(beishu[1:])
    print("这局结果")
    print(person)
    flag0=int(input("继续游戏(1)还是结束游戏(0)?"))
print("最终结果为")
print(person)

相关说明(我做的是一个简化了的21点没有分牌操作)

21点玩法规则(自己定了一个简化的玩法)
开局时,庄家给每个玩家牌面向上发两张牌(明牌)。再给自己发两张牌,一张明牌,一张暗牌玩家可以选择“继续拿牌、停牌、加倍(初始倍数为1)、或投降(庄家赢得一半赌注);”当所有玩家停止拿牌后,庄家翻开暗牌,并持续拿牌直至庄家停牌(他以为最大后 )最后庄家与闲家比大小。 大家手中扑克点数的计算是:2至9牌,按其原点数计算;K、Q、J和10牌都算作10点(一般记作T,即ten之意);A 牌(ace)既可算作1点也可算作11点, 由玩家自己决定 比大小:每张牌组成由字母与数字组成(a表示黑桃,b表示红桃,c表示梅花,d表示方块)不分花色;21点最大,超过21则表示爆掉直接输了¶
在这里插入图片描述
喂!老王。什么今晚去朋友家打21点?好好那你照顾好我老婆我马上去。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python 21点 的相关文章

随机推荐

  • WSL和VM的不兼容问题

    目前的问题是鱼与熊掌不可兼得 所以每次只能用一个 假如要用wsl2 则执行 dism exe online enable feature featurename VirtualMachinePlatform all norestart ws
  • SQL 常用优化实践

    对查询进行优化 要尽量避免全表扫描 首先应考虑在 where 及 order by 涉及的列上建立索引 应尽量避免在 where 子句中对字段进行 null 值判断 否则将导致引擎放弃使用索引而进行全表扫描 如 select id from
  • 神位纷争服务器维护,神位纷争steam版3月12日版本更新公告

    Steam上的神位纷争即将迎来重大版本更新 以下更新也将在之后的移动端版本中体现 本次更新将在3月12日下午推送至Steam版本的 神位纷争 另外需要补充一句的是 神位纷争HD已可免费游玩了 欢迎各位玩家前往体验 系统 1 对战系统相关改动
  • 软件版本号的意思是什么?从PC到安卓,带你了解版本号命名逻辑

    猫三科技杂烩 18 12 2114 49 很多朋友在安装软件的时候都会注意到软件下方一行意义不明的版本号 有的软件会用x x x逻辑命名版本号 有的软件则是x x x x 而windows系统的版本号例如1803就更让人摸不到头脑了 那么这
  • Transformer——《Attention is all you need》

    本文是Google 机器翻译团队在2017 年发表 提出了一个新的简单的网络模型 Transformer 该模型基于纯注意力机制 Attention mechanisms 完全抛弃了RNN和CNN网络结构 在机器翻译任务上取得了很好的效果
  • 设计和开发如何获取真实的客户产品需求

    某富翁想要娶老婆 有三个人选 富翁给了三个女孩各一千元 请她们把房间装满 第一个女孩买了很多棉花 装满房间的1 2 第二个女孩买了很多气球 装满房间3 4 第三个女孩买了蜡烛 让光线充满房间 最终 富翁选了胸部最大的那个 这个故事告诉我们
  • 五种开源协议的具体区别

    1 BSD开源协议 original BSD license FreeBSD license Original BSD license 修改源码后可以选择闭源 修改后的文档不用进行版权说明 衍生软件的广告不能用你的名字促销 2 Apache
  • 爬虫Scrapy框架之学习使用(三):信号(Signals)

    Extension for collecting core stats like items scraped and start finish times import datetime from scrapy import signals
  • 【分布式-Redis应用】Spring中Redis使用项目实战(持续更新...)

    TOC 目录标题 场景及代码示例 1 list集合存储到Redis以及读取 import org springframework data redis core StringRedisTemplate Autowired private S
  • qt对excel的基本操作

    qt对excel的基本操作 1 环境 1 1 配置方面 确保Excel软件在本地服务器注册成功 没注册成功的可以通过 在运行中 E program Files Microsoft Office Office12 EXCEL EXE regs
  • 代数余子式与伴随矩阵

    关系 例题 伴随矩阵运算
  • redis配置文件限制只能本地访问问题,虚拟机无法访问

    解决 修改配置文件 daemonize no 用守护线程的方式启动 requirepass yourpassword 给redis设置密码 bind 192 168 1 1 注释掉这部分 这是限制redis只能本地访问 appendonly
  • 双栈排序 二分图匹配

    题目链接 https www acwing com problem content description 155 题目 Tom最近在研究一个有趣的排序问题 通过2个栈S1和S2 Tom希望借助以下4种操作实现将输入序列升序排序 操作a 如
  • (十一)jmeter-集合点---学习笔记

    集合点 简单来理解一下 虽然我们的 性能测试 理解为 多用户并发测试 但真正的并发是不存在的 为了更真实的实现并发这感念 我们可以在需要压力的地方设置集合点 每到输入用户名和密码登录时 所有的虚拟用户都相互之间等一等 然后 一起访问 注意
  • Acwing-4655. 重新排序

    我们可以累计每个 A i 的被求和次数 c i 容易贪心得到 被求和次数越多的肯定得放越大的数 我们可以先统计原来的求和的总和 sum 再给 A 数组和统计求和次数的数组 c 从小到大排好序 最后依次相乘起来即 i 1 n a i c i
  • Win10+VS2015编译caffe踩坑记录

    跑HTM的代码要用到caffe的库 从学长那拷过来的工程里是用VS2013编译的 只能用自己的VS2015重新编译一下 记录一下编译过程 环境 Windows10 VS2015 cuda8 0 cudnn5 1 CMake3 17 0 An
  • 漂亮的弹出框,javascript库bootbox介绍

    传统的javascript的警告框 确认框 提示框
  • 【数字图像处理】三.MFC实现图像灰度、采样和量化功能详解

    本文主要讲述基于VC 6 0 MFC图像处理的应用知识 主要结合自己大三所学课程 数字图像处理 及课件进行讲解 主要通过MFC单文档视图实现显示BMP格式图片 并通过Bitmap进行灰度处理 图片采样和量化功能 个人认为对初学者VC 6 0
  • python 如何解决 No module named ‘pip‘问题

    在下载python第三方库的时候 突然报错 解决方法很简单 两行代码就行了 python m ensurepip easy install pip 此时下载 还不行 提示说要更新pip python m pip install upgrad
  • python 21点

    21点 你可以叫我仁哥 也可以叫我情哥 mua 没请教 21点黑杰克 代码部分 相关说明 我做的是一个简化了的21点没有分牌操作 21点黑杰克 废话不多说先上代码 代码部分 import random import time 延时的这里可以