Last active
January 3, 2016 06:09
-
-
Save kaz-utashiro/8420481 to your computer and use it in GitHub Desktop.
中学生の息子に、ゲームプログラムはどうやって作るんだと訊かれた。俺もやったことないからわからないから、じゃあ作ってみるかと一緒に10分程で作ってみたプログラム。最初は乱数を発生して上か下かを選ぶプログラムだったんけど、わかりにくいようだったので対戦形式にしてみた。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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