当前位置: 首页 > news >正文

天津网站建设方案服务武功网站建设

天津网站建设方案服务,武功网站建设,西安天气最新公布,新手自学网站斗地主发牌程序#xff1a; 模拟一个斗地主发牌程序#xff0c;实现对三个玩家进行手牌的派发#xff0c;实现功能#xff1a; ********** 欢迎进入 XX 斗地主 ********** 请输入玩家姓名#xff1a;用户控制台输入 A 请输入玩家姓名#xff1a;用户控制台输…斗地主发牌程序 模拟一个斗地主发牌程序实现对三个玩家进行手牌的派发实现功能 ********** 欢迎进入 XX 斗地主 ********** 请输入玩家姓名用户控制台输入 A 请输入玩家姓名用户控制台输入 B 请输入玩家姓名用户控制台输入 C 洗牌中... 洗牌完成! 发牌中... 发牌完成 A在这里展示 A 的所有手牌要求按照从小到大的顺序排序相同点数的情况下按照 黑桃 红桃 方片 梅花 的大小关系排列 B在这里展示 B 的所有手牌要求按照从小到大的顺序排序相同点数的情况下按照 黑桃 红桃 方片 梅花 的大小关系排列 C在这里展示 C 的所有手牌要求按照从小到大的顺序排序相同点数的情况下按照 黑桃 红桃 方片 梅花 的大小关系排列 谁叫地主 用户控制台输入 A 地主牌在这里展示地主牌要求按照从小到大的顺序排序相同点数的情况下按照 黑桃 红桃 方片 梅花 的大小关系排列 A在这里展示 A 的所有手牌要求按照从小到大的顺序排序相同点数的情况下按照 黑桃 红桃 方片 梅花 的大小关系排列 B在这里展示 B 的所有手牌要求按照从小到大的顺序排序相同点数的情况下按照 黑桃 红桃 方片 梅花 的大小关系排列 C在这里展示 C 的所有手牌要求按照从小到大的顺序排序相同点数的情况下按照 黑桃 红桃 方片 梅花 的大小关系排列 解题思路 1. 需要准备一副扑克牌 a. 一副扑克牌本身就是一个数据容器其中存储了54个扑克牌对象 b. 扑克牌类需要具有的属性和方法 ⅰ. 属性点数、花色 ⅱ. 功能显示将自己的点数和花色拼接成一个字符串返回可以比较大小 c. 扑克牌的点数和花色的类型 ⅰ. 问题无法直接通过字符串比较大小 ⅱ. 解决自定义数据类型包含两个属性呈现效果权重 d. 顺序生成54张牌 e. 洗牌 2. 发牌 a. 遍历牌堆依次给每一个玩家发牌 b. 【偷懒】切片切17张牌给到玩家 import randomclass Poker:def __init__(self, suit, color, suit_weight, color_weight):self.suit suitself.color colorself.suit_weight suit_weightself.color_weight color_weightdef __repr__(self):if self.color ! None:return f{self.suit}{self.color}else:return f{self.suit}def initPoker():poker_list []for i in range(1, 14):suit Nonesuit_weight iif i 1:suit Asuit_weight 12elif i 2:suit 2suit_weight 13elif i 11:suit_weight 9suit Jelif i 12:suit_weight 10suit Qelif i 13:suit_weight 11suit Kelse:suit_weight i - 2suit ifor k in range(1, 5):color Nonecolor_weight kmatch k:case 1:color ♠case 2:color ♥case 3:color ♣case 4:color ♦poker_list.append(Poker(suit, color, suit_weight, color_weight))poker_list.append(Poker(大王, None, 100, None))poker_list.append(Poker(小王, None, 99, None))return poker_listdef getThreePlayerName():# 输入三个玩家的名字s1 set()while True:p1 input(请输入第一个玩家的名字:)p2 input(请输入第二个玩家的名字:)p3 input(请输入第三个玩家的名字:)s1.add(p1)s1.add(p2)s1.add(p3)if len(s1) 3:print(输入的玩家有重名的请重新输入!)continueelse:return p1, p2, p3class Player:def __init__(self, name):self.name nameself.poker_list list()def __repr__(self):return f{self.name}# 发牌方法def send_pokers(self, poker_list: list[Poker], player_list: list[Player]):for i in range(17):print(player_list[0])player_list[0].poker_list.append(poker_list.pop())player_list[1].poker_list.append(poker_list.pop())player_list[2].poker_list.append(poker_list.pop()) def showAllPlayerPoker(player_list: list[Player]):for i in range(len(player_list)):player player_list[i]print(f玩家的名字{player.name})player.poker_list sorted(player.poker_list, keylambda poker: (poker.suit_weight, poker.color_weight))print(f玩家的牌是:{player.poker_list})# 欢迎界面 def showMainScreen():print(**********欢迎进入东湖斗地主**********)n1, n2, n3 getThreePlayerName()print(n1, n2, n3)playerList:list[Player] [Player(n1), Player(n2), Player(n3)]# 初始化一下牌poker_list initPoker()print(poker_list)print(洗牌中...)random.shuffle(poker_list)# 调用洗牌方法print(洗牌完成!)print(poker_list)print(发牌中...)# 调用发牌方法print(poker_list)print(playerList)# send_pokers(poker_list, playerList)for i in range(17):playerList[0].poker_list.append(poker_list.pop())playerList[1].poker_list.append(poker_list.pop())playerList[2].poker_list.append(poker_list.pop())print(poker_list)showAllPlayerPoker(playerList)# 叫地主master input(谁叫地主? )if master in (n1, n2, n3):print(f{master}是地主!)master_player Nonefor player in playerList:if master player.name:master_player playermaster_player.poker_list poker_listprint(**********叫地主结束**********)showAllPlayerPoker(playerList)print(发牌完成)# 调用主方法 showMainScreen()第二种方法 1 创建一个类Poker 类 点位JQKA 花色 权重 花色权重2、主屏幕3、初始化一副牌 54张3、调用三个玩家的初始化操作 玩家类 Player 属性 name List存放玩家的牌4、洗牌 random.shuffle5、发牌 需要一个List[Poker] 使用 pop 冒出来一张给三个玩家同时删除这个List中的一张6、展示某个玩家的牌import randomclass Poker:def __init__(self,suit,color,suit_weight,color_weight):self.suitsuitself.colorcolorself.suit_weightsuit_weightself.color_weightcolor_weightdef __repr__(self):# 大小王怎么办if self.color is None:return str(self.suit)else:return self.colorstr(self.suit)# 初始化三个玩家姓名要不同 def initPlayer():s1 set() # 存储3个玩家的姓名# 定义一个List集合存储各个玩家对象initPlayerList []while True:name input(f请输入第{len(s1)1}个玩家的姓名不要重复:)s1.add(name)if len(s1) 3:breakfor name in s1:initPokerList []player Player(name,initPokerList)initPlayerList.append(player)return initPlayerListclass Player:def __init__(self,name,list):self.namenameself.list listdef __repr__(self):return self.name ,扑克牌是 ,.join(self.list)# 初始化一副牌 def initPoker():#54张牌initPokerList []for i in range(1,14):suit isuit_weight imatch i:case 1:suit Asuit_weight 14case 11:suit Jsuit_weight 9case 12:suit Qsuit_weight 10case 13:suit Ksuit_weight 11case 2:suit_weight 15case _:suit_weight i - 2for color in [♥,♠,♦,♣]:# 黑桃 红桃 方片 梅花color_weight 0match color:case ♠:color_weight 1case ♥:color_weight 2case ♦:color_weight 3case ♣:color_weight 4poker Poker(suit, color, suit_weight,color_weight)initPokerList.append(poker)initPokerList.append(Poker(大王,None,100,None))initPokerList.append(Poker(小王,None,100,None))return initPokerListdef showAllPokerByPlayer(player):print(f开始展示{player.name}的所有牌)pokerList player.list# 先将所有的牌排序pokerList sorted(pokerList,keylambda poker: (poker.suit_weight,poker.color_weight) )print(pokerList)if __name__ __main__:print(----欢迎来到新澳门葡京娱乐城------)playList initPlayer()print(playList)pokerList initPoker()print(pokerList)# 开始洗牌print(洗牌中.....)random.shuffle(pokerList)print(pokerList)print(开始发牌.....)for index in range(len(pokerList)-3):poker pokerList.pop()player playList[index % 3]player.list.append(poker)# 先叫地主name input(叫地主:)for player in playList:if player.name name:print(f{name}是地主)# 两个list的合并player.list pokerList# 展示所有的底牌# 展示所有人的牌print(展示所有玩家的牌....)for player in playList:showAllPokerByPlayer(player)
http://www.w-s-a.com/news/594735/

相关文章:

  • 鹿泉专业网站建设做网站为什么要建站点
  • 加强网站建设和维护工作新闻大全
  • 红鱼洞水库建设管理局网站左右左布局网站建设
  • 手机网站建设地址做网站公
  • 贵州建设厅网站首页网络公司除了做网站
  • 运动鞋建设网站前的市场分析wordpress 搜索框代码
  • app开发网站开发教程平台网站开发的税率
  • 百度网站优化排名加强服务保障满足群众急需i
  • 宁夏建设职业技术学院网站安徽网站优化建设
  • 四川关于工程建设网站硬盘做网站空间
  • 桂林网站制作培训学校外包seo公司
  • 莱州网站建设方案北京装修公司口碑
  • 大型网站建设济南兴田德润团队怎么样韩国女足出线了吗
  • 南通做网站找谁重庆网络推广网站推广
  • ps网站主页按钮怎么做怎样做网站的用户分析
  • 哪个网站做黑色星期五订酒店活动公司网络营销推广软件
  • 岳阳新网网站建设有限公司网页设计基础考试题目
  • 辽宁响应式网站费用海外平台有哪些
  • 杨凌规划建设局网站网站后台建设怎么进入
  • 有赞商城网站建设企业管理咨询是做什么的
  • 提供衡水网站建设中国石化工程建设有限公司邮政编码
  • 大芬地铁站附近做网站工业设计公司报价
  • 建设网站最强永年网站建设
  • 网站分站代理加盟wordpress国内工作室主题
  • 东营远见网站建设公司服装网站建设内容
  • 互助平台网站建设费用百度seo优化怎么做
  • lol英雄介绍网站模板工商局网上注册
  • 电商网站运营策划什么样的网站容易做seo
  • 网站备案需要什么流程怎么创建小程序卖东西
  • 陇西网站建设 室内设计持啊传媒企业推广