Acme::Pokemon

tomi-ru
2010-12-02

こんにちはトミールです。

とつぜんですがわたくしポケモンが大好きです(°∀°) 年齢的にポケモン世代をややずれてるためかポケモン友達まわりに数えるほどしかいないのですが、リアルタイムでやったんじゃなく、まえ小学生に勉強教える仕事してた時期に逆に教え込まれファンになったっていうパターンです。

大人がやるとポケモン、ほかのRPGと比べてあれ?これでいいの?みたいな簡単さとかご都合主義的なのがあってウケます。ポケモンセンターでは無償で全回復できたり。道路の名前が1番から始まる通し番号だったり。(まあおかげで今何番道路にいるのか聞けばゲームの進捗がわかるという。

それでもおもしろいのは、クリアの方法が千差万別ってところですね。好きなポケモンみつけてパーティを組むのですが、最大6匹もてる手持ちポケモン、数百匹いるポケモンからどの組み合わせで選んでもいい。しかも同じポケモンでも育て方によって変わってくるので、プレイする人がみんな独自のパーティでゲームクリアするのがいいところですね。ドラクエでもたまに全部遊び人でクリアする、とかやる人いますけど、どのポケモンをつれて歩いてるかが人それぞれでおもしろいです。タイプとか技の組み合わせでこんなこともできるみたい。

あとやっぱり名前をつけて連れてるとかわいい(* ̄∀ ̄*)! BWは、東京メトロに乗ってるときだけ進めるしばりですすめてるんだけどぼくが連れてるポケモンはこんな感じです。

今回BWで出てきたポケモンで特にお気に入りなのは「シャンデラ」ですね。これもともとロウソクのポケモンなんだけど、進化するとランプになって、最後シャンデリアポケモンになるという驚きだけどなっとくの進化がいい! ほのお+ゴーストタイプなので「だいもんじ」も「シャドーボール」もおぼえます! 同様の理由でポケモン ルビー・サファイアの時は「ダーテング」が好きでした。これ最初ドングリポケモンなんだけど、進化して木になるんじゃなく、足生えて鼻のびて天狗ポケモンになるというちょっとイカした進化がかっこいい! くさ単体じゃなくて悪なのも使えます。

みんなもポケモンやるといいよ!

以上です。


...って、perlの話!

そんなポケモン好きが高じて、Acme::Pokemonというの作りました。これはポケモンを表すクラスで、Acme::Pokedex(Pokedex=ポケモン図鑑)から取得します。

use Acme::Pokedex;

# 全国図鑑番号25を取得
my $pokemon = Acme::Pokedex->lookup(id => 25);

$pokemon->name; # ピカチュウ
$pokemon->type; # ['Electric']

$pokemon->id;  # 25    - 全国図鑑No.
$pokemon->kid; # 25    - カントー図鑑No.
$pokemon->jid; # 22    - ジョウト図鑑No.
$pokemon->hid; # 156   - ホウエン図鑑No.
$pokemon->sid; # 104   - シンオウ図鑑No.
$pokemon->iid; # undef - イッシュ図鑑No.

今の所できるのはこれだけです。名前が現在日本語名を返すだけですが、各国の言語に対応させたらCPANにUPするかもしれません。

上のサンプルでもわかるとおり、ポケモンって例えば同じピカチュウでも図鑑によって番号が違ったりするので意外と役に立つモジュールとなるかもしれません(んなわけないかw)。

これ実は今すすめているとある原稿の中で、例えばテスト系モジュールの使い方書くときのサンプルでなんか適当なクラスが必要になって書いたものなのです。こんな機会もないとスポットライト浴びませんので出してみました。

使いたいという変な人は以下のようにしてインストールできます。

> wget -OAcme-Pokemon.tgz https://github.com/tomi-ru/Acme-Pokemon/tarball/master
> cpanm Acme-Pokemon.tgz

CPANにはすでにポケモン関係のモジュールが1つありました。やはりAcmeなのですが、Acme::MetaSyntacticという適当な名前をつくってくれるやつのバリエーションとしてポケモンの名前を使うAcme::MetaSyntactic::pokemonというものです。

みんなもポケモンやるといいよ!


さて明日は日本最多のacmelist、Yappoさんです。