FrontPage 新規 編集 差分 一覧 ソース 検索 ヘルプ RSS ログイン

御神籤

おみくじが欲しい、と言われたので初心に戻って一つ。

此処見てるような人には本当にどうでも良さそうなのだけどまぁ忘備録ってことで。

とりあえず

まず即興で書いてみた。

 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」ってとこを削除したら見れるようになった。。バグの予感?自力でバグ修正したので、ちゃんと使えるようになったっぽいです

ファイルが存在しません。

添付画像表示のてすつ