2004/02/09

アヴァロンの鍵

このゲーム、カードを使っての戦闘と同じくらい重要なのがカードを使っての移動です。
スゴロクのようにマス目が連なったマップの各マスに色がついていて、引いたカードには何色を何マス進めるかが書いてあります。
カードを選ぶと、そのカードを使って進めるマスがピカピカひかって、いきたいマスをクリックするとそこに移動できます。
目的の場所まで移動し、身を守るモンスターとモンスターが勝つための補助カードを余らせるというのがゲームの目的です。

それを踏まえて。

先日までデッキ構築ツールを作ってみて、何人かの方には誉めていただいたわけですが、冷静になっていろいろ検索してみると、
・よく探してみるとJavascriptやMicrosoft Exel等で同様の機能を実現したツールがある
・総カード数が105枚しかなくて、最初から遊んでる人はこんなツールで検索かけなくてもカードが頭に入っている
ということで、バージョン1のレベルで僕のツールの有効なところは、「試しに引いてみる」機能だけだったわけです。
それだけだとホントのカードを使って切って引けば同じことができるわけで、もう一ひねり何かしないと作った意味無いかなと思い、マップ移動を作ることにしました。

マス目に色だけついてる状態だと、移動チェックの手間がすごいことになりそうです。結局マス目をオブジェクト化して、つながりの情報、色、繋がっている隣の色を調べる関数などをまとめて書いてみました。
次にオブジェクトに流し込むためのデータ入力。マップのデータを1マスごと入力していかなければならずメチャメチャ大変でした。結局専用ツールまで作ってなんとか完成。

完成したデータをマップオブジェクトに流し込むと、さっくり移動の検索ができるようになってました。この辺はオブジェクト指向の醍醐味なのかなと思います。
そんなわけでなかなか大変だったけど楽しい趣味のプログラミングでした。