import random
import sys
import timefraction = 0  # 分数
DifficultyLevel = 0  # 玩家选择的难度def CardSlot(queue, cards):"""储存用户选择的卡牌:param queue: 卡槽:param cards: 用户选择的卡牌:return:queue"""queue.append(cards)global fraction# 遍历卡槽,检查是否存在能够三消的卡牌T = 0for i in range(len(queue)):if cards == queue[i]:T += 1if T == 3:  # 三消for i in range(3):queue.remove(cards)fraction += 1if fraction == 25 * DifficultyLevel:print("-------------------------------------------")print("|                                         |")print(f"|   恭喜你成功消除了所有卡牌!!!获取分数:{fraction}    |")print("|                                         |")print("-------------------------------------------")time_end = time.time()  # 结束计时print(f"游戏时长:{time_end - time_start} s")sys.exit()if len(queue) == 7:print("-------------------------------------------")print("|                                         |")print("|               游戏失败!!!               |")print("|                                         |")print("-------------------------------------------")time_end = time.time()  # 结束计时print(f"游戏时长:{time_end - time_start} s 获取分数:{fraction} ")sys.exit()return queuedef GameInterfaceGet():"""生成游戏卡牌:return: GameInterface"""global DifficultyLevel  # 用户选择难度等级while True:try:DifficultyLevel = int(input("请输入你想要的难度1~3(每级难度增加3层):"))GameInterface = [[[0 for i in range(5)] for i in range(5)] for i in range(3 * DifficultyLevel)]  # 最终储存卡牌的列表# 随机获取卡牌T = 0number = []for i in range(75 * DifficultyLevel):if i % 3 == 0:T = random.randint(0, 9)number.append(T)numbers = []for i in range(DifficultyLevel):# 打乱卡牌顺序并保证有解number1 = number[0:24]number2 = number[24:48]number3 = number[48:75]# 将三个列表内的卡牌打乱random.shuffle(number1)random.shuffle(number2)random.shuffle(number3)# 将打乱后的卡牌连接numbers.extend(number1)numbers.extend(number2)numbers.extend(number3)del number[0:75]# 将打乱的卡牌放入卡池中for i in range(len(GameInterface)):for j in range(len(GameInterface[0])):for k in range(len(GameInterface[0][0])):GameInterface[i][j][k] = numbers[i * len(GameInterface[0]) * len(GameInterface[0][0]) + j * len(GameInterface[0]) + k]breakexcept ValueError:print("-------------------------------------------")print("|                                         |")print("|       您的输入有误,请重新输入!!!          |")print("|                                         |")print("-------------------------------------------")return GameInterfacedef Play():"""游戏界面:return:None"""global fraction# 生成游戏卡池GameInterfaceGets = GameInterfaceGet()# 生成空的游戏卡槽queue = []# 玩家选择的卡牌坐标coordinate = [0, 0]print("-------------------------------------------")print("|        '' 表示当前位置没有卡牌              |")print("-------------------------------------------")while True:print("   0, 1, 2, 3, 4")for j in range(len(GameInterfaceGets[0][0])):print(j, end=" ")print(GameInterfaceGets[len(GameInterfaceGets)-1][j])# for i in range(len(GameInterfaceGets)):#     for j in range(len(GameInterfaceGets[0][0])):#         print(j, end=" ")#         print(GameInterfaceGets[i][j])print("-------------------------------------------")print(f"|   已选择卡牌:{queue}        当前分数:{fraction}          |")print("-------------------------------------------")try:T = input("|    请输入您选择卡牌的坐标(例:1 2):")x = 0y = 0T = T.split(" ")x = int(T[0])y = int(T[1])except ValueError:print("-------------------------------------------")print("|                                         |")print("|       您的输入有误,请重新输入!!!          |")print("|                                         |")print("-------------------------------------------")if (x > 4 or x < 0) or (y > 4 or y < 0):print("-------------------------------------------")print("|                                         |")print("|               输入有误!!!               |")print("|                                         |")print("-------------------------------------------")continue# 处理玩家选择的卡牌,判定结果T = len(GameInterfaceGets)for i in range(T - 1, -1, -1):if GameInterfaceGets[T - 1][x][y] == '':print("-------------------------------------------")print("|        当前位置为空,请重新选择!!!         |")print("-------------------------------------------")breakelse:for j in range(T - 1, 0, -1):if j == T - 1:queue = CardSlot(queue, GameInterfaceGets[T - 1][x][y])GameInterfaceGets[j][x][y] = GameInterfaceGets[j - 1][x][y]if i == T - 1:GameInterfaceGets[0][x][y] = ""breakreturn Noneif __name__ == '__main__':time_start = time.time()  # 开始计时Play()

python三消小游戏相关推荐

  1. python手机版做小游戏代码大全-python简单小游戏代码 怎么用Python制作简单小游戏...

    1.Python猜拳小游戏代码: 2.import random #导入随机模块 3. 4.num = 1 5.yin_num = 0 6.shu_num = 0 7.while num <= ...

  2. python小游戏代码大全-python简单小游戏代码 怎么用Python制作简单小游戏

    1.Python猜拳小游戏代码: 2.import random #导入随机模块 3. 4.num = 1 5.yin_num = 0 6.shu_num = 0 7.while num <= ...

  3. 一分钟教你学会python_十分钟教你学会python编写小游戏

    原标题:十分钟教你学会python编写小游戏 看过,估计大家都已经精通了吧,好的,话不多说,今天就活学活用,用python来编写纸牌游戏21点,江湖人称黑杰克,BLACK JACK-(注意法式卷舌). ...

  4. python迷宫小游戏大全_Python迷宫小游戏源代码、源程序

    Python迷宫小游戏源程序包括两个文件maze.py和mazeGenerator.py,mazeGenerator.py实现迷宫地图的生成,程序运行截图: mazeGenerator.py impo ...

  5. python能制作游戏吗_如何用Python制作小游戏

    要想用Python制作小游戏,必须要安装一个插件Pygame 什么是Pygame Pygame是跨平台Python模块,专为电子游戏设计,包含图像.声音.建立在SDL基础上,允许实时电子游戏研发而无需 ...

  6. Python 打字小游戏开发,来体验不一样的打字游戏乐趣(第二篇)

    Python 打字小游戏开发,来体验不一样的打字游戏乐趣(第二篇) 代码实现 窗口类 小车类 玩家类 电脑类 赛道类 小树类 打字类 Python 打字小游戏开发,来体验不一样的打字游戏乐趣(第一篇) ...

  7. Python——河神小游戏

    Python--河神小游戏 复制即用 import random list = ['金斧头','银斧头','铁斧头'] a = random.choice(list) #用户输入 print(&quo ...

  8. Python 打字小游戏开发,来体验不一样的打字游戏乐趣(完结篇)

    Python 打字小游戏开发,来体验不一样的打字游戏乐趣(完结篇) 资源下载 完整代码 Python 打字小游戏开发,来体验不一样的打字游戏乐趣(第一篇) Python 打字小游戏开发,来体验不一样的 ...

  9. Python 打字小游戏开发,来体验不一样的打字游戏乐趣(第一篇)

    Python 打字小游戏开发,来体验不一样的打字游戏乐趣(第一篇) 前言 游戏素材准备 游戏项目结构 项目里面的类说明 Python 打字小游戏开发,来体验不一样的打字游戏乐趣(第二篇) Python ...

最新文章

  1. 使用elasticsearch遇到的一些问题以及解决方法(不断更新)
  2. module compiled against API version 0xb but this version of numpy is 0xa
  3. CVPR 2022|MLP才是无监督学习比监督学习迁移性能好的关键因素
  4. 学起来 —— CSS 入门基础
  5. Thread class vs Runnnable interface(转)
  6. 数据校验器架构模式组
  7. Vim/Vi实用技巧(第二版)
  8. Android 系统(256)---camera如何dump image buffer大全
  9. 金银花跟黄芪泡水有什么功效?
  10. python 类函数 成员函数_python内置函数类型,如何为新类型定义成员函数?
  11. bzoj1036 [ZJOI2008]树的统计Count 树链剖分模板题
  12. 如何防止社工钓鱼——软件伪造
  13. CAN BusOff相关知识点
  14. HotSpot虚拟机的垃圾收集算法实现
  15. iOS PDF 添加图片
  16. Java||求集合数组中的中位数
  17. 判别机器大小端,打印int的二进制
  18. 格式化磁盘重装ubuntn18.04系统后恢复timeshift备份文件
  19. 趣味三大彩蛋命令安装shell脚本
  20. must be of typexxx解决方法

热门文章

  1. MDSF:特定领域建模 DSM(Domain Specific)介绍
  2. 使用STM32CUBEIDE创建工程,点亮LED
  3. idea打包war包部署到tomcat以及访问路径问题
  4. MySQL中关于useSSL的警告问题
  5. PHP毕业设计毕设辅导课(11):PHP For 循环
  6. udig-1.4.0 开发环境搭建
  7. 阿里云安装mysql8.0版本操作步骤
  8. 阿里云安装mysql、nginx、redis
  9. 项目实训-智能生物序列分析平台-药物推荐日志
  10. 软银退出自动驾驶公司Cruise:通用汽车21亿美元接盘