『完全なるチェックメイト』(Pawn Sacrifice)(2014)
アメリカの天才ボビー・フィッシャーの伝記映画です。幼少の頃からロシアの天才ボリス・スパスキーの対戦までが描かれています。
タイトルの『完全なるチェックメイト』とは、きっとスパスキーとの対戦の見事な指し手のことだと思いますが、劇中で、負けを認識したスパスキーが、立ち上がって拍手を始めるシーンが感動的でした。映画の中のセリフで、「全ては理論と記憶なんだよ」という言葉が、やはり棋譜ってことだな、と私も棋譜を覚えようとモチベーションが上がるのでした。
「オセロを将棋にすり替える」と同じ要領です。チェス盤は、市松模様になるので、ひと工夫加えます。
まずはTcl/Tkスクリプトから修正します。市松模様(チェック柄)を指定された時は、黒と白を交互に配列に入れておきます。(52行目〜)
それ以外の色の場合は、配列へ同じ色を設定しておきます。
50 for {set i 1} {$i <= $xmax} {incr i} {
51 for {set j 1} {$j <= $ymax} {incr j} {
52 if { $color == "check" } {
53 if { [expr ($i + $j) % 2] == 0 } {
54 set bgcolor($i$j) black
55 } else {
56 set bgcolor($i$j) white
57 }
58 } else {
59 set bgcolor($i$j) $color
60 }
61 button .b$i$j -font {FreeMono 40 bold} -bg $bgcolor($i$j) -activebackground yellow -activeforeground red
実行してみましょう。
takk@deb83:~$ git clone https://github.com/takkete/scrap.git takk@deb83:~/scrap$ gcc -DCHESS game.c takk@deb83:~/scrap$ wish gameboard.tcl

コンパイルオプションを変えることで、他のゲームボードに早変わりします。
takk@deb83:~/scrap$ gcc -DSHOGI game.c takk@deb83:~/scrap$ gcc -DREVERSI game.c

コメント