- 2009年6月 5日 07:58
- myown


The blog of H.Fjimotoさまにて連載されています、「MTでPerlを学ぶ」記事のその11で出題されていた問題の解答がでていましたので、コチラで勝手に答え合わせしてみます
元の記事はこちら
解答は下記記事にて記載されていました。
5月31日の「MTでPerlを学ぶ(その11・for文による繰り返し)」で出した問題の回答をお送りします。
負の値の乱数をつくるところでいきなり躓いててorz 。配列とかでランダムにに抽出とかするのかなと思ってました。
カンニングしてしまいましたけど(参考:Perl入門~サンプルコードによるPerl入門~)、以下がワタくシの解答でした。
use strict;
use warnings;
my @cards = qw(-3 -2 -1 0 1 2 3);
my $cur = 0;
print "<ul>\n";
foreach my $i ( 1 .. 10 ){
my $x = $cards[int(rand(@cards))];
$cur += $x;
if ( $x < 0 ){
print "<li>$i回目 :",$x,"戻る :";
}
elsif( $x > 0 ){
print "<li>$i回目 :",$x,"進む :";
}
else{
print "<li>$i回目 :そのまま :";
}
print " 現在位置";
if ( $cur > 0 ){
print " 前に",$cur,"</li>\n";
}
elsif ( $cur < 0 ){
print " 後ろに",$cur,"</li>\n";
}
else {
print " スタート位置</li>\n";
}
}
print "</ul>\n";
出力結果です。
<ul> <li>1回目 :1進む : 現在位置 前に1</li> <li>2回目 :そのまま : 現在位置 前に1</li> <li>3回目 :-3戻る : 現在位置 後ろに-2</li> <li>4回目 :2進む : 現在位置 スタート位置</li> <li>5回目 :2進む : 現在位置 前に2</li> <li>6回目 :そのまま : 現在位置 前に2</li> <li>7回目 :3進む : 現在位置 前に5</li> <li>8回目 :-3戻る : 現在位置 前に2</li> <li>9回目 :-2戻る : 現在位置 スタート位置</li> <li>10回目 :-2戻る : 現在位置 後ろに-2</li> </ul>
この「MTでPerlを学ぶ」のシリーズですが、11回目から、クイズが登場して何か本格的な講座という感じで次回も楽しみです。以上です
- Newer: ダッシュボードで最近のカスタムフィールドの内容を見れるウィジェット
- Older: Open SearchプラグインにAjax 検索を