Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
中学生の息子に、ゲームプログラムはどうやって作るんだと訊かれた。俺もやったことないからわからないから、じゃあ作ってみるかと一緒に10分程で作ってみたプログラム。最初は乱数を発生して上か下かを選ぶプログラムだったんけど、わかりにくいようだったので対戦形式にしてみた。
#!/usr/bin/perl -CSD
use strict;
use warnings;
use utf8;
my %モンスター = (
0 => "ゼクロム",
1 => "ワンリキー",
2 => "ニョロモ",
3 => "ミニリュウ",
4 => "ヨルノズク",
5 => "ゴーリキー",
6 => "ロトム",
7 => "ナッシー",
8 => "ハッサム",
9 => "キュレム",
);
my $モンスターの数 = keys %モンスター;
sub モンスターゲット {
int(rand($モンスターの数));
}
my $対戦数 = shift || 5;
my $正解 = 0;
my $残り試合 = $対戦数;
while ($残り試合-- > 0) {
my $自分 = モンスターゲット();
my $相手 = モンスターゲット();
print "あなたは[$モンスター{$自分}]。勝つか (Win) 負けるか (Lose)?";
my $答 = <>;
printf "相手は[$モンスター{$相手}]だった。\n";
if ($自分 >= $相手) {
print "勝った!\n\n";
$正解++ if $答 =~ /W/i;
} else {
print "負けた!\n\n";
$正解++ if $答 =~ /L/i;
}
}
if ($正解 >= $対戦数 / 2) {
print "おめでとう ";
} else {
print "残念でした ";
}
printf "正解数は %d/%d でした。\n", $正解, $対戦数;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment