Python扑克游戏编程---摸大点

简介: Python扑克游戏编程---摸大点

开发环境:

IDE:Pycharm

OS:mac Monterey version 12.5

游戏说明:

此游戏是一款扑克牌游戏,扑克牌颜色为红桃,黑桃,方块,梅花。牌值为1-13, JQK为牌值0.5

游戏规则:每轮参与玩家任意个,然后依次发牌,玩家不要牌,如果总牌值不超过11,继续给下一个玩家发牌,如果哪位玩家总牌值超过11, 就爆点,牌子清零。最后计算哪个玩家牌值最高,就算赢家。

源代码如下:

import random

# 最后的玩牌结果
result = {
   }


# 组建玩家列表
def build_player(player_lst):
    while 1:
        player = input('请输入玩家姓名:(q/Q退出)')
        if player.upper() == 'Q':
            break
        player_lst.append(player)
    return player_lst


# 生成一副扑克牌
def get_poke_lst():
    '''
    生成一副牌
    :return: 返回一副牌
    '''
    total_poke_lst = []
    color_lst = ['红桃♥️', '黑桃♠️', '方片♦️', '梅花♣️']
    num_lst = []
    for num in range(1, 14):
        num_lst.append(num)
    for color in color_lst:
        for num in num_lst:
            item = (color, num,)
            total_poke_lst.append(item)
    return total_poke_lst


# 发牌函数
def get_poke(player, poke_lst):
    '''
    随机发牌,返回牌值
    :param player: 玩家名
    :param poke_lst: 总的牌列表
    :return: score
    '''
    # 给用户发第一张牌
    score = 0
    index = random.randint(0, len(poke_lst) - 1)
    poke = poke_lst.pop(index)

    value = poke[1]
    if poke[1] > 10:
        value = 0.5
    score += value
    print(f'给{player}发的牌:{poke[0]}{poke[1]}, 此刻所有牌的面值总和:{score}')
    return score

# 玩牌
def play_poke():
    player_lst = []
    player_lst = build_player(player_lst)

    # 生成一副牌
    total_poke_lst = get_poke_lst()

    for player in player_lst:
        # 给用户发第一张牌,牌值
        score = get_poke(player, total_poke_lst)

        # 用户选择是否继续要
        while 1:
            choice = input('是否继续要牌(Y/N)?')
            choice = choice.upper()

            # 用户输入的不是Y/N
            if choice not in {
   'Y', 'N'}:
                print('输入有误,请重新输入')

                continue

            # 用户输入N, 不继续要牌
            if choice == 'N':
                print(f'{player}不要牌了')
                break

            score += get_poke(player, total_poke_lst)
            print(f'{player} 此刻所有牌的面值总和:{score}')

            # 大于11点, 则用户爆了切分值为0
            if score > 11:
                print(f'玩家{player}爆了')
                score = 0
                break
        result[player] = score

    return result

# 游戏及最后结果
def play():
    print('欢迎进入摸大点扑克游戏'.center(60, '='))
    result = play_poke()
    print('\n')
    print(' 最后的成绩 '.center(50, '*'))
    print(result)

    score_result = list(result.values())  # 分值的列表
    for player in result:
        if result[player] == max(score_result):
            print(f'赢家为 {player}')


# 扑克界面
menu_info = '''
*******   摸大点扑克牌游戏   ********
   【1】玩扑克
   【2】退 出
'''
if __name__ == '__main__':
    while 1:
        print(menu_info)
        choice_num = input('输入序号:')
        if choice_num.isdecimal():
            choice_num = int(choice_num)
            if choice_num == 1:
                play()
            elif choice_num == 2:
                exit('Bye.')
        else:
            print('请输入数字【1|2】')
AI 代码解读

运行结果如下图:

image.png
image.png

目录
打赏
0
1
1
0
220
分享
相关文章
Python 高级编程与实战:深入理解性能优化与调试技巧
本文深入探讨了Python的性能优化与调试技巧,涵盖profiling、caching、Cython等优化工具,以及pdb、logging、assert等调试方法。通过实战项目,如优化斐波那契数列计算和调试Web应用,帮助读者掌握这些技术,提升编程效率。附有进一步学习资源,助力读者深入学习。
[oeasy]python081_ai编程最佳实践_ai辅助编程_提出要求_解决问题
本文介绍了如何利用AI辅助编程解决实际问题,以猫屎咖啡的购买为例,逐步实现将购买斤数换算成人民币金额的功能。文章强调了与AI协作时的三个要点:1) 去除无关信息,聚焦目标;2) 将复杂任务拆解为小步骤,逐步完成;3) 巩固已有成果后再推进。最终代码实现了输入验证、单位转换和价格计算,并保留两位小数。总结指出,在AI时代,人类负责明确目标、拆分任务和确认结果,AI则负责生成代码、解释含义和提供优化建议,编程不会被取代,而是会更广泛地融入各领域。
56 28
Python 高级编程与实战:深入理解数据科学与机器学习
本文深入探讨了Python在数据科学与机器学习中的应用,介绍了pandas、numpy、matplotlib等数据科学工具,以及scikit-learn、tensorflow、keras等机器学习库。通过实战项目,如数据可视化和鸢尾花数据集分类,帮助读者掌握这些技术。最后提供了进一步学习资源,助力提升Python编程技能。
|
21天前
|
[oeasy]python074_ai辅助编程_水果程序_fruits_apple_banana_加法_python之禅
本文回顾了从模块导入变量和函数的方法,并通过一个求和程序实例,讲解了Python中输入处理、类型转换及异常处理的应用。重点分析了“明了胜于晦涩”(Explicit is better than implicit)的Python之禅理念,强调代码应清晰明确。最后总结了加法运算程序的实现过程,并预告后续内容将深入探讨变量类型的隐式与显式问题。附有相关资源链接供进一步学习。
31 4
Python 高级编程与实战:深入理解设计模式与软件架构
本文深入探讨了Python中的设计模式与软件架构,涵盖单例、工厂、观察者模式及MVC、微服务架构,并通过实战项目如插件系统和Web应用帮助读者掌握这些技术。文章提供了代码示例,便于理解和实践。最后推荐了进一步学习的资源,助力提升Python编程技能。
Python 高级编程与实战:深入理解性能优化与调试技巧
本文深入探讨了Python的性能优化和调试技巧,涵盖使用内置函数、列表推导式、生成器、`cProfile`、`numpy`等优化手段,以及`print`、`assert`、`pdb`和`logging`等调试方法。通过实战项目如优化排序算法和日志记录的Web爬虫,帮助你编写高效稳定的Python程序。
在线编程实现!如何在Java后端通过DockerClient操作Docker生成python环境
以上内容是一个简单的实现在Java后端中通过DockerClient操作Docker生成python环境并执行代码,最后销毁的案例全过程,也是实现一个简单的在线编程后端API的完整流程,你可以在此基础上添加额外的辅助功能,比如上传文件、编辑文件、查阅文件、自定义安装等功能。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
在线编程实现!如何在Java后端通过DockerClient操作Docker生成python环境
Python 高级编程与实战:构建 RESTful API
本文深入探讨了使用 Python 构建 RESTful API 的方法,涵盖 Flask、Django REST Framework 和 FastAPI 三个主流框架。通过实战项目示例,详细讲解了如何处理 GET、POST 请求,并返回相应数据。学习这些技术将帮助你掌握构建高效、可靠的 Web API。
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
188 31
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
Python 高级编程与实战:构建自动化测试框架
本文深入探讨了Python中的自动化测试框架,包括unittest、pytest和nose2,并通过实战项目帮助读者掌握这些技术。文中详细介绍了各框架的基本用法和示例代码,助力开发者快速验证代码正确性,减少手动测试工作量。学习资源推荐包括Python官方文档及Real Python等网站。

热门文章

最新文章