Уведомления

Группа в Telegram: @pythonsu

#1 Март 22, 2017 00:33:27

zxcvbnm
Зарегистрирован: 2017-02-11
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

Пирамида пасьянсов

Помогите, пожалуйста, реализовать класс 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)

Офлайн

#2 Март 22, 2017 14:06:24

zxcvbnm
Зарегистрирован: 2017-02-11
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

Пирамида пасьянсов

 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)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version