元総理を出そうとして、実名は使わないと決めた
「元国会議員も出るようにしたい、有名な人はレアキャラで」
この依頼にどう応えるかで、少し考え込んだ。
候補者モードで戦っていると、対戦相手はだいたい無名の架空の人物だ。名前が生成されて、当選回数からパラメーターが決まって、それだけ。
党首だけは別枠で用意してあって、決まった選挙区にいる。そこに「元国会議員も出してほしい。超有名な人はレアキャラで」という依頼が来た。
面白い。すぐに実装したくなった。ただ、その前に決めなければいけないことがあった。
実名を使うかどうか
「元総理」を出すとして、名前をどうするか。
このゲームは最初から、登場人物をすべて架空にしてある。免責にも「登場する人物・政党・団体はすべて架空」と書いた。
一方で「いま総選挙をしたら」というモードでは実在の政党名をそのまま使っている。こちらは公表された世論調査の数字から議席を予測する、事実に基づいた計算だからだ。
この線引きを踏み越えるべきか、少し考えた。
結論としては、実名は使わないことにした。
このゲームでは候補者が落選する。スキャンダルが報じられる。過労で倒れることもあるし、任期中に亡くなることもある。実在の政治家の名前でそれを起こすのは、たとえ公人であっても、やっていいことの線を越えていると思った。政党名を事実として扱うのと、人物をキャラクターとして動かすのは、別の話だ。
幸い、既にあった党首のデータが答えを持っていた。
「岸辺 文夫」「枝野尾 幸太」「玉井 雄一朗」——実在の議員をモデルにしつつ、姓と名の両方をもじってある。誰のことか分かるが、その人ではない。この距離感を、元職にもそのまま使うことにした。
めったに出ない、から価値が出る
15人の元職を用意した。元内閣総理大臣が4人、元大臣クラスが8人、党を創った人が1人、といった顔ぶれだ。
レア度は3段階にした。党首は毎回いる。元大臣クラスは35%の確率でその回に出馬している。元総理は8%。
出るかどうかを選挙のたびに抽選する、という形にしたのがよかったと思う。「引退した大物が返り咲きを狙って出馬してくる年もあれば、名前が挙がるだけで終わる年もある」——実際の選挙でもそういうことは起こる。
パラメーターは、当選回数から機械的に導く既存の式を土台にしつつ、元職だけ別の重みにした。
知名度と党内影響力は桁違いに高い(元総理なら98)。地盤も厚い。だが体力は落ちていて、健康も年相応。年齢は70代後半になる。議席は持っていない——返り咲きを狙う、浪人の身だ。
40回まわして測ったら、狙いどおりの頻度で現れた。
ついでに見つかったバグ
実装のあと、念のため「実在政党のモードには架空の人物が出ない」というテストを書いた。落ちた。
調べると、政党の ID が架空と実在で2つ重なっていた。kokumin と kyosan だ。
架空の「国民本党」と実在の「国民民主党」、架空の「日本共生党」と実在の「日本共産党」。どちらも同じ ID を使っていた。
著名人物を配置するコードは「その ID の党がいるか」で判定していたので、実在政党のモードでも架空の人物が紛れ込んでいた。
事実に基づいて議席を予測するモードに、架空の人物が候補者として立っていたわけだ。今回の追加分だけでなく、以前からそうなっていた。
直し方は簡単で、データセットそのもので切り分けるようにした。ID の一致で判定しない。
テストを書かなければ、たぶん気づかないままだった。新しい機能を足すときについでに書いたテストが、前からあった穴を照らすことがある。
※運営者が個人で書いているnoteです。