ページ 1 / 1
カードを探す処理
Posted: 2011年1月29日(土) 23:53
by さぶかるちゃ
http://www.bj-10jqka.com/programs/C/index.html
上のwebページ(ブラックジャックを作成するもの)で、ページ内にある[未使用カードを探す処理]を行うところで
コード:
do {
index = (int)((float)imax * rand() / (RAND_MAX + 1.0));
} while (deck[index][0] == '\0');
の部分のindex = (int)((float)imax * rand() / (RAND_MAX + 1.0));がわかりません。
回答お願いします。
Re: カードを探す処理
Posted: 2011年1月30日(日) 00:10
by h2so5
その行は、indexに0以上imax未満のランダムな整数を代入しています。
Re: カードを探す処理
Posted: 2011年1月30日(日) 00:21
by bitter_fox
さぶかるちゃ さんが書きました:
コード:
do {
index = (int)((float)imax * rand() / (RAND_MAX + 1.0));
} while (deck[index][0] == '\0');
まず、rand関数は0~RAND_MAXまでの値を返します。
で、それをRAND_MAX+1.0で割ると、確実に(0 <= x < 1)の範囲に収まりますね?
さらにその値に、imaxを掛けると(0 <= x < imax)の範囲になります。
これをdeckの添え字に使うことでランダムに調べることができます。
Re: カードを探す処理
Posted: 2011年1月30日(日) 18:06
by さぶかるちゃ
ご回答ありがとうございました^^