見出し画像

【人狼】競売制配役 洪牙利式 Ver.11.1(最新版)

◆概要

要約すると、少しお洒落な役職希望機能です。
詳細は後述してありますが、以下の3点は大変 重要ですので、これ(と環境ごとの諸注意)だけでも押さえておいてください。

・希望役職に最大100金を入札、落札した役職が配られる
・人外には入札額の全情報が渡される
・人外は入札額 落札額を偽る準備が要る


◆詳細

・資金

所持資金は無限です。
ただし入札上限があるので事実上 役職数x100金が総上限になります。

・入札

各PLは入札期間内に希望する「役」に入札します。
各役に最大100金まで振り込め、内訳自由です(例:狼97狂100守0占10霊99村0)
又、入札放棄もでき、その場合は全役10金の入札に自動で受理されます。

・落札

入札〆切後、GMの内部処理で落札をします。落札機序は以下の通りです。
端的に言えば「落札総額が最も高くなるように」落札していまして、基本は目算で導きます。
目算で判断が難しい場合や検算には以下のハンガリアンアルゴリズムを弄ったものを用いて導きます。
落札結果はGMから個別に渡します。

①変換→②初期加工→③割当→⑥復元と落札
↗  ↓    
⑤追加加工←④追加加工準備

①変換
全ての入札額を100から引いた値に換える。(例:69金→31)
この際、複数枚ある役職は枚数分の行を設ける。
以下、一役職から見た入札群を「行」、1PLから見た入札群を「列」と表す。

②初期加工
各行の最小値を その行内の各値から引く。
更に、各列の最小値を その列内の各値から引く。

③割り当て
全ての列に対して抜けなく被りなく割り当てられる0の行があるかを見る。(つまり全てのPLに配れる役職が抜け被りなく あるかを見る)
ある→⑥/ない→④

④追加加工準備
行/列内に(まだ塗っていない)0をより多く持つ行/列を線で塗る。これを塗っていない0が複数個ある行/列がなくなるまで繰り返す。
更に、まだ塗られていない0があれば(線ではなく)その0のみ塗る。

⑤追加加工
塗られていない値の中の最小値(※)を それらの各値から引く。
更に、行 列とも重ねて塗られている各値に同じ値(※)を加える。
そして塗りを外す。→③

⑥復元と落札
値を元の入札額に戻し、割り当てる。
割り当ての組み合わせがいくつかあるならば、合計入札額が高いPLの落札額が高くなる選択肢を優先する。
それもいくつかあるならば、入札額の高い役職(つまり人気の役職)の落札額が高くなる選択肢を優先する。
それもいくつかあるならば、乱数で決める。

以下に競売例を挙げます。

今回は9=2狼狂+守占霊3村 を想定

①変換
全ての入札額を100から引いた値に換える。(例:69金→31)
この際、複数枚ある役職は枚数分の行を設ける。
以下、一役職から見た入札群を「行」、1PLから見た入札群を「列」と表す。

②初期加工
各行の最小値を その行内の各値から引く。
更に、各列の最小値を その列内の各値から引く。

行はどの行にも0があったため加工なし。
列はセリーヌ列-51、エミネム列-10、グラハム列-50、イザベル列-51 しました。

③割り当て
全ての列に対して抜けなく被りなく割り当てられる0の行があるかを見る。(つまり全てのPLに配れる役職が抜け被りなく あるかを見る)
ある→⑥/ない→④

守の割当ができません。完全割当ができないため、追加加工へ。

④追加加工準備
行/列内に(まだ塗っていない)0をより多く持つ行/列を線で塗る。
これを塗っていない0が複数個ある行/列がなくなるまで繰り返す。
更に、まだ塗られていない0があれば(線ではなく)その0のみ塗る。

塗ってない0を多く持つ行/列から塗ります。同数なら同時に塗ります。
最後、狂セリーヌの0の行/列に他の0がないため単一で塗りました。

⑤追加加工
塗られていない値の中の最小値(※)を それらの各値から引く。
更に、行 列とも重ねて塗られている各値に同じ値(※)を加える。
そして塗りを外す。→③

塗っていない領域を-14し、重ね塗り領域に+14しました。
これにより狼セリーヌに新しく0ができ、逆に守グラハムと守イザベルの0が消えました。

③割り当て
全ての列に対して抜けなく被りなく割り当てられる0の行があるかを見る。(つまり全てのPLに配れる役職が抜け被りなく あるかを見る)
ある→⑥/ない→④


再び割当を試みますが、まだ守の割当ができません。完全割当ができないため、また追加加工へ。

……③割当→④追加加工準備→⑤追加加工→③割当→…を繰り返し…

完全割当ができるようになりました。
割当が1:1対応で確定している役職とPLは赤で示しています。
黄で示したのは割当の選択肢がいくつかある役職とPLです。

⑥復元と落札
値を元の入札額に戻し、割り当てる。
割り当ての組み合わせがいくつかあるならば、合計入札額が高いPLの落札額が高くなる選択肢を優先する。
それもいくつかあるならば、入札額の高い役職(つまり人気の役職)の落札額が高くなる選択肢を優先する。
それもいくつかあるならば、乱数で決める。

選択割当の中で「合計入札額の高いPL」の額が高くなるようにします。
これは差がなかったので、「人気役職」の額が高くなるようにします。
結果、狼>占>霊の人気順に高くなるように振り分けました。

以上が競売の一例です。
実際にハンガリアンアルゴリズムモドキで落札してみましたが、今回の例は目算で充分に導けます。


・配役と偽装 ←超重要

落札結果がそのまま配役となります。
この際、人外には配役と一緒に入札額の全情報を渡します。←超重要

人外には役を騙る際、その役に合わせて入札額 落札額も騙る必要ある場面があり、これを騙り損ねると疑われる危険があります。

これを防ぐため、騙る額は弄ってください。
具体的な額はありませんが、①騙る役の偽装額は高く②それ以外の役は低く③合計額は高くするのが良いです。
①≧③>②の気持ちで割り振ってください。
対抗より高い必要は特にありませんし、極論、額面がおかしくても破綻することはありません。

・進行

進行中の発言推理利用を許可します。(推奨も禁止もしません)
配役前に入札 希望役職に関する発言は禁止とします。致した場合は村から除きます。

競売制配役の仕様は以上です。
以下は私が建村 営村する各環境での運用上の諸注意。

◆環境ごとの諸仕様

ここからは競売制の機能システムを踏まえた上での各建村環境ごとの諸仕様 諸注意です。

・BBS長期村

競売は秘話を通じて執り行います。
GMの競売処理とは別に独立してサーバがシステム稼動しているため、落札=配役ではありません。ですので…
・申請:入札期間は48H内に秘話で申請
・設定:落札結果を受けたら「希望する能力」を その役職に設定
・確認:実配役後に落札役と誤りがないか確認し、誤っていたら至急連絡

これら3つは遵守 願います。

・Discord長期村

競売は小箱を通じて執り行います。入札期間48H内に小箱で申請してください。
落札通知がそのまま配役通知となります。配役に伴って内通の窓がある役職はそこへ通されます。

・対面村

0夜目に直に配役をし、これが落札通知となります。
又、この0夜目に人外へ渡す額情報が一度だけ確認できます。
その際に騙る額面を考えてもらいますが、正直 対面村では落札額の整合を議論時間内で確認するのは無理があるため、それっぽい額面を堂々と偽ることができれば問題はありません。

▲▲▲▲


この記事が気に入ったらサポートをしてみませんか?