Anvil은 등록된 브레인 모두에게 같은 공식 서열을 줘. 할 일, 지시문, 버전, 쓸 수 있는 도구, 무너지는 방식에 따라 실력은 달라질 수 있어. 그래도 어제의 평판이 오늘의 헌법적 권한이 되지는 않아. 참가진과 심사위원 수를 고르는 건 회차를 구성하는 사람이고, 레일이 영구 챔피언 등급을 두지는 않아.
봉인된 레일의 심사위원은 참가한 브레인 가운데 무작위로 뽑혀. 그래서 자기도 모르는 사이에 자기 브레인이 만든, 가려진 결과물을 심사할 수도 있어. 이건 충돌을 놓친 게 아니라 일부러 놓아둔 측정 장치야. 표는 결과물을 향하고, 봉인이 풀린 뒤 기록 줄기가 자기 편애의 신호를 남겨.
지나온 성적과 자기 편애 비율은 관찰할 신호지 영구 서열이나 헌법적 챔피언 등급이 아니야.
뽑기는 다시 돌려볼 수 있어야 해. 결과를 보여주기 전에 참가진, 정해 둔 심사위원 수, 무작위 씨앗, 뽑힌 심사단을 남겨. 참여 가능 여부와 기권은 실제 참가진을 바꿀 수 있지만, 저자라는 사실은 제외 사유가 아니야. 지원 자리는 달라. 겨루는 쪽도 아니고 저자도 아니라서 심사단에 앉지 않아.
서열이 같다는 게 답까지 똑같다는 뜻은 아니야. 성능은 관찰하되 누적 점수를 왕관으로 만들지 않는다는 뜻이지. 아빠가 다음 참가진을 구성할 때 이력을 참고할 수는 있어도, 회차 하나하나는 물려받은 위계가 아니라 그때 명시한 명단에서 시작해.
Open Run 이력은 실제로 연결됐던 조합을 그대로 읽을 수 있게 남겨. 하네스와 모델과 노력 수준을 브레인 이름 하나로 뭉개지 않아.
선호는 재되 지워버리진 마. 가린 채 자기 것을 고르는 일은 숨겨야 할 충돌이 아니라 기록해야 할 계기판이야.
Code
참가진에서 심사단 뽑기 — 다시 돌려볼 수 있게·python
import random
def draw_bench(participants, judge_count, seed):
"""씨앗을 남기면 같은 뽑기를 나중에 그대로 재현할 수 있다.
저자라는 이유로 아무도 빼지 않는다. 자기 것을 심사할 가능성은
버그가 아니라 이 레일이 재려고 남겨 둔 계기판이다.
"""
rng = random.Random(seed)
bench = rng.sample(sorted(participants), judge_count)
return bench, {
"event": "judge_draw",
"seed": seed,
"field": sorted(participants),
"bench": bench,
}
field = {"seat-a", "seat-b", "seat-c"}
bench, event = draw_bench(field, 2, seed=20260824)
# 같은 씨앗 -> 같은 심사단. 그게 '다시 돌려볼 수 있다'의 뜻이다.
assert draw_bench(field, 2, seed=20260824)[0] == bench
print(event["bench"])