Hatena::Groupasakura

浅倉卓司@blog風味? このページをアンテナに追加 RSSフィード

Error : RSSが取得できませんでした。

2009-10-10(Sat)

RPGのルールでMooseを学んでみる。「その1:キャラ名を決めよう」

|  RPGのルールでMooseを学んでみる。「その1:キャラ名を決めよう」 - 浅倉卓司@blog風味? を含むブックマーク  RPGのルールでMooseを学んでみる。「その1:キャラ名を決めよう」 - 浅倉卓司@blog風味? のブックマークコメント

 RPGといったらまずはキャラクターメイキングです。

 キャラクターメイクといったらまずはキャラ名の決定です。

 ――というわけでキャラクター名を定義してみた。

package TG::PC;
use utf8;
use Any::Moose;

has personalname => (
    is  => 'ro',
    isa => 'Str',
);

has familyname => (
    is  => 'ro',
    isa => 'Str',
);

has nickname => (
    is  => 'ro',
    isa => 'Str',
);

has nameorder => (
    is  => 'ro',
    isa => 'Bool',
);

sub fullname {
    my $self = shift;
    $self->nameorder?
        $self->familyname . $self->personalname:
        $self->personalname . '・' . $self->familyname;
}

 firstname / lastnameじゃないのはフルネームの表記に「姓名」「名・姓」を選べるようにしたかったから。

 あ、fullnameのところは

has fullname => (
    is  => 'ro',
    lazy => 1,
    builder => '_build_fullname',
);
sub _build_fullname {
    my $self = shift;
    $self->nameorder?
        $self->familyname . $self->personalname:
        $self->personalname . '・' . $self->familyname;
};

――のようにしたほうがMooseっぽいのかな?

トラックバック - http://asakura.g.hatena.ne.jp/asakura-t/20091010
2004 | 01 | 02 | 03 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 08 | 09 | 10 | 11 | 12 |
2007 | 02 | 03 | 04 | 05 | 06 | 07 | 10 | 11 | 12 |
2008 | 02 | 03 | 04 | 06 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 02 | 03 | 04 | 05 | 07 | 08 | 10 | 11 | 12 |
2013 | 01 | 05 | 07 |
2014 | 01 | 02 |
2016 | 01 |
2017 | 01 | 05 |