2016-01-14 Terminal で動く FreeCell をつくった
2016-01-11 につくった bouzuya/freecell のことを書く。
bouzuya/freecell は Terminal で動く FreeCell 。 4 つの free cell を使って配置されたすべての card を home cell に片付ける 1 人遊び。 Windows に標準搭載されているものだ。いまはどうだか知らないけれど……。
今回の目的は、特にない。しいて挙げるなら TypeScript の練習だろう。 Windows 10 の upgrade をしつこく要求されており、その待ち時間に FreeCell を遊んだら楽しかったので衝動的につくった。「思ったことをすぐかたちのあるものにできる人」は 2016 の goal なので問題ないだろう。
実装は Node.js + TypeScript + Babel 。いつもどおりの構成だ。特別な点として今回は mocha + power-assert を追加して unit testing を考慮した。
TypeScript → es2015 → es5 と変換する。src/
および test/
は次のように変換される。
src/
は.tmp/src/
(ts → es2015) を経てlib/
(es2015 → es5)test/
は.tmp/test/
(ts → es2015)
.tmp/test
からは espower-babel で es2015 -> es5 変換と power-assert 変換を兼ねている。詳細は以下を参照してほしい。
(いま気づいたのだけど espower-babel-loader の pattern が間違っているのになぜか動いている……)
TypeScript は CoffeeScript に比べると function({});
のような閉じ括弧が多いうえ、mocha は arrow function
を使わないほうがいいのでつらい。今日び this
で context 共有って……と思われるかもしれないけれど、mocha はそこそこ古いので仕方ない。
ひとまず TypeScript でも mocha を利用できると確認できたのは良かった。
もうすこし改良するとともに Web 向けの View を追加したい。