Форум сайта python.su
Помогите, пожалуйста, реализовать класс Pyramid Board, который содержит состояние (переменные) и поведение (методы), необходимые для игры в солитер. нужно использовать шаблоны проектирования. Пирамида должна поддерживать следующие параметры сложности: Карты должны сопоставляются попарно, принимая / не принимая во внимание их ранги.
Вот я реализовал класс карта и колода а вот саму реализацию игры не могу реализовать помогите пожалуйста
from random import shuffle CARD_VALUES = ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'K', 'Q', 'A'] CARD_SUITS = ['\u2665', '\u2666', '\u2663', '\u2660'] class Card: def __init__(self, number): self.suit, self.value = divmod(number, 13) def __str__(self): return CARD_VALUES[self.value] + CARD_SUITS[self.suit] def __repr__(self): return str(self) class Deck: singleton = None def __new__(cls,n): if cls.singleton: return cls.singleton else: obj = super().__new__(cls) cls.singleton = obj return obj def __init__(self, n): self.count = 52 if (n == 1): pass elif (n == 2): self.count = 104 else: pass self.cards = [Card(i) for i in range(self.count)] self.shuffle() def __iter__(self): return iter(self.cards) def shuffle(self): shuffle(self.cards) def __str__(self): return 'Deck{}'.format(self.cards)
Офлайн
from deck import Deck deck1 = Deck(1) cart = [] for i in range(0,52): cart.append(str(deck1.cards[i])) CART = [] for i in range(0,52): if cart[i][0] == 'A': CART.append(1) elif cart[i][0] == 'J': CART.append(11) elif cart[i][0] == 'Q': CART.append(12) elif cart[i][0] == 'K': CART.append(13) elif cart[i][0:2] == '10': CART.append('10') else: CART.append(cart[i][0]) cards = [] for i in range(0,52): cards.append(int(CART[i])) pidbir = cards[28:] i = 28 while True: #deck1.cards[n] = '' #cards[n] = 0 print(31 * ' ', str(deck1.cards[0])) print(28 * ' ', str(deck1.cards[1:3])) print(26 * ' ', str(deck1.cards[3:6])) print(24 * ' ', str(deck1.cards[6:10])) print(22 * ' ', str(deck1.cards[10:15])) print(20 * ' ', str(deck1.cards[15:21])) print(18 * ' ', str(deck1.cards[21:28])) print(30 * "---") print(str(deck1.cards[28:])) print(str(deck1.cards[i]), 'index =', i) n = int(input("N= ")) print(deck1.cards[n]) m = int(input(("M= "))) print(deck1.cards[m]) if cards[n] == 13: deck1.cards[n] = ' ' cards[n] = 0 elif cards[n] == 13: deck1.cards[n] = ' ' cards[n] = 0 elif cards[n] + cards[m] == 13: deck1.cards[n] = ' ' deck1.cards[m] = ' ' cards[n] = 0 cards[m] = 0 else: pass i+=1 if i == 52: i = 28
Отредактировано zxcvbnm (Март 22, 2017 14:09:15)
Офлайн