当前位置:
首页 > temp > python入门教程 >
-
扑克11点游戏(python代码)
import random ''' 纸牌11点游戏 规则: 1. 3个人参与,默认先给用户发一张牌,其中 J、Q、K、小王、大王代表的值为0.5,其他就是则就是当前的牌面值。 2. 随机顺序开始轮流抽牌,可以不抽,就得到点数 3. 超过11点爆炸出局,最接近11点的获胜 result={'player1':10, 'player2':8, 'player3':0} ''' # 生成一副牌. The suits are called hearts, clubs, diamonds and spades. poker_cards = [] for s in ['黑桃', '草花', '红心', '方片']: for n in range(1, 14): poker_cards.append((s, n)) poker_cards.append(('joker', 14)) poker_cards.append(('joker', 15)) # print(poker_cards) # print(len(poker_cards)) # 生成玩家 players = [] play_num = int(input("几个人玩 ? ")) for i in range(play_num): players.append(input("玩家 {}:".format(i + 1))) print(players) result = {} # 生成当前玩家过程 while players: now_player = players.pop(random.randint(0, len(players) - 1)) now_pick = [] while True: msg1 = "{player},你要抽牌还是不抽?(y/n)".format(player=now_player) choice = input(msg1) if choice.lower() == 'y': pick_card = poker_cards.pop(random.randint(0, len(poker_cards) - 1)) now_pick.append(pick_card) if 1 <= pick_card[1] <= 10: card_value = pick_card[1] else: card_value = 0.5 player_score = result.get(now_player, 0) player_score += card_value result[now_player] = player_score if player_score <= 11: msg2 = "{player},你抽到的牌是:{pick},现有牌组{cards},你的总分是 {score} .".format(player=now_player, pick=pick_card, cards=now_pick, score=player_score) print(msg2) else: player_score = 0 result[now_player] = player_score msg3 = "{player},你抽到的牌是:{pick},现有牌组{cards},总分>11,你爆了,分数归0".format(player=now_player, pick=pick_card, cards=now_pick, ) print(msg3) break elif choice.lower() == 'n': player_score = result.get(now_player, 0) msg4 = "{player},你选择不抽牌,你的总分是 {score} . 等待结果吧".format( player=now_player, score=player_score) print(msg4) result[now_player] = player_score break else: print("输入错误,请重试。") for k, v in result.items(): msg5 = "{name} 的总分是 {score}".format(name=k, score=v) print(msg5)
# 结果演示: # # 几个人玩 ? 3 # 玩家 1:a # 玩家 2:b # 玩家 3:c # ['a', 'b', 'c'] # c,你要抽牌还是不抽?(y/n)y # c,你抽到的牌是:('草花', 12),现有牌组[('草花', 12)],你的总分是 0.5 . # c,你要抽牌还是不抽?(y/n)y # c,你抽到的牌是:('红心', 8),现有牌组[('草花', 12), ('红心', 8)],你的总分是 8.5 . # c,你要抽牌还是不抽?(y/n)n # c,你选择不抽牌,你的总分是 8.5 . 等待结果吧 # b,你要抽牌还是不抽?(y/n)y # b,你抽到的牌是:('黑桃', 7),现有牌组[('黑桃', 7)],你的总分是 7 . # b,你要抽牌还是不抽?(y/n)y # b,你抽到的牌是:('草花', 5),现有牌组[('黑桃', 7), ('草花', 5)],总分>11,你爆了,分数归0 # a,你要抽牌还是不抽?(y/n)n # a,你选择不抽牌,你的总分是 0 . 等待结果吧 # c 的总分是 8.5 # b 的总分是 0 # a 的总分是 0
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数