#!/usr/bin/env perl
my $experience = 999; # ここの経験値を書き変えてください

# アイテムデータ
my %items = (
    'パーパポトのツメ' => [4, 106, 125, 237, 250],
    'デーモンのツメ'   => [108, 131, 132, 193, 218],
    'マタンゴの油'     => [0, 40, 127, 163, 202],
    'シャドウゼロの瞳' => [35, 87, 167, 177, 198],
    'カーミラのツメ'   => [135, 157, 192, 203, 209],
    'ゴーストの瞳'     => [5, 138, 145, 183, 232],
    '夢見草'           => [0, 12, 15, 19, 29, 30, 40, 43, 76, 79, 96,
                           104, 116, 119, 127, 130, 135, 141, 147, 148, 149,
                           157, 162, 163, 166, 169, 172, 175, 181, 192, 199,
                           202, 203, 206, 209, 210, 214, 221, 234, 243, 247, 251]
);

my $dogs = 101 * 2;

sub item_predicter {
    my $input   = shift;
    my $battles = shift;

    # 計算ロジック
    my $div_int = int($input / 256);
    my $mod     = $input % 256;
    $div_int    = int($div_int / 2) * 2 + 1;
    my $ans     = ($div_int + $mod) % 256;

    # 結果を表示
    print "$battles 回分の種乱数の値: $ans\n";

    # 該当するアイテムを出力
    my $found = 0;
    for my $item (keys %items) {
        if (grep { $_ == $ans } @{$items{$item}}) {
            print "種を植えると $item\n\n";
            $found = 1;
        }
    }
    return;
}

### 主要な処理
# アイテムの一覧を表示
print "主な種乱数表\n";
for my $item (keys %items) {
    print "$item: ", join(", ", @{$items{$item}}), "\n";
}
print "\n";

my $num  = $experience % 50000;
my $num2 = $num;

DOG_HUNTER:
for my $battles (0..10) {
    item_predicter($num , $battles);
    $num += $dogs;
}

print "\n\n";
print "^ 月夜の森入り口の2匹ウルフを狩る\n";
print "-" x 20 . "\n";
print "v ラビの森のLv1ラビを狩る\n";
print "\n\n";

RABBI_HUNTER:
for my $battles (0..20) {
    item_predicter($num2++, $battles);
}

