読者です 読者をやめる 読者になる 読者になる

初代Masteries

きっとモヒカンにもなれないお前たちに告げる!!!

Perl鍋でAcme::VividredOperationというモジュールを書いた.

えー, 皆さん. ビビッドレッド・オペレーション見てますか? 私は見て... 見てました.
ちゃうねん, 就活が忙しくて6話から消化できてへんねん...!

まあそれはさておき, Perlを介してビビッドレッド・オペレーションの世界を体験できる(?), Acme::VividredOperationというモジュールをPerl鍋で鍋をつつきつつ書いてみました.

建前としては, Mooを使っていろいろ書いてみよう! という感じです.
日頃, MooなりMouseなりをあんまり使わないので, それに慣れておこうというのもあります.

実装にあたっては, @__kanさんのAcme::PrettyCureを参考にさせて頂きました.
というかAcme::PrettyCure, かなり細かい所まで実装してあって関心していました.
これが... 愛というやつですね...!

で, Acme::VividredOperationを使うと, こんな事ができます.

use strict;
use warnings;
use utf8;

use Acme::VividredOperation;
use Encode;

# 各キャラのメソッドを持ってくる.
my $akane    = Acme::VividredOperation::heroine('IsshikiAkane');
my $aoi      = Acme::VividredOperation::heroine('FutabaAoi');
my $wakaba   = Acme::VividredOperation::heroine('SaegusaWakaba');
my $himawari = Acme::VividredOperation::heroine('ShinomiyaHimawari');

# まだ変身していないので武器は持っていない.
print "weapon:" . encode_utf8($akane->weapon) . "\n"; 

# 変身! 変身!
$akane->transform;
$aoi->transform;
$wakaba->transform;
$himawari->transform;

print "weapon: " . encode_utf8($akane->weapon) . "\n";

$akane->docking($aoi);

# あおいとドッキングしたので武器が変わる.
print "weapon: " . encode_utf8($akane->weapon) . "\n";

$akane->release;

# ドッキングを解除, 武器が元に戻る.
print "weapon: " . encode_utf8($akane->weapon) . "\n";

$akane->docking($himawari);

# ひまわりちゃんとドッキングしたので武器が変わる.
print "weapon: " . encode_utf8($akane->weapon) . "\n";

実行すると, こんな感じになります.

f:id:papix:20130315030406p:plain

綺麗ですね!

ちなみに, 2回変身しようとすると怒られますし,

my $akane = Acme::VividredOperation::heroine('IsshikiAkane');
$akane->transform;
$akane->transform; # error!

ドッキング中に更にドッキングしようとすると, 怒られます.

my $akane  = Acme::VividredOperation::heroine('IsshikiAkane');
my $aoi    = Acme::VividredOperation::heroine('FutabaAoi');
my $wakaba = Acme::VividredOperation::heroine('SaegusaWakaba');

$akane->docking($aoi);
$akane->docking($wakaba); # error!

もちろん, あかね以外はdockingメソッドを持ちません.

my $akane = Acme::VividredOperation::heroine('IsshikiAkane');
my $aoi   = Acme::VividredOperation::heroine('FutabaAoi');

$aoi->docking($akane); # error!

ご覧の通り誰も得しないモジュールですが, もう少しコードを整理した上でgithubで公開しようと思っています.
みんなでpull requestの練習だー!!!



...あ, そうそう. Perl鍋はとてもよいイベントでしたよ.
お鍋めちゃくちゃ美味しかったです!

Perl鍋 #4は4月18日開催らしいので, 皆さんも是非行きましょう!

オチ

自宅が大阪と奈良の県境の大阪側にあるのですが, 目が覚めたら県境を越えた奈良県側の最初の駅にいまして.
既に大阪方面行きの終電は出発した後で, 路頭に迷いそうになったのですが, 地元の友人を車で緊急召喚して難を逃れました.

なお, 正確に言えば所持金は約600円でしたが, まあ200円も600円も大差ないよな. うん.
明日九州遠征に出発するので, その前に軍資金を下ろせばいいや... と思っていたのが仇となりましたね...