買った. 普通に遊べるものから, 一度やったら満足して二度とプレイしないようなゲームまでが収録されている.
一つが "ウサギと猟犬" というやつで, ウサギ陣営と猟犬陣営に分かれて二人でやる完全情報組み合わせゲームなのだが, 初期配置にもよるけど十中八九ウサギが勝つようになっている. これを収録する意味とは?
英語だと "Hare and Hounds" とか "Hare Games" とか言うらしい.
だいぶソースコードが汚くなってしまった. 毎回 3 手先までは真面目に読むということを再帰でさせるのだが, 同じ局面が何度も出現しうるゲームなので, 簡単に無限ループに入ってしまって, 上手に書けなかった. 3手先以降はもうランダムに打って場面を評価させるようにした. 普通に最善であるだろう手を打てるようになった.
"コネクトフォー" ("重力付き四目並べ") というゲームが収録されている. 大昔に親に買ってもらって遊んだ記憶がある. 先手必勝であることが証明済みらしいが, 人間にとって全然楽しい.
こちらはさっきのゲームと違って, 同じ局面は登場しないで一方向に進むだけだし, 毎回打てる手はたかだか 7 通り(どの列にコインを入れるか)しかないので, AI はどうやっても書ける.
これは局面の読みに再帰も使わずに, 二手先(自分が打って, 相手が打った後の局面)までを読んで局面の評価を min-max させる. 局面の評価は, ランダムにプレイさせて自分が勝つ回数を使って勝つ確率を推定させてそれを使った. ここの試行回数が露骨にAIの強さに反映される. 300 回程度以上からはあんまり上がらない.
2つ AI を書いたけど, どっちも局面を与えたら最善の手を打った後の局面を返すだけのプログラムとして書いた. UNIX 的なあるいはプロコン的な UI なのでAI部分を書くのだけに集中できて便利.
Codeforces で "Microsoft Q# Coding Contest" というのが今日から三日間やっていて (今回のはあくまで Warm up という位置づけ), 気まぐれで参加してみた. 名前の通り Q# 限定のコンテストで, Q# を学ぶ必要がある. しかしこの言語, ドキュメントがあまりに不足していて辛い. さっさと全問通してしまってる人たちは Microsoft の Quantum チームの人たちじゃないのだろうか?
何を思想的と思い, 何は思想的でないと思うのだろうか. また思想的でないものを我々はなんと呼ぶべきだろうか.
人によってたやすく公理が違うときがある. その公理系と直結する定理群を思想と呼ぶ. 例えば社会主義思想はそれを支える考え(土地は国が所有すべき, 職業は国がコントロールすべき)は正しいと仮定して話を進める. その正しさをサポートするエピソードをたくさん用意しているだろうが, 別にその正しさとは独立だ. その仮定は簡単に他に移住することが出来る.
人の思想に踏み込むのは危険で, 例えば今からラーメン屋に行く人に対して, 自分がダイエットしてるからとかという理由で, その人に他を薦めるのはいい迷惑だ. 人はダイエットすべきというのはあなたの思想であり, 彼には彼の思想がある.
主観的なものをカッコよく思想と呼んでるのかもしれない. だとすれば客観的な事実を述べるのは思想ではないということになる.
好き嫌いは人によってたやすく変わる. 目の前に出された納豆で喜ぶ人もいれば悲しむ人もいる. 人に押し付けてはならない.
感情は社会的なものから本能のものまである. 本能のものとは, 死を恐れる感情などだ. 例えば, 東京タワーとかにある, 足元がガラス張りの床の上に立つスリルを提供するあれがある. あれが割と平気な人もいれば, 絶対無理な人もいる. 後者にとってはそれはまさに死への恐怖だから, それは自然な感情だ. だからお前もそんなところに立つな, と人に警告するのは思想の押し付けに当たる.
理性的な態度は賢さであり, 感情の対極であり, 美徳だと思われる. しかしこれも思想だ. 共産主義者宣言はまさか一時の感情をぶつけてかきあげた文章ではない. あれは理性の塊であるし, 思想の塊でもある.
円周率はいくらです, という宣言に主観性はなさそうに思える. 思想的と呼べる隙も全くなさそうに見える.
私はりんごが好きです, という宣言にも主観性がないと言える. 実際にりんごが好きなのであれば揺るぎない事実である. 仮にその私をAさんと呼ぶ. 誰が「Aさんはりんごが好きだ」と言っても常に事実でありえるなら, どこに主観性があるだろうか.
しかしその話題はとても主観的だ. 嫌いな人もいる, という一般化をすることもできるからだ. その一般化に意義があるかどうかは置いておいて.
それで, これは思想なのか?