• 締切済み

ゲームの醍醐味・・・?

MONSTER's配布サイト:http://park16.wakwak.com/~mikio-palace/ MONSTER'sってメダルという通貨のようなものがあります。 メダルが定数に達するとわたぼうというレアなモンスターを手にすることができます。 そこである機能を思いつきました。 それはメダル10枚でモンスターがランダムに手に入るということです。 (たまにハズレでモンスターが手に入らなくなるようにしたい) どう記述するのかよくわからなくて・・・。 どなたか教えてください。

みんなの回答

  • G-sun
  • ベストアンサー率66% (2/3)
回答No.3

$Aimg= の部分というのは、当たるモンスターもランダムに したいということでしょうか? if($i == 1){ medalok.txtに記述されているソース全て記述(当たり) } この中でさらに乱数で選ばせればいいと思います。1~277なら srand(time^($$+($$<<15))); #乱数の初期化 $Aimg=int(rand(278));

  • G-sun
  • ベストアンサー率66% (2/3)
回答No.2

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

wc13
質問者

お礼

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

  • G-sun
  • ベストアンサー率66% (2/3)
回答No.1

ソースファイルが公開されていないので具体的な説明はできませんが、 フローとしては、以下のようになると思います。 メダルが定数に達した>乱数による判定(確率を決めてあたりとはずれを分岐させる) 「あたり」>モンスターを渡す 「はずれ」>はずれのメッセージ といった具合でしょうか? 乱数の発生は、 srand(time^($$+($$<<15))); #乱数の初期化 $i=int(rand(100)); #これだとiに1~99までが入る。 rand(2)にして、0か1の50%の確率にしてもよいし、 rand(100)のまま2で割って余りを計算して50%にしてもよい。 また、50以上ならとかも使えるし、10未満と指定すれば10%に なる。 こんな感じでしょうか?

wc13
質問者

お礼

回答どもです。 ソースファイルはこれです。 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 }

関連するQ&A