按照python中的等级和套装排序一手牌
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了按照python中的等级和套装排序一手牌,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1941字,纯文字阅读大概需要3分钟。
内容图文
![按照python中的等级和套装排序一手牌](/upload/InfoBanner/zyjiaocheng/799/d0dbe9f541d1436091ca29027ae58ca6.jpg)
我打算做一个纸牌游戏,现在我正在开始它的工作.令我感到困惑的是按照他们的排名对牌进行排序然后适合如何减少重复.目前我可能会为组织卡片制作一个for循环,然后对于每种可能性有52种不同,但我想知道他们是否更容易做到这一点以及很多其他重复性任务.谢谢:D我会把代码放在下面:
from random import shuffle
class deckOfCards:
def __init__(self):
self.rank = ['2','3','4','5','6','7','8','9','T','J','Q','K','A']
self.suit = ['C', 'S', 'H', 'D']
self.deck = [r+s for r in self.rank for s in self.suit]
shuffle(self.deck)
def setValue(self, deck):
cnt = 1
self.value = {}
for i in self.deck:
self.value[i] = cnt
cnt += 1
class Deal:
def __init__(self, deck, position):
self.hand = deck[position::4] #divides the deck into 4 hands
hand = self.hand
def value(self, key): # Gives each card that the player has a value
newHand = {}
for i in self.hand:
if i in key:
newHand[i] = key[i]
return newHand
deck = deckOfCards()
player1 = Deal(deck.deck, 0) #######################################
player2 = Deal(deck.deck, 1) # Example of repetition that I wanted #
player3 = Deal(deck.deck, 2) # to get rid of if possible #
player4 = Deal(deck.deck, 3) #######################################
编辑:我认为这对于排序卡很有效,但我仍然对如何消除一些重复感到困惑.感谢所有的帮助:D
def sortHand(player):
hand = player.hand
for i in hand:
for i in hand:
index = player1.hand.index(i)
if index != 12:
if deck.value[i] > deck.value[hand[index+1]]:
hand.insert(index+1, hand.pop(index))
解决方法:
我可能会简化一下这个:
from random import shuffle
class Hand(list):
pass
class Deck(object):
rank = '23456789TJQKA'
suit = 'CSHD'
def deal(self, n):
deck = [r+s for r in Deck.rank for s in Deck.suit]
shuffle(deck)
return [Hand(sorted(deck[i::n], key=Deck.cmpkey)) for i in xrange(n)]
@staticmethod
def cmpkey(card):
return Deck.rank.index(card[0]), Deck.suit.index(card[1])
print Deck().deal(4)
通过这种安排,deal()的结果是四手牌的列表.每只手按等级排序然后适合.
(我没有完全理解“价值”逻辑,所以我把它从我的例子中删除了.)
内容总结
以上是互联网集市为您收集整理的按照python中的等级和套装排序一手牌全部内容,希望文章能够帮你解决按照python中的等级和套装排序一手牌所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。