ストップウォッチゲームを作ってみた
ストップウォッチゲームをTypeScriptの練習として作ってみました。
npx 334-stopwatch-game
で実行できます
実行するとカレントディレクトリにjsonファイルが生成されるので注意
正直、大したこと無いゲームですが、思いの外考えることが多くて楽しかったです。 ゲームロジックが3, 4行なのに対してスコアの保存やスコアの表示、ゲームの起動などに何十倍も処理が書かれていて、 果たして自分は何を書いているんだ…。という気持ちになりましたが、そんなものでしょう。
本当はデータの永続化をaws lambdaとファイルの二種類にしてユーザが自由に選べるようにしたかったんですが、 aws lambdaがわからなすぎてモチベが無くなり、諦めました。今後の課題にします。
だいたい学んだこととしては、
- 責務の分割
- Interfaceを実装して動的にロジックを切り替える手法(Strategyパターン)
- 浮動小数点同士の計算
- staticファクトリメソッドによるオブジェクトの生成
- JSONファイルにおける配列の保存方法
- node.jsのエラー処理
- TypeScriptの型の書き方
- 軽量DDDもどきでの保存ロジック
- node.jsのファイルシステム
- inquirerの使い方
- npm publishの行い方
ショボい何の目的もないアプリケーションでも作ってみたら結構勉強になりますね。
TypeScriptがかなり好きで、大分慣れてきたので、もう少しこんなふうに小さいアプリケーションを何個か作ってみたいです。