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 如何把LibreOffice添加到自定义层中
  • ¥35 这个的负序网络和零序网络怎么画?(答疑)
  • ¥200 基于同花顺supermind的量化策略脚本编辑
  • ¥20 Html备忘录页面制作
  • ¥15 黄永刚的晶体塑性子程序中输入的材料参数里的晶体取向参数是什么形式的?
  • ¥20 数学建模来解决我这个问题
  • ¥15 计算机网络ip分片偏移量计算头部是-20还是-40呀
  • ¥15 stc15f2k60s2单片机关于流水灯,时钟,定时器,矩阵键盘等方面的综合问题
  • ¥15 YOLOv8已有一个初步的检测模型,想利用这个模型对新的图片进行自动标注,生成labellmg可以识别的数据,再手动修改。如何操作?
  • ¥30 NIRfast软件使用指导