Skip to content

Instantly share code, notes, and snippets.

@neguse
Last active December 26, 2015 03:29
Show Gist options
  • Save neguse/7086434 to your computer and use it in GitHub Desktop.
Save neguse/7086434 to your computer and use it in GitHub Desktop.
#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
use enum qw(Normal Fight Flying Poison Ground Rock Bug Ghost Steel Fire Water Grass Electr Psychc Ice Dragon Dark Fairy Max);
use enum qw(S D H N); # Single, Double, Half, Nothing
my $type_chart = [
# NorFigFlyPoiGroRocBugGhoSteFirWatGraElePsyIceDraDarFai
[S, S, S, S, S, H, S, N, H, S, S, S, S, S, S, S, S, S], # Normal
[D, S, H, H, S, D, H, N, D, S, S, S, S, H, D, S, D, H], # Fight
[S, H, S, S, S, H, D, S, H, S, S, D, H, S, S, S, S, S], # Flying
[S, S, S, H, H, H, S, H, N, S, S, D, S, S, S, S, S, D], # Poison
[S, S, N, D, S, D, H, S, D, D, S, H, D, S, S, S, S, S], # Ground
[S, H, D, S, H, S, D, S, H, D, S, S, S, S, D, S, S, S], # Rock
[S, H, H, H, S, S, S, H, H, H, S, D, S, D, S, S, D, H], # Bug
[N, S, S, S, S, S, S, D, S, S, S, S, S, D, S, S, H, S], # Ghost
[S, S, S, S, S, D, S, S, H, H, H, S, H, S, D, S, S, D], # Steel
[S, S, S, S, S, H, D, S, D, H, H, D, S, S, D, H, S, S], # Fire
[S, S, S, S, D, D, S, S, S, D, H, H, S, S, S, H, S, S], # Water
[S, S, H, H, D, D, H, S, H, H, D, H, S, S, S, H, S, S], # Grass
[S, S, D, S, N, S, S, S, S, S, D, H, H, S, S, H, S, S], # Electr
[S, D, S, D, S, S, S, S, H, S, S, S, S, H, S, S, N, S], # Psychc
[S, S, D, S, D, S, S, S, H, H, H, D, S, S, H, D, S, S], # Ice
[S, S, S, S, S, S, S, S, H, S, S, S, S, S, S, D, S, N], # Dragon
[S, H, S, S, S, S, S, D, S, S, S, S, S, D, S, S, H, H], # Dark
[S, D, S, H, S, S, S, S, H, H, S, S, S, S, S, D, D, S], # Fairy
];
my $type_ja = [qw(ノーマル かくとう ひこう どく じめん いわ むし ゴースト はがね ほのお みず くさ でんき エスパー こおり ドラゴン あく フェアリー)];
my $effective_ja = [qw(そのまま ばつぐん いまひとつ こうかがない)];
binmode(STDOUT, ":utf8");
sub question {
my $attack = rand Max;
my $defend = rand Max;
print "$type_ja->[$attack]が $type_ja->[$defend]にこうげき\n";
my $in = <STDIN>;
my $effective = $type_chart->[$attack][$defend];
print "$type_ja->[$attack]が $type_ja->[$defend]にこうげき => $effective_ja->[ $effective ]\n";
}
while (1) {
question;
}
1;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment