Generator for generating random codes for each team in the Decrypto game.
| Parameters: |
-
keyword_cards
(
Sequence[Keywords])
–
The keyword cards for each team.
-
code_lengths
(
Sequence[int])
–
The lengths of the codes for each team. Defaults to DEFAULT_CODE_LENGTH.
-
seed
(
int)
–
The random seed for consistent code generation. Defaults to None.
|
| Yields: |
-
–
tuple[Code, Code]: A tuple containing the randomly generated codes for each team.
|
Source code in /home/docs/checkouts/readthedocs.org/user_builds/decryptogame/envs/latest/lib/python3.10/site-packages/decryptogame/generators.py
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 | class RandomCodes:
"""Generator for generating random codes for each team in the Decrypto game.
Args:
keyword_cards (Sequence[Keywords]): The keyword cards for each team.
code_lengths (Sequence[int], optional): The lengths of the codes for each team. Defaults to DEFAULT_CODE_LENGTH.
seed (int, optional): The random seed for consistent code generation. Defaults to None.
Yields:
tuple[Code, Code]: A tuple containing the randomly generated codes for each team.
"""
def __init__(self, keyword_cards: Sequence[Keywords], code_lengths: Sequence[int] = None, seed: Optional[int] = None):
self.code_lengths = code_lengths if code_lengths is not None else [DEFAULT_CODE_LENGTH] * len(keyword_cards)
self.random = random.Random(seed) if seed is not None else random.Random()
self.team_codes = []
for keywords, code_length in zip(keyword_cards, self.code_lengths):
codes = list(permutations(range(len(keywords)), code_length))
self.team_codes.append(codes)
def __next__(self) -> tuple[Code, Code]:
"""Generate the next set of random codes for each team.
Returns:
tuple[Code, Code]: A tuple containing the randomly generated codes for each team.
"""
return [self.random.choice(codes) for codes in self.team_codes]
def __iter__(self):
"""Return the generator as an iterable object.
Returns:
RandomCodes: The generator object itself.
"""
return self
|
__iter__()
Return the generator as an iterable object.
| Returns: |
-
RandomCodes –
The generator object itself.
|
/home/docs/checkouts/readthedocs.org/user_builds/decryptogame/envs/latest/lib/python3.10/site-packages/decryptogame/generators.py
| def __iter__(self):
"""Return the generator as an iterable object.
Returns:
RandomCodes: The generator object itself.
"""
return self
|
__next__()
Generate the next set of random codes for each team.
| Returns: |
-
tuple[Code, Code]
–
tuple[Code, Code]: A tuple containing the randomly generated codes for each team.
|
/home/docs/checkouts/readthedocs.org/user_builds/decryptogame/envs/latest/lib/python3.10/site-packages/decryptogame/generators.py
| def __next__(self) -> tuple[Code, Code]:
"""Generate the next set of random codes for each team.
Returns:
tuple[Code, Code]: A tuple containing the randomly generated codes for each team.
"""
return [self.random.choice(codes) for codes in self.team_codes]
|