python开发--乌龟对对碰实现(一)

文章目录

    • 前言
    • 规则解析
    • 代码实现
    • 代码解析
    • 问题总结与思考

前言

"乌龟对对碰"是一种近期在网络直播平台上非常流行的盲盒玩法,消费者购买盲袋或盲盒,每个包含一个不同颜色的树脂乌龟玩具。玩家在购买时会许愿一个特定颜色的乌龟,卖家在直播间现场拆包,如果拆出许愿色或相同颜色的乌龟,会根据规则额外加拆盲袋,直到没有符合对对碰条件的盲袋为止。所有拆出的乌龟最终都归买家所有。这种玩法因其互动性和不确定性,给消费者带来了刺激感和乐趣,因而迅速走红网络 。

这种盲盒玩法不仅吸引了大量网友参与,甚至奥运冠军全红婵也参与其中,进一步推动了其火爆程度 。然而,这种玩法也引发了一些争议和讨论,特别是关于消费理性和潜在的非理性消费问题。专家提示,消费者在参与时应保持警惕,避免冲动消费,特别是未成年人,更应注意避免超出自身承受能力的消费 。

今天咱们要干的事就是,尝试用python做一个乌龟对对碰出来玩,哈哈哈哈。
在这里插入图片描述

规则解析

这里以最普通的9拆为基础入手,因为咱也不是很会,哈哈哈。
"乌龟对对碰"的玩法规则主要包括以下几点:

  1. 购买盲袋或盲盒:消费者需购买一定数量的盲袋或盲盒,每个盲袋或盲盒内含有一个颜色不同的树脂乌龟玩具。

  2. 选择许愿颜色:在购买时,消费者需选择一个自己希望获得的乌龟颜色,即许愿色。

  3. 直播间拆盒:卖家在直播间现场拆开消费者购买的盲袋或盲盒。

  4. 对对碰规则

    • 如果拆出乌龟的颜色与消费者许愿的颜色一致,或拆出两只相同颜色的乌龟,即发生“对对碰”。
    • 每当发生对对碰时,卖家会额外加拆一个盲袋,并继续与之前未发生对对碰的已拆盲袋组合,进行下一轮的拆盒。
  5. 结束条件:当九宫格内没有同色乌龟或者数量不足9个时,游戏自动停止。

  6. 所有拆出乌龟归买家所有:无论是通过正常购买还是通过加拆获得的乌龟,最终都归消费者所有。

代码实现

这里经过了几次迭代,仍然是还没搞定的,测试还是存在逻辑漏洞,先把初版放出来哈。

import random# 假设有10种颜色的乌龟
TURTLE_COLORS = ['红色', '蓝色', '绿色', '黄色', '紫色', '青色', '粉色', '玫红', '橙色', '咖色']def buy_blind_bag():"""购买盲袋,随机获得一个乌龟"""return random.choice(TURTLE_COLORS)def wish_for_color():"""玩家选择许愿颜色"""return input("选择你希望获得的乌龟颜色(输入颜色名称):")def play_game(packages):"""开始游戏,packages是要拆的盲袋数量"""wish_color = wish_for_color()results = []extra_packs = 0  # 用于跟踪额外拆包的机会for _ in range(packages):opened_color = buy_blind_bag()# 无论是否额外拆包,都将结果添加到列表中results.append(opened_color)# 检查是否与许愿颜色相同或是否对对碰if opened_color == wish_color or opened_color in results[:-1]:extra_packs += 1print(f"拆包结果 - 颜色: {opened_color}, 许愿颜色: {wish_color}")# 处理额外拆包while extra_packs > 0:extra_color = buy_blind_bag()results.append(extra_color)extra_packs -= 1# 如果拆出的颜色已经在列表中,增加额外拆包机会if extra_color in results[:-1]:extra_packs += 1print(f"额外拆包 - 颜色: {extra_color}")return results# 模拟购买盲袋
packages = int(input("你购买了几个盲袋?"))
game_results = play_game(packages)print("\n你拆出的乌龟颜色为:")
for result in game_results:print(result)

代码解析

  1. 导入随机库:

    import random
    

    这行代码导入了Python的random库,用于生成随机选择乌龟颜色的功能。

  2. 定义乌龟颜色列表:

    TURTLE_COLORS = ['红色', '蓝色', '绿色', '黄色', '紫色', '青色', '粉色', '玫红', '橙色', '咖色']
    

    这里定义了一个包含10种颜色的列表,代表乌龟可能的颜色。

  3. 购买盲袋函数:

    def buy_blind_bag():return random.choice(TURTLE_COLORS)
    

    buy_blind_bag函数用于模拟购买一个盲袋,并随机返回一个乌龟颜色。

  4. 许愿颜色函数:

    def wish_for_color():return input("选择你希望获得的乌龟颜色(输入颜色名称):")
    

    wish_for_color函数提示用户输入他们希望获得的乌龟颜色。

  5. 游戏逻辑函数:

    def play_game(packages):wish_color = wish_for_color()results = []extra_packs = 0for _ in range(packages):opened_color = buy_blind_bag()results.append(opened_color)if opened_color == wish_color or opened_color in results[:-1]:extra_packs += 1print(f"拆包结果 - 颜色: {opened_color}, 许愿颜色: {wish_color}")
    

    play_game函数是游戏的主要逻辑。它首先获取用户的许愿颜色,然后开始一个循环,用户购买的盲袋数量为循环次数。在每次循环中,用户获得一个随机颜色的乌龟,并将这个颜色添加到结果列表中。如果获得的乌龟颜色与许愿颜色相同,或者这个颜色已经在结果列表中出现过(表示发生了对对碰),则增加额外拆包的机会。

  6. 额外拆包处理:

    while extra_packs > 0:extra_color = buy_blind_bag()results.append(extra_color)extra_packs -= 1if extra_color in results[:-1]:extra_packs += 1print(f"额外拆包 - 颜色: {extra_color}")
    

    这部分代码处理额外拆包的逻辑。只要extra_packs大于0,就会继续拆包。每次拆包后,extra_packs减1。如果拆出的颜色已经在结果列表中,表示再次发生了对对碰,extra_packs增加,允许玩家继续拆包。

  7. 开始游戏:

    packages = int(input("你购买了几个盲袋?"))
    game_results = play_game(packages)print("\n你拆出的乌龟颜色为:")
    for result in game_results:print(result)
    

    这里首先提示用户输入购买的盲袋数量,然后调用play_game函数开始游戏。游戏结束后,打印出所有拆出的乌龟颜色。

这个程序模拟了“乌龟对对碰”游戏的基本流程,包括购买盲袋、许愿颜色、拆包、对对碰规则和额外拆包机会。

问题总结与思考

会觉得有点无用功了,应该花多点时间在游戏逻辑这一块,因为一些地方没思考到导致在不停的调试找bug,比如这里会存在一个问题,当额外的次数拆包结束之后,额外拆出来的颜色可能会和前面的又混淆或缺少配对,应该要增加一个列表来处理才好一点。应该搞个流程图把所有流程都覆盖到才好的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/405003.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

虚幻5|AI视力系统,听力系统,预测系统(1)视力系统

继宠物伴随系统初步篇后续 虚幻5|AI巡逻宠物伴随及定点巡逻—初步篇-CSDN博客 一,听力系统 1.打开宠物ai的角色蓝图 2.选中ai感知组件 右侧细节,找到ai感知,添加感知配置,我们需要的是ai视力配置 3.选中左侧创建的ai感知组件&…

分组汇总时保留不变列

Excel表格的ID列是分类,Value1和Value2是数值,ID相同时Descr 1和Descr 2保持不变。 ABCDE1IDValue 1Value 2Descr 1Descr 22112.51.8ax13112.31.1ax14111.91.6ax15123.73.5bx26123.91.5bx27132.50.2cx38132.64.1cx391324.8cx310132.71.8cx3 要求&#…

科创中心“核”动力|趋动科技:AI算力界的领跑者

近日,趋动科技与深信服正式推出联合解决方案。联合解决方案将深信服EDS的高性能存储与趋动科技OrionX AI算力资源池化软件、以及GeminiAI训练平台有机结合,整合存力与算力资源的同时,帮助用户建好AI平台、管好AI资源、用好AI服务。 双方已完成…

【嵌入式烧录刷写文件】-2.10-为一个Intel Hex文件计算校验和Checksum

案例背景(共6页精讲): 有如下一段Intel Hex文件,为其创建Checksum校验和:CRC16,CRC32(CVN),SHA-256 Hash算法…, 将Checksum Value填充到指定地址。 :2091000058595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767…

Unity 求坐标点在扇形区域内的投影

视频效果&#xff1a; 代码: /// <summary>/// 投影在扇形区域内的点/// </summary>/// <param name"targetPos">目标点</param>/// <param name"fanRadius">扇形半径</param>/// <param name"fanAngle"…

【C语言】【Linux】如何在Linux终端中进行彩色输出——C语言篇

&#x1f41a;作者简介&#xff1a;花神庙码农&#xff08;专注于Linux、WLAN、TCP/IP、Python等技术方向&#xff09;&#x1f433;博客主页&#xff1a;花神庙码农 &#xff0c;地址&#xff1a;https://blog.csdn.net/qxhgd&#x1f310;系列专栏&#xff1a;C语言编程&…

超越Midjourney的AI绘画神器,Flux文生图究竟强在哪里?测评攻略来咯|附生成咒语

最近&#xff0c;AI绘画界又掀起了一阵热潮。Flux大模型现在真的已经是火遍了Al圈&#xff0c;都说生图的质感媲midjourney&#xff1f;但是对于大多数人来说配置要求太高了&#xff0c;今天就带大家用国产的AI绘画软件进行测评&#xff0c;感兴趣的就一起往下看看吧&#xff0…

eNSP 华为交换机链路聚合

华为交换机链路聚合 链路聚合好处&#xff1a; 1、提高带宽 2、链路冗余 SW_2&#xff1a; <Huawei>sys [Huawei]sys SW_2 [SW_2]vlan batch 10 20 [SW_2]int g0/0/4 [SW_2-GigabitEthernet0/0/4]port link-type access [SW_2-GigabitEthernet0/0/4]port default vl…

知识改变命运 数据结构【栈和队列面试题】

1.最小栈 class MinStack {Stack <Integer>stack;Stack <Integer>minStack; public MinStack() {stacknew Stack<>();minStacknew Stack<>();}public void push(int val) {stack.push(val);if(minStack.empty()) {minStack.push(val);} else {int top…

解决旧版CMS内容管理无法登录的问题

最近遇到了输入正确的账户密码&#xff0c;旧版的CMS内容管理的平台提示登录成功却无法跳转的问题 遇到这种情况请不要慌&#xff01;&#xff01;&#xff01; 请按照下面的步骤解决问题&#xff1a; 1.点击账号管理 2.点击右上角的返回旧版控制台 3.点击cloud1环境 4.点击扩…

武林外传书生版单机安装教程+GM工具+虚拟机一键端

今天给大家带来一款单机游戏的架设&#xff1a;武林外传书生版。 另外&#xff1a;本人承接各种游戏架设&#xff08;单机联网&#xff09; 本人为了学习和研究软件内含的设计思想和原理&#xff0c;带了架设教程仅供娱乐。 教程是本人亲自搭建成功的&#xff0c;绝对是完整…

代码随想录算法训练营第二十一天| 669. 修剪二叉搜索树 108.将有序数组转换为二叉搜索树 538.把二叉搜索树转换为累加树

目录 一、LeetCode 669. 修剪二叉搜索树思路&#xff1a;C代码 二、LeetCode 108.将有序数组转换为二叉搜索树思路C代码 三、LeetCode 538.把二叉搜索树转换为累加树思路反中序遍历变量传参递归&#xff08;野路子&#xff09; 总结 一、LeetCode 669. 修剪二叉搜索树 题目链接…

javaweb学习之HTML(一)

推荐学习使用网站 w3school 在线教程 认识HTML HTML&#xff08;HyperText Markup Language&#xff09;是超文本标记语言&#xff0c;它是一个用于创建网页和网页应用程序的标准标记语言。HTML文档由一系列的元素&#xff08;elements&#xff09;组成&#xff0c;这些元素通…

Unity 麦扣 x 勇士传说 全解析 之 怪物基类与野猪(附各模块知识的链接,零基础也包学会的牢弟)(案例难度:★★☆☆☆)

通过一阵子的学习&#xff0c;我是这么认为的&#xff0c;因为该教程是难度两星的教程 &#xff0c;也就是适合学了一阵子基础组件以后的学习者 &#xff08;什么都不会的学习者要是学这套课程会困难重重&#xff0c;如果你什么都不会那么需要学习一星教程&#xff09; 所以该…

SQL-事务与并发问题

在数据库管理系统中&#xff0c;事务是一个重要的概念&#xff0c;它确保了一组数据库操作要么全部成功&#xff0c;要么全部失败&#xff0c;从而维护数据的完整性和一致性。随着多个用户同时访问数据库&#xff0c;事务的并发处理变得尤为重要。 1. 事务的定义 事务是指一组…

AI 代理参考架构

LLM Agent部署框架 围绕 ChatGPT 的讨论&#xff0c;现在已经演变为AI 代理。 图&#xff1a;AI代理平台参考架构 比尔盖茨最近设想&#xff08;CNBC 采访&#xff1a;链接&#xff09;未来我们将拥有一个能够处理和响应自然语言并完成许多不同任务的AI 代理。盖茨以计划旅行…

ETAS工具链自动化实战指南<一>

----自动化不仅是一种技术&#xff0c;更是一种思维方式&#xff0c;它将帮助我们在快节奏的工作环境中保持领先&#xff01; 目录 往期推荐 场景一&#xff1a;SWC 之间 port自动连接 命令示例 参数说明 场景二&#xff1a;SWC与ECU 自动映射 命令示例 参数说明 场景三&…

c#实现数据导出为PDF的方式

PdfSharp vs iTextSharp: C#中PDF导出功能比较 PdfSharp 优点 轻量级&#xff1a;适合简单的PDF生成任务易于学习&#xff1a;API相对简单&#xff0c;学习曲线较缓开源&#xff1a;提供开源版本&#xff0c;可自由使用和修改纯C#实现&#xff1a;不依赖外部库或COM组件支持…

对零基础想转行网络安全同学的一点建议

最近有同学在后台留言&#xff0c;0基础怎么学网络安全&#xff1f;0基础可以转行做网络安全吗&#xff1f;以前也碰到过类似的问题&#xff0c;想了想&#xff0c;今天简单写一下。 我的回答是先了解&#xff0c;再入行。 具体怎么做呢&#xff1f; 首先&#xff0c;你要确…

1.初识redis

文章目录 1.认识redis1.1 mysql和redis 对比1.2分布式系统1.2.1单机架构与分布式架构1.2.2数据库分离(应用服务器和存储服务器分离)与负载均衡1.2.3负载均衡器1.2.4 数据库读写分离1.2.5 数据库服务器引入缓存1.2.6数据库分库分表1.2.7 引入微服务 2.常见概念解释2.1 应用(Appl…