我创建了一个程序,可以将一副纸牌洗牌,将五张纸牌分发给两个玩家,然后返回每个玩家的起始卡牌的值。
如何获取放置在列表中的对象并打印出该对象的值?
例如:我的所有卡都在列表中,程序会随机排列列表并为玩家选择五张卡:diamond1,diamond5,spade2,club6,heart9
然后我希望钻石1等于1,钻石5等于5,依此类推。
我已经能够通过将每张卡放在自己的列表中来做到这一点,但我真的很想知道是否有更好的方法可以做到这一点。
这是我的代码:
import random
diamond1, heart1, club1, spade1 = 1, 1, 1, 1
diamond2, heart2, club2, spade2 = 2, 2, 2, 2
diamond3, heart3, club3, spade3 = 3, 3, 3, 3
diamond4, heart4, club4, spade4 = 4, 4, 4, 4
diamond5, heart5, club5, spade5 = 5, 5, 5, 5
diamond6, heart6, club6, spade6 = 6, 6, 6, 6
diamond7, heart7, club7, spade7 = 7, 7, 7, 7
diamond8, heart8, club8, spade8 = 8, 8, 8, 8
diamond9, heart9, club9, spade9 = 9, 9, 9, 9
diamond10, heart10, club10, spade10 = 10, 10, 10, 10
diamondJack, heartJack, clubJack, spadeJack = 11, 11, 11, 11
diamondQueen, heartQueen, clubQueen, spadeQueen = 12, 12, 12, 12
diamondKing, heartKing, clubKing, spadeKing = 13, 13, 13, 13
cards = ["diamond1", "heart1", "club1", "spade1", "diamond2", "heart2", "club2", "spade2", "diamond3", "heart3", "club3", "spade3",
"diamond4", "heart4", "club4", "spade4", "diamond5", "heart5", "club5", "spade5", "diamond6", "heart6", "club6", "spade6",
"diamond7", "heart7", "club7", "spade7", "diamond8", "heart8", "club8", "spade8", "diamond9", "heart9", "club9", "spade9",
"diamond10", "heart10", "club10", "spade10", "diamondJack", "heartJack", "clubJack", "spadeJack", "diamondQueen", "heartQueen", "clubQueen",
"spadeQueen", "diamondKing", "heartKing", "clubKing", "spadeKing"]
def player1StartingDeck():
#Tells which cards are going to be in player 1 and 2's starting hand
#Player1
card1, card2, card3, card4, card5 = cards[0], cards[1], cards[2], cards[3], cards[4]
player1Hand = card1, card2, card3, card4, card5
print("Player 1's hand consists of: " + card1 + ", " + card2 + ", " + card3 + ", " + card4 + ", " + card5)
#Player1
card1List, card2List, card3List, card4List, card5List = [card1], [card2], [card3], [card4], [card5]
#Player1
for i in card1List:
#print(i)
cardValue = 0
if i == "diamond1" or i == "heart1" or i == "club1" or i == "spade1":
cardValue = 1
elif i == "diamond2" or i == "heart2" or i == "club2" or i == "spade2":
cardValue = 2
elif i == "diamond3" or i == "heart3" or i == "club3" or i == "spade3":
cardValue = 3
elif i == "diamond4" or i == "heart4" or i == "club4" or i == "spade4":
cardValue = 4
elif i == "diamond5" or i == "heart5" or i == "club5" or i == "spade5":
cardValue = 5
elif i == "diamond6" or i == "heart6" or i == "club6" or i == "spade6":
cardValue = 6
elif i == "diamond7" or i == "heart7" or i == "club7" or i == "spade7":
cardValue, cardValue2, cardValue3, cardValue4, cardValue5 = 7, 7, 7, 7, 7
elif i == "diamond8" or i == "heart8" or i == "club8" or i == "spade8":
cardValue = 8
elif i == "diamond9" or i == "heart9" or i == "club9" or i == "spade9":
cardValue = 9
elif i == "diamond10" or i == "heart10" or i == "club10" or i == "spade10":
cardValue = 10
elif i == "diamondJack" or i == "heartJack" or i == "clubJack" or i == "spadeJack":
cardValue = 11
elif i == "diamondQueen" or i == "heartQueen" or i == "clubQueen" or i == "spadeQueen":
cardValue = 12
elif i == "diamondKing" or i == "heartKing" or i == "clubKing" or i == "spadeKing":
cardValue = 13
#print(cardValue)
totalValuecard1 = cardValue
for i in card2List:
#print(i)
cardValue = 0
if i == "diamond1" or i == "heart1" or i == "club1" or i == "spade1":
cardValue = 1
elif i == "diamond2" or i == "heart2" or i == "club2" or i == "spade2":
cardValue = 2
elif i == "diamond3" or i == "heart3" or i == "club3" or i == "spade3":
cardValue = 3
elif i == "diamond4" or i == "heart4" or i == "club4" or i == "spade4":
cardValue = 4
elif i == "diamond5" or i == "heart5" or i == "club5" or i == "spade5":
cardValue = 5
elif i == "diamond6" or i == "heart6" or i == "club6" or i == "spade6":
cardValue = 6
elif i == "diamond7" or i == "heart7" or i == "club7" or i == "spade7":
cardValue, cardValue2, cardValue3, cardValue4, cardValue5 = 7, 7, 7, 7, 7
elif i == "diamond8" or i == "heart8" or i == "club8" or i == "spade8":
cardValue = 8
elif i == "diamond9" or i == "heart9" or i == "club9" or i == "spade9":
cardValue = 9
elif i == "diamond10" or i == "heart10" or i == "club10" or i == "spade10":
cardValue = 10
elif i == "diamondJack" or i == "heartJack" or i == "clubJack" or i == "spadeJack":
cardValue = 11
elif i == "diamondQueen" or i == "heartQueen" or i == "clubQueen" or i == "spadeQueen":
cardValue = 12
elif i == "diamondKing" or i == "heartKing" or i == "clubKing" or i == "spadeKing":
cardValue = 13
#print(cardValue)
totalValuecard2 = cardValue
for i in card3List:
#print(i)
cardValue = 0
if i == "diamond1" or i == "heart1" or i == "club1" or i == "spade1":
cardValue = 1
elif i == "diamond2" or i == "heart2" or i == "club2" or i == "spade2":
cardValue = 2
elif i == "diamond3" or i == "heart3" or i == "club3" or i == "spade3":
cardValue = 3
elif i == "diamond4" or i == "heart4" or i == "club4" or i == "spade4":
cardValue = 4
elif i == "diamond5" or i == "heart5" or i == "club5" or i == "spade5":
cardValue = 5
elif i == "diamond6" or i == "heart6" or i == "club6" or i == "spade6":
cardValue = 6
elif i == "diamond7" or i == "heart7" or i == "club7" or i == "spade7":
cardValue, cardValue2, cardValue3, cardValue4, cardValue5 = 7, 7, 7, 7, 7
elif i == "diamond8" or i == "heart8" or i == "club8" or i == "spade8":
cardValue = 8
elif i == "diamond9" or i == "heart9" or i == "club9" or i == "spade9":
cardValue = 9
elif i == "diamond10" or i == "heart10" or i == "club10" or i == "spade10":
cardValue = 10
elif i == "diamondJack" or i == "heartJack" or i == "clubJack" or i == "spadeJack":
cardValue = 11
elif i == "diamondQueen" or i == "heartQueen" or i == "clubQueen" or i == "spadeQueen":
cardValue = 12
elif i == "diamondKing" or i == "heartKing" or i == "clubKing" or i == "spadeKing":
cardValue = 13
#print(cardValue)
totalValuecard3 = cardValue
for i in card4List:
#print(i)
cardValue = 0
if i == "diamond1" or i == "heart1" or i == "club1" or i == "spade1":
cardValue = 1
elif i == "diamond2" or i == "heart2" or i == "club2" or i == "spade2":
cardValue = 2
elif i == "diamond3" or i == "heart3" or i == "club3" or i == "spade3":
cardValue = 3
elif i == "diamond4" or i == "heart4" or i == "club4" or i == "spade4":
cardValue = 4
elif i == "diamond5" or i == "heart5" or i == "club5" or i == "spade5":
cardValue = 5
elif i == "diamond6" or i == "heart6" or i == "club6" or i == "spade6":
cardValue = 6
elif i == "diamond7" or i == "heart7" or i == "club7" or i == "spade7":
cardValue, cardValue2, cardValue3, cardValue4, cardValue5 = 7, 7, 7, 7, 7
elif i == "diamond8" or i == "heart8" or i == "club8" or i == "spade8":
cardValue = 8
elif i == "diamond9" or i == "heart9" or i == "club9" or i == "spade9":
cardValue = 9
elif i == "diamond10" or i == "heart10" or i == "club10" or i == "spade10":
cardValue = 10
elif i == "diamondJack" or i == "heartJack" or i == "clubJack" or i == "spadeJack":
cardValue = 11
elif i == "diamondQueen" or i == "heartQueen" or i == "clubQueen" or i == "spadeQueen":
cardValue = 12
elif i == "diamondKing" or i == "heartKing" or i == "clubKing" or i == "spadeKing":
cardValue = 13
#print(cardValue)
totalValuecard4 = cardValue
for i in card5List:
#print(i)
cardValue = 0
if i == "diamond1" or i == "heart1" or i == "club1" or i == "spade1":
cardValue = 1
elif i == "diamond2" or i == "heart2" or i == "club2" or i == "spade2":
cardValue = 2
elif i == "diamond3" or i == "heart3" or i == "club3" or i == "spade3":
cardValue = 3
elif i == "diamond4" or i == "heart4" or i == "club4" or i == "spade4":
cardValue = 4
elif i == "diamond5" or i == "heart5" or i == "club5" or i == "spade5":
cardValue = 5
elif i == "diamond6" or i == "heart6" or i == "club6" or i == "spade6":
cardValue = 6
elif i == "diamond7" or i == "heart7" or i == "club7" or i == "spade7":
cardValue, cardValue2, cardValue3, cardValue4, cardValue5 = 7, 7, 7, 7, 7
elif i == "diamond8" or i == "heart8" or i == "club8" or i == "spade8":
cardValue = 8
elif i == "diamond9" or i == "heart9" or i == "club9" or i == "spade9":
cardValue = 9
elif i == "diamond10" or i == "heart10" or i == "club10" or i == "spade10":
cardValue = 10
elif i == "diamondJack" or i == "heartJack" or i == "clubJack" or i == "spadeJack":
cardValue = 11
elif i == "diamondQueen" or i == "heartQueen" or i == "clubQueen" or i == "spadeQueen":
cardValue = 12
elif i == "diamondKing" or i == "heartKing" or i == "clubKing" or i == "spadeKing":
cardValue = 13
#print(cardValue)
totalValuecard5 = cardValue
totalValuePlayer1 = totalValuecard1 + totalValuecard2 + totalValuecard3 + totalValuecard4 + totalValuecard5
print("Player 1's starting hand value is: " + str(totalValuePlayer1))
def player2StartingDeck():
#Player2
card6, card7, card8, card9, card10 = cards[5], cards[6], cards[7], cards[8], cards[9]
player2Hand = card6, card7, card8, card9, card10
print("Player 2's hand consists of: " + card6 + ", " + card7 + ", " + card8 + ", " + card9 + ", " + card10)
#Player2
card6List, card7List, card8List, card9List, card10List = [card6], [card7], [card8], [card9], [card10]
#Player2
for i in card6List:
#print(i)
cardValue = 0
if i == "diamond1" or i == "heart1" or i == "club1" or i == "spade1":
cardValue = 1
elif i == "diamond2" or i == "heart2" or i == "club2" or i == "spade2":
cardValue = 2
elif i == "diamond3" or i == "heart3" or i == "club3" or i == "spade3":
cardValue = 3
elif i == "diamond4" or i == "heart4" or i == "club4" or i == "spade4":
cardValue = 4
elif i == "diamond5" or i == "heart5" or i == "club5" or i == "spade5":
cardValue = 5
elif i == "diamond6" or i == "heart6" or i == "club6" or i == "spade6":
cardValue = 6
elif i == "diamond7" or i == "heart7" or i == "club7" or i == "spade7":
cardValue, cardValue2, cardValue3, cardValue4, cardValue5 = 7, 7, 7, 7, 7
elif i == "diamond8" or i == "heart8" or i == "club8" or i == "spade8":
cardValue = 8
elif i == "diamond9" or i == "heart9" or i == "club9" or i == "spade9":
cardValue = 9
elif i == "diamond10" or i == "heart10" or i == "club10" or i == "spade10":
cardValue = 10
elif i == "diamondJack" or i == "heartJack" or i == "clubJack" or i == "spadeJack":
cardValue = 11
elif i == "diamondQueen" or i == "heartQueen" or i == "clubQueen" or i == "spadeQueen":
cardValue = 12
elif i == "diamondKing" or i == "heartKing" or i == "clubKing" or i == "spadeKing":
cardValue = 13
#print(cardValue)
totalValuecard6 = cardValue
for i in card7List:
#print(i)
cardValue = 0
if i == "diamond1" or i == "heart1" or i == "club1" or i == "spade1":
cardValue = 1
elif i == "diamond2" or i == "heart2" or i == "club2" or i == "spade2":
cardValue = 2
elif i == "diamond3" or i == "heart3" or i == "club3" or i == "spade3":
cardValue = 3
elif i == "diamond4" or i == "heart4" or i == "club4" or i == "spade4":
cardValue = 4
elif i == "diamond5" or i == "heart5" or i == "club5" or i == "spade5":
cardValue = 5
elif i == "diamond6" or i == "heart6" or i == "club6" or i == "spade6":
cardValue = 6
elif i == "diamond7" or i == "heart7" or i == "club7" or i == "spade7":
cardValue, cardValue2, cardValue3, cardValue4, cardValue5 = 7, 7, 7, 7, 7
elif i == "diamond8" or i == "heart8" or i == "club8" or i == "spade8":
cardValue = 8
elif i == "diamond9" or i == "heart9" or i == "club9" or i == "spade9":
cardValue = 9
elif i == "diamond10" or i == "heart10" or i == "club10" or i == "spade10":
cardValue = 10
elif i == "diamondJack" or i == "heartJack" or i == "clubJack" or i == "spadeJack":
cardValue = 11
elif i == "diamondQueen" or i == "heartQueen" or i == "clubQueen" or i == "spadeQueen":
cardValue = 12
elif i == "diamondKing" or i == "heartKing" or i == "clubKing" or i == "spadeKing":
cardValue = 13
#print(cardValue)
totalValuecard7 = cardValue
for i in card8List:
#print(i)
cardValue = 0
if i == "diamond1" or i == "heart1" or i == "club1" or i == "spade1":
cardValue = 1
elif i == "diamond2" or i == "heart2" or i == "club2" or i == "spade2":
cardValue = 2
elif i == "diamond3" or i == "heart3" or i == "club3" or i == "spade3":
cardValue = 3
elif i == "diamond4" or i == "heart4" or i == "club4" or i == "spade4":
cardValue = 4
elif i == "diamond5" or i == "heart5" or i == "club5" or i == "spade5":
cardValue = 5
elif i == "diamond6" or i == "heart6" or i == "club6" or i == "spade6":
cardValue = 6
elif i == "diamond7" or i == "heart7" or i == "club7" or i == "spade7":
cardValue, cardValue2, cardValue3, cardValue4, cardValue5 = 7, 7, 7, 7, 7
elif i == "diamond8" or i == "heart8" or i == "club8" or i == "spade8":
cardValue = 8
elif i == "diamond9" or i == "heart9" or i == "club9" or i == "spade9":
cardValue = 9
elif i == "diamond10" or i == "heart10" or i == "club10" or i == "spade10":
cardValue = 10
elif i == "diamondJack" or i == "heartJack" or i == "clubJack" or i == "spadeJack":
cardValue = 11
elif i == "diamondQueen" or i == "heartQueen" or i == "clubQueen" or i == "spadeQueen":
cardValue = 12
elif i == "diamondKing" or i == "heartKing" or i == "clubKing" or i == "spadeKing":
cardValue = 13
#print(cardValue)
totalValuecard8 = cardValue
for i in card9List:
#print(i)
cardValue = 0
if i == "diamond1" or i == "heart1" or i == "club1" or i == "spade1":
cardValue = 1
elif i == "diamond2" or i == "heart2" or i == "club2" or i == "spade2":
cardValue = 2
elif i == "diamond3" or i == "heart3" or i == "club3" or i == "spade3":
cardValue = 3
elif i == "diamond4" or i == "heart4" or i == "club4" or i == "spade4":
cardValue = 4
elif i == "diamond5" or i == "heart5" or i == "club5" or i == "spade5":
cardValue = 5
elif i == "diamond6" or i == "heart6" or i == "club6" or i == "spade6":
cardValue = 6
elif i == "diamond7" or i == "heart7" or i == "club7" or i == "spade7":
cardValue, cardValue2, cardValue3, cardValue4, cardValue5 = 7, 7, 7, 7, 7
elif i == "diamond8" or i == "heart8" or i == "club8" or i == "spade8":
cardValue = 8
elif i == "diamond9" or i == "heart9" or i == "club9" or i == "spade9":
cardValue = 9
elif i == "diamond10" or i == "heart10" or i == "club10" or i == "spade10":
cardValue = 10
elif i == "diamondJack" or i == "heartJack" or i == "clubJack" or i == "spadeJack":
cardValue = 11
elif i == "diamondQueen" or i == "heartQueen" or i == "clubQueen" or i == "spadeQueen":
cardValue = 12
elif i == "diamondKing" or i == "heartKing" or i == "clubKing" or i == "spadeKing":
cardValue = 13
#print(cardValue)
totalValuecard9 = cardValue
for i in card10List:
#print(i)
cardValue = 0
if i == "diamond1" or i == "heart1" or i == "club1" or i == "spade1":
cardValue = 1
elif i == "diamond2" or i == "heart2" or i == "club2" or i == "spade2":
cardValue = 2
elif i == "diamond3" or i == "heart3" or i == "club3" or i == "spade3":
cardValue = 3
elif i == "diamond4" or i == "heart4" or i == "club4" or i == "spade4":
cardValue = 4
elif i == "diamond5" or i == "heart5" or i == "club5" or i == "spade5":
cardValue = 5
elif i == "diamond6" or i == "heart6" or i == "club6" or i == "spade6":
cardValue = 6
elif i == "diamond7" or i == "heart7" or i == "club7" or i == "spade7":
cardValue, cardValue2, cardValue3, cardValue4, cardValue5 = 7, 7, 7, 7, 7
elif i == "diamond8" or i == "heart8" or i == "club8" or i == "spade8":
cardValue = 8
elif i == "diamond9" or i == "heart9" or i == "club9" or i == "spade9":
cardValue = 9
elif i == "diamond10" or i == "heart10" or i == "club10" or i == "spade10":
cardValue = 10
elif i == "diamondJack" or i == "heartJack" or i == "clubJack" or i == "spadeJack":
cardValue = 11
elif i == "diamondQueen" or i == "heartQueen" or i == "clubQueen" or i == "spadeQueen":
cardValue = 12
elif i == "diamondKing" or i == "heartKing" or i == "clubKing" or i == "spadeKing":
cardValue = 13
#print(cardValue)
totalValuecard10 = cardValue
totalValuePlayer2 = totalValuecard6 + totalValuecard7 + totalValuecard8 + totalValuecard9 + totalValuecard10
print("Player 1's starting hand value is: " + str(totalValuePlayer2))
random.shuffle(cards)
#print(cards)
player1StartingDeck()
player2StartingDeck()
答案 0 :(得分:1)
这是一种计算给定卡集总值的解决方案。您可以使其适应您的解决方案。由于所有球杆,黑桃,钻石和心形都有相同的价值,因此您无需单独检查它们。
import numpy as np
cards1 = [s + str(i) for i in range(1,11) for s in ['diamond', 'heart', 'club', 'spade']]
cards2 = [s + i for i in ['Jack', 'Queen', 'King'] for s in ['diamond', 'heart', 'club', 'spade']]
cards = np.array(cards1+cards2)
hand = np.random.randint(0, len(cards), 5)
card_list =cards[hand]
total_value = 0
for card in card_list:
if (card[-2:]).isdigit():
total_value += int(card[-2:])
elif (card[-1:]).isdigit():
total_value += int(card[-1:])
elif card[-4:] == 'Jack':
total_value += 11
elif card[-5:] == 'Queen':
total_value += 12
else:
total_value += 13
print (card_list, total_value)
这里的技巧是首先查看字符串是否以数字结尾,在这种情况下,卡的值仅等于该数字。如果不是这种情况,则表示是“杰克”,“皇后”或“国王”。但是由于这些字符串的长度不相同,因此我们将对其进行显式检查并添加相应的值。