1

Тема: Реалізація патернів проектування

Потрібно створити клас карти, щоб представити гральну карту в піраміді.
Створити клас Колода для подання колоди карт в піраміді.
Ось я написав код, але викладач каже що треба реалізувати цей клас з використанням шаблонів проектування, допоможіть будь ласка.

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()

2

Re: Реалізація патернів проектування

Залежить про які шаблони ваш викладач на лекціях розказував.

Подякували: koala1

3

Re: Реалізація патернів проектування

Singleton,abstract factory,decorator,iterator

4

Re: Реалізація патернів проектування

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

5

Re: Реалізація патернів проектування

Так, але  їх самостійно потрібно вивчити але я не знаю як їх саме тут застосувати

6

Re: Реалізація патернів проектування

http://python-3-patterns-idioms-test.re … index.html

7

Re: Реалізація патернів проектування

Українською є якісь матеріали