おみくじが欲しい、と言われたので初心に戻って一つ。
此処見てるような人には本当にどうでも良さそうなのだけどまぁ忘備録ってことで。
まず即興で書いてみた。
print qw[大吉 中吉 吉 末吉 凶 大凶][int(rand 6)];
で、ちょっと考える。多分大概のサンプルはこうなってるのかな。
@mikuji = ('大吉','中吉','吉','末吉','凶','大凶'); $num = int(rand 6) print $mikuji[$num];
でもどうせなら
print $mikuji[int(rand @mikuji)];
のほうが変更に強いし。となると
@mikuji = ('大吉','中吉','吉','末吉','凶','大凶'); print $mikuji[int(rand @mikuji)];
になるのか。これなら項目増やしても大丈夫。無名配列だと配列の個数が取得できないのがネックだなぁ。
んで運勢ごとにメッセージを出す場合はどうだろう。
@mikuji = ('大吉\tだいきち','中吉\tちゅうきち','吉\tきち','末吉\tすえきち','凶\きょう','大凶\tだいきょう'); ($unsei,$mes) = split(/\t/,$mikuji[int(rand @mikuji)]);
こんな感じかな。ハッシュを使うと無駄に冗長になりそうだし。一つの運勢で複数のメッセージ、とかも面倒そうだ。
思わず
$num = int(rand 10)+1; $mikuji = '大吉' if ($num <= 5); (以下略)
とかやりそうになってしまったのだけども
@mikuji = ('大吉','大吉','大吉','大吉','大吉','中吉','吉','末吉','凶','大凶'); print $mikuji[int(rand @mikuji)];
みたいな感じに配列の個数変えるだけでいいんだよなぁ、、、
オブジェクト指向で書いてみる
package Mikuji; sub new{ my($class,$mikuji_file)=($_[0],$_[1]); bless { file => $mikuji_file },$class; } sub uranai{ my$class = shift; my(@mikuji,$unsei,$mes); open(DATA,"<$class->{file}"); @mikuji = <DATA>; ($unsei,$mes) = split(/\t/,$mikuji[int(rand @mikuji)]); }
使いかた
まぁ意味のないシロモノですが(´ー`;)
wantarrayとかで結果を運勢のみとかにすると面白かったかもしれなひ
てゆーか@mikuji = <DATA>;がなぁ、、、うぅ
ファイルが存在しません。ファイルが存在しません。
編集でUpしたファイルが見れます「ref file,link」の「,link」ってとこを削除したら見れるようになった。。バグの予感?自力でバグ修正したので、ちゃんと使えるようになったっぽいです
ファイルが存在しません。
添付画像表示のてすつ