【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード

MONSTER's配布サイト:http://park16.wakwak.com/~mikio-palace/

MONSTER'sってメダルという通貨のようなものがあります。
メダルが定数に達するとわたぼうというレアなモンスターを手にすることができます。
そこである機能を思いつきました。
それはメダル10枚でモンスターがランダムに手に入るということです。
(たまにハズレでモンスターが手に入らなくなるようにしたい)

どう記述するのかよくわからなくて・・・。
どなたか教えてください。

A 回答 (3件)

$Aimg= の部分というのは、当たるモンスターもランダムに


したいということでしょうか?

if($i == 1){
medalok.txtに記述されているソース全て記述(当たり)
}

この中でさらに乱数で選ばせればいいと思います。1~277なら
srand(time^($$+($$<<15))); #乱数の初期化
$Aimg=int(rand(278));
    • good
    • 0

基本的にはいいと思いますよ。


要は条件分岐したいけど、そのときの確率をランダムにしたいという
ことでしたら、これでいけると思います。
ただ、実際に乱数の発生はsrandの種を基に浮動小数点の疑似乱数で
返されるみたいです。
perl、srand、randをキーに検索すると結構細かいことが書かれた
ページが出てきますので参考にしてください。
srandを指定しない場合などは処理系にも依存するようです。
統計的には私は分かりませんが、0か1だけの判定より0~99で偶数
奇数などの方が少ない母数の時には分布が均等されるような気がします(笑)
    • good
    • 0
この回答へのお礼

有り難うございます。
$Aimg = ;
↑にはどう記述すればいいのでしょうか?
1~277匹のモンスターがいるのですが。

お礼日時:2007/06/07 12:28

ソースファイルが公開されていないので具体的な説明はできませんが、


フローとしては、以下のようになると思います。
メダルが定数に達した>乱数による判定(確率を決めてあたりとはずれを分岐させる)
「あたり」>モンスターを渡す
「はずれ」>はずれのメッセージ
といった具合でしょうか?

乱数の発生は、
srand(time^($$+($$<<15))); #乱数の初期化
$i=int(rand(100)); #これだとiに1~99までが入る。

rand(2)にして、0か1の50%の確率にしてもよいし、
rand(100)のまま2で割って余りを計算して50%にしてもよい。
また、50以上ならとかも使えるし、10未満と指定すれば10%に
なる。
こんな感じでしょうか?
    • good
    • 0
この回答へのお礼

回答どもです。
ソースファイルはこれです。
http://gamesoko.com/game/medalok.txt
因みに$Aimg = 110;はわたぼうのことです。110番です。

その回答からいきますと
srand(time^($$+($$<<15))); #乱数の初期化
$i=int(rand(2));
if($i == 1){
medalok.txtに記述されているソース全て記述(当たり)
}
if($i == 0){
&header;
print <<"EOF";
ハズレ
EOF
}

お礼日時:2007/06/05 13:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!