Sha256: 956cd5ab636b17b75f9a2d95efc9c33dddca235633cdf5e2264df37843051526

Contents?: true

Size: 908 Bytes

Versions: 396

Compression:

Stored size: 908 Bytes

Contents

import random


class Robot(object):
    alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

    def __init__(self):
        self._name = None
        self._past_names = set()

    def prefix(self):
        return ''.join([
            random.choice(self.alphabet)
            for _ in range(0, 2)
        ])

    def suffix(self):
        return ''.join([
            str(random.choice(range(0, 10)))
            for _ in range(0, 3)
        ])

    def get_name(self):
        if not self._name:

            # Collision detection
            while True:
                self._name = self.prefix() + self.suffix()
                if self._name not in self._past_names:
                    self._past_names.add(self._name)
                    break

        return self._name

    def del_name(self):
        self._name = None

    name = property(get_name, None, del_name)

    def reset(self):
        del self.name

Version data entries

396 entries across 396 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/python/exercises/robot-name/example.py
trackler-2.2.1.179 tracks/python/exercises/robot-name/example.py
trackler-2.2.1.178 tracks/python/exercises/robot-name/example.py
trackler-2.2.1.177 tracks/python/exercises/robot-name/example.py
trackler-2.2.1.176 tracks/python/exercises/robot-name/example.py
trackler-2.2.1.175 tracks/python/exercises/robot-name/example.py
trackler-2.2.1.174 tracks/python/exercises/robot-name/example.py
trackler-2.2.1.173 tracks/python/exercises/robot-name/example.py
trackler-2.2.1.172 tracks/python/exercises/robot-name/example.py
trackler-2.2.1.171 tracks/python/exercises/robot-name/example.py
trackler-2.2.1.170 tracks/python/exercises/robot-name/example.py
trackler-2.2.1.169 tracks/python/exercises/robot-name/example.py
trackler-2.2.1.167 tracks/python/exercises/robot-name/example.py
trackler-2.2.1.166 tracks/python/exercises/robot-name/example.py
trackler-2.2.1.165 tracks/python/exercises/robot-name/example.py
trackler-2.2.1.164 tracks/python/exercises/robot-name/example.py
trackler-2.2.1.163 tracks/python/exercises/robot-name/example.py
trackler-2.2.1.162 tracks/python/exercises/robot-name/example.py
trackler-2.2.1.161 tracks/python/exercises/robot-name/example.py
trackler-2.2.1.160 tracks/python/exercises/robot-name/example.py