ハムの記憶
ハム将棋のドメインが消えた。
ハム将棋のことを知ったのは、確か、将棋連盟の『ご主人様、王手です』を見たときだったような記憶があるが、定かではない。その頃の私はまだハム将棋にまるで歯が立たなかった。ハム将棋に勝つために棋書を買ったりプロの将棋を観戦したりして、ハムと互角くらいになった。私は人間と指さずにひたすらハムと指していたのだった。
その後、江東区にあった将棋センターで将棋を指したり、ねこまどの将棋カフェで将棋を指したり、江古田のお好み焼き屋で将棋を指したりした。対人戦も勝ったり負けたりであったが、ハム将棋に鍛えられたおかげか、それほどひどい負け方はしなかった気がする。対人戦で何勝かできたのは、ハムのおかげである。
そんなかたわら、書店でふと見かけた『Java将棋のアルゴリズム』(https://www.amazon.co.jp/dp/477751241X)がきっかけでソフトを作ってみたりもしたが、私のソフトは強くなかった。むしろ、この本で学んだことは、「それなりの大きさのプログラムの書き方」であった。分かりやすいところから少しずつコードを書いていって、少しずつ規模を大きくしていく、というプログラミングの基礎である。
そうこうしているうちにとあるきっかけがあり、私も初心者に負けるソフトが書きたいなと思った。ハム将棋の下位バージョンである。FlashとJava AppletとJavaScriptで悩んだ挙句、一番長生きする気がしたJavaScriptを採用した。そして『こまお』(こまお)を作って公開した。
こまおを作って最も嬉しかった瞬間は、ハム将棋からリンクが張られていたのを発見したときである。高嶺の花のアイドルからバレンタインデイにチョコレートをもらった気分であった。私は数式や学術的な何かで褒められることはあったが、プログラミングには苦手意識があった。こんなスクリプトでリンクをもらってしまっていいのかなあとか思った。でも、ハムがくれたリンクはいつまでも消えなかった。ああ、こまおでもいいんだなあと思った。ハムは心のよりどころであった。
そんなハムが消えた。
今、囲碁マンガの『ヒカルの碁』の藤原佐為が消えた瞬間のヒカルの気持である。私にとっての将棋は、ハムが50%くらいを占めていたんだなあと。
MATLABで行列
MATLABといえば行列計算である。単なる二次元配列ではなく、MATLABにおいて変数といえば基本的に行列である。
行列の生成はこんな感じである。
a = [0, -1; 1, 2] b = [1, 2; 3, 5]
これで以下のような行列が生成される。
a = 0 -1 1 2 b = 1 2 3 5
足し算はこんな感じである。
a + b ans = 1 1 4 7
かけ算は、高校で習ったあの行列の積となる。
a * b ans = -3 -5 7 12
要素ごとのかけ算もできる。
a .* b ans = 0 -2 3 10
逆行列はこうなる。
inv(b) ans = -5.0000 2.0000 3.0000 -1.0000
aとbの積に、さらにbの逆行列をかけると、
a * b * inv(b) ans = -0.0000 -1.0000 1.0000 2.0000
aに戻る。
計算終了
さきほど、ずっと走らせていたプログラムがやっと計算を終えた。いつから走らせていたかを確認してみたら、10月18日ごろだった。長い道のりであった。
そしてこれから時間をかけてそのプログラムの計算結果を読み解いていくのである。
とりあえず、パソコンのファンがうるさい状況から逃れることができる。めでたい。