纸牌游戏 Python

0 投票
1 回答
2072 浏览
提问于 2025-04-17 18:29

我这里有一段代码,用来把一张牌从牌堆移动到基础堆。我已经导入了必要的细节等等。我的问题是,这段代码太长了。有办法让它变得更短吗?怎么做呢?谢谢 :)

def dtof():
    suit = raw_input("enter suit: ")
    v = trash.pop()
    if suit == "D":
        if card.suitNumber[v.suit] == 1:
            if card.rankNumber[v.rank] == 0:
                Diamond.append(v)
            elif card.rankNumber[v.rank] == card.rankNumber[Diamond[-1].rank] + 1:
                Diamond.append(v)
            else:
                trash.append(v)
            return Diamond[-1]
        else:
            trash.append(v)
    elif suit == "H":
        if card.suitNumber[v.suit] == 2:
            if card.rankNumber[v.rank] == 0:
                Heart.append(v)
            elif card.rankNumber[v.rank] == card.rankNumber[Heart[-1].rank] + 1:
                Heart.append(v)
            else:
                trash.append(v)
            return Heart[-1]
        else:   
            trash.append(v)
    elif suit == "C":
        if card.suitNumber[v.suit] == 4:
            if card.rankNumber[v.rank] == 0:
                Clubs.append(v)
            elif card.rankNumber[v.rank] == card.rankNumber[Clubs[-1].rank] + 1:
                Clubs.append(v)
            else:
                trash.append(v)
            return Clubs[-1]
        else:
            trash.append(v)
    elif suit == "S":
        if card.suitNumber[v.suit] == 3:
            if card.rankNumber[v.rank] == 0:
                Spade.append(v)
            elif card.rankNumber[v.rank] == card.rankNumber[Spade[-1].rank] + 1:
                Spade.append(v)
            else:
                trash.append(v)
            return Spade[-1]
        else:
            trash.append(v)
    else:
        trash.append(v)

1 个回答

0

想象一下,把方块、红心、梅花和黑桃这四种花色合并成一个字典,字典的键就是花色的名称。

撰写回答