pit_toner,
а нахрена ты трейсбэк картинкой прикрепляешь?
Скопипастить сюда текст - это гораздо труднее и менее читаемо?
# -*- encoding: utf-8 -*- ''' @author: Sergey Rus ''' from random import Random from random import shuffle from time import time class CardNames(object): ''' Значения карт ''' SIX = 6 SEVEN = 7 EIGHT = 8 NINE = 9 TEN = 10 CAVALER = 11 DAMA = 12 KING = 13 ACE = 14 class CardSuit(object): ''' Масти карт ''' HEART = '_h' # черви DIAMOND = '_d' # бубны SPADES = '_s' # пики CLUB = '_c' # крести class Card(object): ''' Карта. ''' def __init__(self, card_id, card_suit, card_value): ''' Constructor ''' self._id = card_id self._mast = card_suit self._val = card_value @property def suit(self): return self._mast @property def value(self): return self._val class CardsCodes(object): # таблица кодировки карт. cards = { 0: Card(0, CardSuit.HEART, CardNames.SIX), 1: Card(1, CardSuit.HEART, CardNames.SEVEN), 2: Card(2, CardSuit.HEART, CardNames.EIGHT), 3: Card(3, CardSuit.HEART, CardNames.NINE), 4: Card(4, CardSuit.HEART, CardNames.TEN), 5: Card(5, CardSuit.HEART, CardNames.CAVALER), 6: Card(6, CardSuit.HEART, CardNames.DAMA), 7: Card(7, CardSuit.HEART, CardNames.KING), 8: Card(8, CardSuit.HEART, CardNames.ACE), 9: Card(9, CardSuit.DIAMOND, CardNames.SIX), 10: Card(10, CardSuit.DIAMOND, CardNames.SEVEN), 11: Card(11, CardSuit.DIAMOND, CardNames.EIGHT), 12: Card(12, CardSuit.DIAMOND, CardNames.NINE), 13: Card(13, CardSuit.DIAMOND, CardNames.TEN), 14: Card(14, CardSuit.DIAMOND, CardNames.CAVALER), 15: Card(15, CardSuit.DIAMOND, CardNames.DAMA), 16: Card(16, CardSuit.DIAMOND, CardNames.KING), 17: Card(17, CardSuit.DIAMOND, CardNames.ACE), 18: Card(18, CardSuit.SPADES, CardNames.SIX), 19: Card(19, CardSuit.SPADES, CardNames.SEVEN), 20: Card(20, CardSuit.SPADES, CardNames.EIGHT), 21: Card(21, CardSuit.SPADES, CardNames.NINE), 22: Card(22, CardSuit.SPADES, CardNames.TEN), 23: Card(23, CardSuit.SPADES, CardNames.CAVALER), 24: Card(24, CardSuit.SPADES, CardNames.DAMA), 25: Card(25, CardSuit.SPADES, CardNames.KING), 26: Card(26, CardSuit.SPADES, CardNames.ACE), 27: Card(27, CardSuit.CLUB, CardNames.SIX), 28: Card(28, CardSuit.CLUB, CardNames.SEVEN), 29: Card(29, CardSuit.CLUB, CardNames.EIGHT), 30: Card(30, CardSuit.CLUB, CardNames.NINE), 31: Card(31, CardSuit.CLUB, CardNames.TEN), 32: Card(32, CardSuit.CLUB, CardNames.CAVALER), 33: Card(33, CardSuit.CLUB, CardNames.DAMA), 34: Card(34, CardSuit.CLUB, CardNames.KING), 35: Card(35, CardSuit.CLUB, CardNames.ACE) } class CardsAction(object): ''' Операции с картами ''' @staticmethod def getStack(): ''' генерируем рандомную колоду карт @return перемешанный массив кодов карт ''' r = Random() r.seed() l = [] for a in xrange(0, 36): l.append(a) r.shuffle(l) return l @staticmethod def getCardSuit(card): ''' @param card: код карты @return: масть карты ''' try: c = CardsCodes.cards.get(card) return c.suit except: return None @staticmethod def getCardValue(card): ''' @param card:код карты @return: значение карты ''' try: c = CardsCodes.cards.get(card) return c.value except: return None @staticmethod def getCard(card): try: c = CardsCodes.cards.get(card) return Card(card, c.suit, c.value) except: return None @staticmethod def checkVol(card1, card2, trump): ''' проверка карт на старшинство @param card1, card2: коды сравниваемых карт @trump - код карты, выбранной козырем ''' c1 = CardsAction.getCard(card1) c2 = CardsAction.getCard(card2) t = CardsAction.getCard(trump) if c1.suit == c2.suit: if c1.value > c2.value: return 1 else: return 2 else: if c1.suit == t.suit: return 1 elif c2.suit == t.suit: return 2
@property def suit(self): return self._mast
beelze@property def suit(self): return self._mast
это свойство для перевода «внутреннего» пространства имен во пространство имен интерфейса класса?
FlaPy
я несколько разных игрушек на эту тему делал…. с картами решал вот таким образом: