Skip to content

Instantly share code, notes, and snippets.

@note103
Last active August 29, 2015 14:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save note103/52993e5b24e94b158589 to your computer and use it in GitHub Desktop.
Save note103/52993e5b24e94b158589 to your computer and use it in GitHub Desktop.
英単語学習用のPerlスクリプト
#!/usr/bin/env perl
use strict;
use warnings;
print "Input a number or a word.\n";
my %english = (
#ここに大量の単語を入れる
abandon => 'を捨てる',
abide => 'に従う|我慢する|住む',
abrupt => '突然の',
worry => '心配する',
wound => '銃弾|刃物などによる傷',
wrinkle => 'しわ',
zealous => '熱心な',
);
my $english = \%english;
my @words = sort (keys %english);
my $words = \@words;
my $quit = 'q|d|\n';
my $port = 0;
while (my $in = <>) {
if ($in =~ /^(q|d)$/) {
print "Bye!\n";
last;
} elsif ($in =~ /^(\d+)$/) {
my $num = $1;
$port = $num;
my $key = $words->[$num];
print "$key\n";
while (my $in2 = <>) {
if ($in2 =~ /^($quit)$/) {
print "$key($num): $english->{$key}\nNext!\n";
last;
} elsif ($in > 1017) {
print "Too big number! More small!\n";
} elsif ($in2 =~ /^($english->{$key})$/) {
print "Good!!\n$key($num): $english->{$key}\nNext!\n";
last;
} else {
print "NG! '$words->[$num]'\n";
}
}
} elsif ($in =~ /^(r)$/) {
my $random = int(rand(1017));
$port = $random;
my $key = $words->[$random];
print "$key\n";
while (my $in2 = <>) {
if ($in2 =~ /^($quit)$/) {
print "$key($random): $english->{$key}\nNext!\n";
last;
} elsif ($in2 =~ /^($english->{$key})$/) {
print "Good!!\n$key($random): $english->{$key}\nNext!\n";
last;
} else {
print "NG! '$key'\n";
}
}
} elsif ($in =~ /^(s)$/) {
my $num = $port;
$port = $num;
my $key = $words->[$num];
print "$key\n";
while (my $in2 = <>) {
if ($in2 =~ /^($quit)$/) {
print "$key($num): $english->{$key}\nNext!\n";
last;
} elsif ($in2 =~ /^($english->{$key})$/) {
print "Good!!\n$key($num): $english->{$key}\nNext!\n";
last;
} else {
print "NG! '$words->[$num]'\n";
}
}
} elsif ($in =~ /^(n|\n)$/) {
my $num = $port+1;
$port = $num;
my $key = $words->[$num];
print "$key\n";
while (my $in2 = <>) {
if ($in2 =~ /^($quit)$/) {
print "$key($num): $english->{$key}\nNext!\n";
last;
} elsif ($in2 =~ /^($english->{$key})$/) {
print "Good!!\n$key($num): $english->{$key}\nNext!\n";
last;
} else {
print "NG! '$words->[$num]'\n";
}
}
} elsif ($in =~ /^(\w+)$/) {
my $key = $1;
if (exists($english{$key})) {
print "Here is '$key'. What's mean in Japanese?\n";
while (my $in2 = <>) {
if ($in2 =~ /^($quit)$/) {
print "$key: $english->{$key}\nNext!\n";
last;
} elsif ($in2 =~ /^($english->{$key})$/) {
print "Good!!\n$key: $english->{$key}\nNext!\n";
last;
} else {
print "NG! What's mean '$key' in Japanese?\n";
}
}
} else {
print "Here isn't '$key'. Next!\n";
}
} else {
print "Please input a number or a correct keyword.\n";
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment