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

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

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

['♣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 怎样采集或者其它途径拿到全国最新个体工商户数据
  • ¥20 我是一名大学生,想学习java是自学还是报培训班呢
  • ¥15 pycharm该如何爬取网易云歌曲下的评论?
  • ¥15 java调用sap webservice问题
  • ¥20 如何完全复现何恺明resnet论文里的结果,有代码吗,获得论文中的结果(如下图)
  • ¥15 mysql如果表行行数小于1000条还需要分区吗
  • ¥20 有关matlab自定义特殊算符的问题
  • ¥15 第15届蓝桥杯选拔赛斗鱼养殖场
  • ¥15 在vivado的FIFO使用中,FIFO有没有提供可以输出内部存储空间状态的端口?
  • ¥15 C++ QT内存数据匹配对比指导