『完全なるチェックメイト』(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
コメント