Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2017, 23:30   #1
drako08
Пользователь
 
Регистрация: 04.10.2016
Сообщений: 30
По умолчанию Пирамида пасьянсов

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

Последний раз редактировалось drako08; 23.03.2017 в 00:35.
drako08 вне форума Ответить с цитированием
Старый 23.03.2017, 00:08   #2
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

Такой код даже читать тяжело. Отформатировать не мешало бы
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/
pompiduskus вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
OpenGL. Пирамида _PROGRAMM_ Помощь студентам 4 08.11.2011 11:38
Поделитесь пожалуйсто ссылкой на сайт где можно скачать исходники пасьянсов на делфи Warfvare Софт 6 24.07.2010 10:29
Поделитесь пожалуйсто ссылкой на сайт где можно скачать исходники пасьянсов на делфи Warfvare Помощь студентам 0 17.06.2010 17:59