TCG で学べるかもしれないアルゴリズム
たまには予告取り下げて書いてみるです.タイトルにあります通り,TCG(トレーディングカードゲーム)って割とアルゴリズムの塊だよねみたいな話.
なにゆえいきなり TCG とか持ち出したかというと,バトルスピリッツというちびっ子に大人気なのかどうか知らないけど少なくとも新進気鋭な感じの子供向け TCG がありまして,俺が個人的に最近それを始めたからです.子供向けといいつつプレイヤースキルが即勝敗に結びつくような所があるゲームで,今のところ楽しめております.1 ゲームが MTG などと比較して短くて(ライフ 5 しかないので 5 回攻撃通したらゲームセット)さくっとやれるのも良いです.
……とバトルスピリッツの宣伝はこの辺でいいとして,例えば次のようなところがアルゴリズムチック.
スタック
なんと言ってもこれからでしょう.MTG のインスタント呪文とかに代表されるように,TCG ではよく効果の解決順を決定するときに目には見えないスタックを利用します.
これはまんま計算機科学でいうところの LIFO データ構造・入出力方式であるスタックのことで,TCG で目に見えないそれに親しんでいると,スタックに対する感覚は自然に磨かれます.しかしやはり初めて触れると難しく感じるようで,小中学生が MTG をやるとまず躓くポイントでもあったりはします(他人事ではなくて,自分も中学生のとき初めはわからなかった).
残念なことに前出のバトルスピリッツでは小中学生層をメインターゲットにするためか,スタック構造を採用してしません.インスタントタイミングらしきタイミングで呪文打てることは打てるんですが,その呪文をインタラプトしてさらに別の呪文が……ということは起こりません.打たれると都度解決されます.残念な感じです.例外はありますが.
シャッフル
カードを切る方法によって混ざり方が変わりますが,あの切り方とてもアルゴリズム的だといえます.
ヒンズーシャッフル(両手でしゃかしゃか切る日本的デフォルト)は上から n 枚をまとめて新しい配列に unshift していくアルゴリズムといえますし,ディールシャッフル(机の上にいくつか山を作るようにカードを置いていく方法)はインデクスの n を法とする剰余を使って要素をグルーピングすることの再帰でシャッフルを試みるアルゴリズム,パーフェクトシャッフル(初めに山を二等分して,1 枚ずつ噛み合わせる)なんかも同様です.
シャッフルする際にものすごくランダムにぐしゃぐしゃと混ぜることは少なく,上記したようななんらかの法則に則ってシャッフルするのが一般的で,むしろ適当にぶちまけるシャッフルよりそういうアルゴリズム的シャッフルの方が「うまい」ランダム性が保証されるような気になるのが面白いです.実際は元の並びから距離のある並びになるという意味で「混ざる」ことは混ざっても,ランダム性はいまいちなわけですが.
こういうところから,パーフェクトシャッフルを何度も繰り返すと元の並びに戻るんじゃない? なんていう興味が湧いて,入試問題になったりするんだと思います.
ソート
シャッフルに対するものとしてのソートも TCG においてはよく行うことになります.プレイ時ではなく主にコレクション時に.TCG ならではです.
計算機科学的に色々なソートアルゴリズムがありますが,TCG の整理時に人がやる操作もその中のどれかによく当てはまります.
カードの束の中から,先頭のカードをどこに入れるべきかと束の中をみていってよさげな位置に挿入する……というようなことはバブルソート的(他のカード弄らないのでちょっと違うけど)だといえますし,一番小さい数字のカードは何かな,と見てから並べていくのは選択ソート的だといえます.さらに,山が大きくて手に持ちきれないからと,それぞれの山についてまずソートするというようなことをしたとすればマージソート的,
しかし恐らく TCG 整理において一番よく使われているのはバケットソートでしょう.カードの「色」でまず山を分けることにして,一枚ずつ処理.その後それぞれの山について「コスト」で山を分けて整理,最後に「カード番号」で整理,それらを束ねればできあがり,と,これは「的」でもなく正真正銘本物のバケットソートといえます.
–
と,まだまだありますが長くなったのでこの辺にしておきます.興味ある人は他に何があるだろうかと考えてみると面白いかもしれません.
まとめると,主にカードを並べた配列を扱うのでこうしたアルゴリズムに繋がってくるわけですね.
こんなことを意識しながら TCG をプレイする気持ち悪い人間は多くないと思いますが,そうでなくても単に効率よく楽しく遊ぼうとしているだけでこうした知識が感覚として徐々に体に染みてくることはある気がします.
TV ゲームで遊んでいてもそういうことはまずないので,モノや手を使うこういう遊びの特筆するに値するメリットだと思います.
TCG に限定していえば,さらに確率計算やら色々な要素を考え合わせてのデッキ構築やらとなかなかに知的な活動を要求されるので,頭の体操にもなって一石二鳥です.
バトルスピリッツ歴史浅くてカード集め楽で安くていいですよ.……と結局バトルスピリッツの宣伝になったところで今回も終わりです.また今度.
vrotmnenogi