鱼C论坛

 找回密码
 立即注册
查看: 2498|回复: 1

关于分发扑克牌游戏的部分代码不是很理解

[复制链接]
发表于 2017-3-24 19:34:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在其他博主贴上看到的一段代码,试着分析,发现有些地方不懂,菜鸟求助。。。。。

不是很懂这段代码中的(方块.append(i[2:])和 key=lambda x:num.index(x))
比如:方块.append(i[2:])  中 i 指代的是什么?
           key=lambda x:num.index(x)  中传入x的参数又是什么?

谢谢!

  1. import random
  2. huase = ['黑桃','红心','方块','草花']

  3. num = ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A']
  4. # r = random.choice(huase)
  5. # total2 = list(map(lambda x: r + x, num))
  6. total = []
  7. for i in huase:
  8.         total3 = list(map(lambda x: i + x, num))
  9.         total.extend(total3)
  10. # 玩家 = [[],[],[],[]]
  11. random.shuffle(total)

  12. 玩家1 = total[0:13]
  13. 玩家2 = total[13:26]
  14. 玩家3 = total[26:39]
  15. 玩家4 = total[39:]
  16. # print(玩家1,len(玩家1))
  17. # print(玩家2,len(玩家2))
  18. # print(玩家3,len(玩家3))
  19. # print(玩家4,len(玩家4))

  20. def printinfo(listinfo,count):
  21.     方块 = []
  22.     黑桃 = []
  23.     红心 = []
  24.     草花 = []
  25.     for i in listinfo:
  26.         if '方块' in i:
  27.             方块.append(i[2:])
  28.         elif '黑桃' in i:
  29.             黑桃.append(i[2:])
  30.         elif '草花' in i:
  31.             草花.append(i[2:])
  32.         else:
  33.             红心.append(i[2:])
  34.     黑桃 = sorted(黑桃, key=lambda x:num.index(x), reverse=True)
  35.     草花 = sorted(草花, key=lambda x:num.index(x), reverse=True)
  36.     方块 = sorted(方块, key=lambda x:num.index(x), reverse=True)
  37.     红心 = sorted(红心, key=lambda x:num.index(x), reverse=True)

  38.     msg = '''
  39.         玩家%s的牌
  40.         黑桃:%s
  41.         红心:%s
  42.         方块:%s
  43.         草花:%s
  44.     ''' %(count,黑桃,红心,方块,草花)
  45.     print(msg,end='------------')

  46. count = 1
  47. for i in [玩家1,玩家2,玩家3,玩家4]:
  48.     printinfo(i, count)
  49.     count += 1
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-4-3 16:52:40 | 显示全部楼层
1、方块.append(i[2:])中的i是在第9行中生成的“花色+数字”字符串(如方块1,红桃10),这里i[2:]表示只取数字部分;

2、key=lambda x:num.index(x)中的x是第24-27行定义的四个列表,在28-36行操作后,里面的每一个元素按照第4行num列表中对应的索引排列
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-13 01:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表