ワンナイト人狼の基本戦略
ワンナイト人狼とは
ワンナイト人狼は一夜で決着が着く人狼(ジャンルとしては多人数推理ゲーム)。
ワンナイト人狼のルール
ゲームは3~5人向けだが、今回は4人でプレイするとして解説をする。
初めに6枚のカードを用意する。
内訳は「人狼2枚、村人2枚、占い師1枚、怪盗1枚」
1. 6枚のカードをよく混ぜ、一人1枚ずつカードを配る。余った2枚は中央に伏せる。
2. 各自、自分のカード(役職)を確認後、全員が顔を伏せる。
3. 占い師のターン: 占い師は以下のいずれかの行動を起こす。 A)自分以外の3人のカードのうち1枚のカードを確認する B)中央の2枚のカードを確認する
4. 人狼のターン: 人狼は顔を上げ、仲間を確認する。
5. 怪盗のターン: 怪盗は自分以外の3枚のカードのうち1枚と自分のカードを交換する。交換後、交換したカードが何の役職であるかを確認する。
6. 全員が顔を上げ、規定の時間話し合いを行う。
7. 1人ずつ、処刑したい人を選び全員で投票を行う。投票は自分には出来ない。
8. 投票の結果、最多票で2票以上を獲得した人(複数人いれば全員)を処刑し、勝敗の判定を行う。
勝利条件:
基本戦略
基本的には、「村人っぽい」発言をしていると村人から信頼される可能性が高くなる。
ワンナイト人狼ではほぼ村人の投票で勝敗が決するので、村人は正しい人にいれること、非村人は村人から信頼を得ることが非常に重要です。
人狼の場合
二人人狼の場合
ABCDの4人の村で、AとBが二人人狼とする。このときとれる戦略としては以下の2つが簡単だが、圧倒的に(1)の方が勝ちやすい。
(1) Aが占い師を騙り、Bが村人を騙る。C=真占がいる場合は、Bが上手くDを誘導し、A→C、C→A、B→A、D→Cの投票にさせてBが裏切ればよい。Aの占いの内容は「中央の2枚を見て1枚人狼だった」が無難だが、「Bが村人」でもよい(ただしこれはグルを疑われやすい)。適当な人への村人認定は、認定する相手が占い師だと詰むので注意。
(2) AとBは平和村になるように騙りをする。占い師や怪盗がでなければAとBで騙る。ただし、白怪盗や占い師が潜伏している場合は平和村を扇動すると非常に怪しまれるので、その場合は(1)のパターンに持ち込む必要が出るかも。
占い師の場合
基本的には1でよいが、対抗占いも怪盗も出ない場合は2でも可。
(1) 本当のことを言う。
(2) 占った結果を偽って報告する(中央の2枚を見て、誰かを人狼認定する等)。この場合も疑われれば自分と誰かの両吊りを提案すれば良い。占い師も村人同様情報がないと詰むので、人狼側から情報が出やすくなるように誘導することは有効。
村人の場合
ワンナイト人狼では村人の騙りがOKとなっているので、これを有効に使う。
村人にとっては、「何も情報がない」ことが最も危険な状況である。
(1) 普通に推理する。情報が出ない(しばらく待っても怪盗・占い師が出ない)場合は(2)も有効。
(2) 占い師を騙り、人狼に関する情報を出す(人狼はn枚ある、この人が人狼etc)。対抗が出れば素直に本当のことを言って、怪しい人物と両吊りにしてもらう。
怪盗の場合
白怪盗の場合
白怪盗というのは、村人サイドのカードと入れ替えた怪盗の場合。
この場合は戦略などなく、正直に情報を出すのが一番。
Linuxで音声読み上げ
ゆっくりしていってね!
棒読みちゃん
- http://chi.usamimi.info/Program/Application/BouyomiChan/
- 環境は
wine 1.6.2, Bouyomichan 0.1.11.0 (beta 16)
- wineを32bit環境で動かすことと、.NET framworkをwinetricksで入れておくこと
- mscoree.dllに関するエラーが出たので, winecfgのライブラリからmscoree.dllに関する項目を削除したら上手く動いた
- Mecabが入ってなければ入れる(公式サイトからwindows用のexeを落としてきてインストールする)
- http://pokotsun.mydns.jp/?p=3541 などを参考に
# ~/.wine32に32bit環境のprefixを作っておく ~$ WINEPREFIX=~/.wine32 WINEARCH=win32 wine BouyomiChan.exe
SofTalk
- http://www35.atwiki.jp/softalk/pages/1.html
- 上手く動かなかった(けど、あんまり頑張ってないので動くかもしれない)
AquesTalk
- http://masarakki.github.io/blog/2012/10/07/make-yukkuri-to-use-accent/ リポジトリがあるけど使い方不明
- http://www.infiniteloop.co.jp/blog/2013/02/yukkuritalk/
- http://xanxys.hatenablog.jp/entry/20100116/1263608651 などを参考に
Open JTalk
Open JTalk
- demo: http://open-jtalk.sp.nitech.ac.jp/index.php
open-jtalk, open-jtalk-mecab-naist-jdic, hts-voice-nitech-jp-atr503-m001, mecab
が入っていれば動く- 最近open-jtalkのオプション変わったらしくて、指定するオプションかなり減ったみたい(pdfとかwinとかいうファイルを指定しなくてよくなった)
- http://brokendish.org/ubuntu/3100/
- http://tips.hecomi.com/entry/20120221/1329838707
- http://aidiary.hatenablog.com/entry/20131006/1381061297 などを参考に
#!/bin/sh VOICE=/usr/share/hts-voice/nitech-jp-atr503-m001/nitech_jp_atr503_m001.htsvoice echo $1 | open_jtalk \ -m ${2:-$VOICE} \ -x /var/lib/mecab/dic/open-jtalk/naist-jdic \ -ow $3 \ -ot $4
を保存して実行するといける
-ow
は出力するwavファイル名,-ot
はログ
MMDAgent メイちゃん
- http://www.mmdagent.jp/の"Sample Script"のbinary packageをダウンロードし、Voiceの中にあるhtsvoiceファイルを使う
open_jtalk -m /path/to/mei_hoge.htsvoice
でOK- 割とハキハキしゃべってくれる
他の声
- http://akihiro0105.blog55.fc2.com/blog-category-10.html
- 上のサイトにhtsvoiceファイルがいっぱい置いてあるので使える
Grothendieck群とBurnside環の定義
という論文で、Burnside環という環を扱っていた.定義は「局所有限トポスの同型類から得られるGrothendieck ring」らしく, これではよく分からなかったので調べた.
Grothendieck群
Grothendieck群は可換モノイドから作るAbel群のことで, しかもこの構成はfree functor \(\mathbf{CMon} \to \mathbf{Ab}\)を与えるらしい.\(\mathbb{N}\)から\(\mathbb{Z}\)を作るのと同じ方法で, 可換モノイド\(A\)に対し\(A \times A \)に同値関係を\((a,b) \sim (a',b') \iff \exists k : a + b' + k = a' + b + k\)で定めるとこれは群になる.この群をGrothendieck群という.
ToposとGrothendieck環
Toposはlimit, colimitを持つので\(0,1,+,\times\)があって欲しい性質は大体満たしている. (可換半環になっている)ここから環を作るには和に関して可換モノイドを群に拡張してやればよく, 構成は大体上と同じ方法でできる.
Topos \(\mathcal{E}\)に対し, その同型類\(\mathcal{E}/\cong\)を考える. 上と同じ方法によって, \(\mathcal{E}/\cong \times \mathcal{E}/\cong\) (Toposの同型類の2つ組全体)は群になる. \(\mathcal{E}\)にもともと備わっているproductと合わせてこれは環になる.今の場合こうやって得た環をBurnside環と言うらしい.
気になったこととして和と積の分配則ってToposだと成り立つんだっけ?とか思った.よく考えれば(coproductをもつ)CCCでは直積はexponentialの左随伴なのでcolimitを保つのですぐ言える.初め\(A \times (B + C) \cong A \times B + A \times C \)の間の同型射を具体的に構成しようとしたら右から左が作れなくてつらかった.調べたら, 直接的な構成もできるみたいだけどexponentialの方にもっていったりしないといけないらしく大変そうだった.cf. Cartesian closed categories are distributive
Grothendieck群は加群の完全列を使っても定義できるらしい.つまり, 加群の同型類全体を考えて, ここに関係式を\(0 \to A \to B \to C \to 0\)が完全 iff \([A] - [B] + [C] = 0\)で定める. するとこれもAbel群になるというもの. 大体同じことがAbel圏とか三角圏でもできる.
WikipediaによるとGrothendieck群はK-theoryで重要らしい.そ, そうなのかー.