0
0 комментариев

Нужно создать класс карты, чтобы представить игровую карту в пирамиде.
Создать класс Колода для представления колоды карт в пирамиде.
Вот я написал код, но преподаватель говорит что надо реализовать этот класс с использованием шаблонов проектирования, помогите пожалуйста.

import random
 
 
class Card(object):
    def __init__(self):
        self.list = ['в™*', 'в™Ј', '♥', '♦']
        self.cards = []
        self.cart = []
        for card_num in range(0, 52):
            r = str(card_num % 13)
            if r == '0':
                r = 'K'
            if r == '1':
                r = 'A'
            if r == '12':
                r = 'Q'
            if r == '11':
                r = 'J'
            index = int((card_num / 13) % 13)
            self.cards.append((r, self.list[index]))
 
    def draw(self):
        next = self.cards.pop(random.randint(0, len(self.cards) - 1))
        return next
 
    def deck(self):
        c = Card()
        for i in range(0, 52):
            self.cart.append(c.draw())
 
 
        print(30*' ',self.cart[0])
        print(25*' ',self.cart[1:3])
        print(20*' ',self.cart[4:7])
        print(15*' ',self.cart[7:11])
        print(10*' ',self.cart[11:16])
        print(5*' ',self.cart[16:22])
        print(self.cart[23:30])
        print(30 * "---")
        print(self.cart[31:])
 
c = Card()
c.deck()

Колода должна быть синглетоном. Также колода имеет реализовывать итератор, что выдавать текущие карты. Также насколько я понял, то карты имеют розпихатись по строкам пирамиды, то каждая строка может быть создан через фабрику классов. А вывод каждой строки через декоратор.


Добавить комментарий