ソートアルゴリズムを暗記するためのゲームを作ってみた
最近、courseraでアルゴリズムを勉強していました。そのときやった練習問題の1つのタイプに「xxxソートで4回スワップした結果を書きなさい」というものがあって、これがなかなか勉強になりました。イメージができれば、コーディングはだいたいできるので、このような作業を繰り返しやれば、空で基本的なソートアルゴリズムくらいコーディングできるようになると思います。
それで、この練習問題をするとき、紙に書いてやっていくとなかなか時間がかかります。数回の操作につき1回は全ての配列の状態を書き直す必要があるからです。それで、もうちょっと気楽にポチポチとやれるものが欲しいなと思ってゲームっぽいものを作ることにしました。
それでできたのが、これです(ただしまだコマンドライン上でしか遊べない)。
ゲームっぽいところは、スコアがあるところと、ミスせずに成功した回数がコンボとして数えられるところ、コンボが続くとボーナスポイントが入るところです。普通に起動すると、Selection, Insertion, Shell, Heap, Quick, Mergeでランダムに与えられた長さ10の配列をソートすることになります。ソートし終わると、新しい配列が生成されます。
作った動機
- 紙で書くのは大変。カードでやっても良いけれどもどれくらい頑張ったか見れない
- なんらかの試験を受けるときは、暗記しないと話にならない
- なんらかのアルゴリズムを設計するとき、基本的なアルゴリズムを理解していないと話にならない
- ゲームとしても面白いんじゃないか?
- いくつかのタイプの作業を言われたり、見て瞬間的に判断してやることを繰り返すようなタイプのゲームはけっこうある