fix: replace offset and eating
This commit is contained in:
@@ -18,21 +18,24 @@ mice: list[int] = [i for i in range(grey + white)]
|
|||||||
eaten: list[int] = []
|
eaten: list[int] = []
|
||||||
current_mouse = 0
|
current_mouse = 0
|
||||||
while len(mice) > total_remaining:
|
while len(mice) > total_remaining:
|
||||||
|
current_mouse: int = (current_mouse + S) % len(mice)
|
||||||
eaten.append(mice[current_mouse])
|
eaten.append(mice[current_mouse])
|
||||||
mice.pop(current_mouse)
|
mice.pop(current_mouse)
|
||||||
current_mouse: int = (current_mouse + S - 1) % len(mice)
|
|
||||||
|
|
||||||
pattern: list[Mouse] = [Mouse.undefined] * (grey + white)
|
pattern: list[Mouse] = [Mouse.undefined] * (grey + white)
|
||||||
pattern[0] = Mouse.grey
|
pattern[0] = Mouse.grey
|
||||||
|
|
||||||
for i in range(grey_remaining):
|
for i in range(grey_remaining):
|
||||||
pattern[mice.pop()] = Mouse.grey
|
pattern[mice.pop(0)] = Mouse.grey
|
||||||
for i in range(white_remaining):
|
for i in range(white_remaining):
|
||||||
pattern[mice.pop()] = Mouse.white
|
pattern[mice.pop(0)] = Mouse.white
|
||||||
|
|
||||||
for i in range(grey - grey_remaining):
|
for i in range(grey - grey_remaining):
|
||||||
pattern[eaten.pop()] = Mouse.grey
|
pattern[eaten.pop(0)] = Mouse.grey
|
||||||
for i in range(white - white_remaining):
|
for i in range(white - white_remaining):
|
||||||
pattern[eaten.pop()] = Mouse.white
|
pattern[eaten.pop(0)] = Mouse.white
|
||||||
|
|
||||||
|
if len([a for a in pattern if a == Mouse.grey]) != grey or pattern[0] != Mouse.grey:
|
||||||
|
raise ValueError(f"Невозможный исход: {" ".join(map(lambda x: str(x.value), pattern))}")
|
||||||
|
|
||||||
print(*map(lambda x: x.value, pattern))
|
print(*map(lambda x: x.value, pattern))
|
||||||
|
|||||||
Reference in New Issue
Block a user