ぷよぷよリゾルバを書いてみた

人材募集企画 2011年版: 人生を書き換える者すらいた。
を見て解いてみた。


ソースはこちらです。

syohex/p5-App-puyopuyo · GitHub

サンプルコード

こんな感じで書けばアニメーションで表示してくれます。

#!/usr/bin/env perl
use strict;
use warnings;

use lib qw(../lib);
use Data::Section::Simple qw(get_data_section);

use utf8;
use App::puyopuyo;

binmode STDOUT, ":utf8";

#
# I check this sample program using gnome-terminal.
# If you use gnome-terminal,
# launch gnome-terminal with environment variable VTE_CJK_WIDTH=1
#

my $app = App::puyopuyo->new(
    width => 6,
    height => 13,
    color => 1,
    puyo => '●',
    double_space => 1,
    animation => 1,
);

for my $section (1..2) {
    my $data = get_data_section("sample${section}");
    $app->load_puyo($data);
    $app->run;
}

__DATA__
@@ sample1
  GYRR
RYYGYG
GYGYRR
RYGYRG
YGYRYG
GYRYRG
YGYRYR
YGYRYR
YRRGRG
RYGYGG
GRYGYR
GRYGYR
GRYGYR

@@ sample2
  RRYB
  GGYG
  GGRR
 YYBGG
YGYRYG
RBBYBB
GYYRRB
GBGRYR
BRRBBY
YGRBYY
YGGRBR
GBBBRR

動画

サンプルプログラムの実行を無駄に ScreenCastしてみました。
人生初の YouTubeへのアップロードです。

感想

2時間以内に作れない人は入社できないということですが、
私の場合ポカミスもあり基本ロジック部分で 1時間半ほどかかって
しまいました。その他色付け、おじゃまぷよ対応、モジュール化、
テスト作成を行ったら全部で 5時間はかかったと思います。
なんで入社はできないっぽいですね。もうちょっと考える力を
養わないとダメですね。

参考

サンプルプログラムの作成にあたり、有名ぷよぷよプレーヤーのかめさんの
動画を参考にさせていただきました。

追記

リポジトリを改めて追加しました。
ご迷惑をおかけして申し訳ありませんでした。