2013-03-09 15 views
0

我在這裏有一個代碼,用於將卡從甲板移動到基礎樁..我輸入了必要的細節等。我的問題是它太長了。有什麼辦法可以縮短?怎麼樣?謝謝:)Solitaire python

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) 
+0

長的代碼不一定是問題。請更具體地說明你擔心的事情。另外,請考慮在http://codereview.stackexchange.com/中發佈這些類型的問題 – shx2 2013-03-09 07:02:08

回答

0

考慮將鑽石,心臟,俱樂部和鏟子合併成一個字典,關鍵是西裝。