Tusety 2022-01-20 00:30 采纳率: 66.7%
浏览 85
已结题

请问如何将扑克牌的牌按数字大小从左到右排序

问题遇到的现象和发生背景

['♣7', '♠7', '♣6', '♦5', '♣Q', '♥10', '♥A', '♣5', '♣9', '♣K', '♦4', '♦8', '♦Q']
['♦J', '♠8', '♣6', '♥3', '♥7', '♣5', '♣2', '♣6', '♣10', '♦A', '♦5', '♦9', '♠7']
['♣6', '♣2', '♦J', '♥4', '♥8', '♥Q', '♦A', '♣7', '♣J', '♦2', '♦6', '♦10', '♥4']
['♠7', '♠10', '♣Q', '♥5', '♦4', '♦8', '♣4', '♣8', '♣Q', '♦10', '♦7', '♦J']

4个列表分别如上

问题相关代码,请勿粘贴截图
import random
import numpy as np

rn=np.random.randint(1,55,54)

list_number=['3','4','5','6','7','8','9','10','J','Q','K','A','2',]
list_spade_label=['♠']*13
list_heart_label=['♥']*13
list_clubs_label=['♣']*13
list_diamonds_label=['♦']*13

def poker(label):
    n=0
    list1=[]
    for i in label:
        if n==13:
            n=0
        else:
            list1.append(i+list_number[n])
            n+=1

    return list1
list_all_label=list_spade_label+list_heart_label+list_clubs_label+list_diamonds_label

list_all=poker(list_all_label)
if __name__ == '__main__':
    hand=0
    n=1
    p1=[]
    p2=[]
    p3=[]
    p4=[]
    dict_all=dict(zip(rn,list_all))
    for i in rn:
        if n==4*hand+1 and dict_all.get(i)!=None:
            n+=1
            p1.append(dict_all.get(i))
        elif n==4*hand+2 and dict_all.get(i)!=None:
            n+=1
            p2.append(dict_all.get(i))
        elif n==4*hand+3 and dict_all.get(i)!=None:
            n+=1
            p3.append(dict_all.get(i))
        elif n==4*hand+4 and dict_all.get(i)!=None:
            n+=1
            p4.append(dict_all.get(i))
            hand+=1
    print(p1)
    print(p2)
    print(p3)
    print(p4)

我想要达到的结果

按平时打牌的习惯从小到大排序

  • 写回答

3条回答 默认 最新

  • 於黾 2022-01-20 08:51
    关注

    不要纠结扑克牌的字符串,那些应该作为代替image的东西,你可以想象它就是image
    想要对扑克牌排序,那么扑克牌本身就应该有个id
    也就是说,每张牌应该至少有2个属性,id和显示字符串
    当然这远远不够,这样定义牌,只能用来变魔术,你想实现打牌的话,那么牌的大小、花色这些都应该是属性
    你不要把这些拼接到字符串里面去,然后又重新从字符串里取出来再判断
    它一开始就应该是个单独的属性
    而相反牌面显示的内容应该是只读的,是通过其它属性拼接而成的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 1月28日
  • 已采纳回答 1月20日
  • 创建了问题 1月20日

悬赏问题

  • ¥15 2024-五一综合模拟赛
  • ¥15 如何将下列的“无限压缩存储器”设计出来
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口