Код IT
← Каталог

Python — Tetris — Этап 19 — 7-bag randomizer

Фрагмент из «Python — Tetris»: Этап 19 — 7-bag randomizer.

python spinoffencyclopedia9-04-razrabotka-igr-praktikum-razrabotki-igr-5 embed URL статья в энциклопедии
Python main.py
import random


class SevenBag:
    """Очередь тетромино по правилу 7-bag."""

    def __init__(self, seed=None):
        self.rng = random.Random(seed)
        self.queue = []
        self._refill()

    def _refill(self):
        bag = ALL_KINDS[:]
        self.rng.shuffle(bag)
        self.queue.extend(bag)

    def pop(self):
        if len(self.queue) < 1:
            self._refill()
        return self.queue.pop(0)

    def peek(self):
        if len(self.queue) < 1:
            self._refill()
        return self.queue[0]
import random


class SevenBag:
    """Очередь тетромино по правилу 7-bag."""

    def __init__(self, seed=None):
        self.rng = random.Random(seed)
        self.queue = []
        self._refill()

    def _refill(self):
        bag = ALL_KINDS[:]
        self.rng.shuffle(bag)
        self.queue.extend(bag)

    def pop(self):
        if len(self.queue) < 1:
            self._refill()
        return self.queue.pop(0)

    def peek(self):
        if len(self.queue) < 1:
            self._refill()
        return self.queue[0]