カテゴリー
C++

switch文で占いを判定しよう

この章ではswitch文で占いを作成します。
占いは毎回同じ判定では変なので、結果はランダムになるようにします。1111 初めにランダムな数をransuuに入れるのですが、このランダムな数を生成するにはrand関数を使用します。
rand関数は0か32767までの数字の中でランダムな数を返しますが、範囲を限定したい場合には例えば1と書きますと1から6までのランダムな数を返すようになります。
0から6までの数値をランダムに返したいのならば1と書きます。
しかし、このrand関数だけではプログラムを何回実行しても同じ結果にしかなりません。
これは乱数を初期化していないからです。
この乱数を初期化するにはsrand関数を使います。1 srand関数は乱数の初期値を設定する関数です。
つまり、乱数に使う初期値を変える関数です。
例えばsrand(1)と書くと初期値が1、srand(2)と書くと初期値が2の乱数を導き出すことが出来ます。
では試しに1を入れないで、rand関数を実行してみましょう。1 この例の実行結果は以下の通りです。1 ではもう一度実行してみましょう。
結果は以下の通りですが、1回目の結果と同じです。
rand関数はランダムに数値を導き出してくれますが、乱数になるのは1回だけです。1 そこで違う乱数を導き出すためにsrand関数を使います。
次の例は先ほどの例にsrand(6)を追加しただけです。1 結果は何度実行しても以下の通りです。1 初期値を変えたので乱数の値は変わりましたが、この例のようにsrand関数の中の引数を固定した場合はいつまで経っても同じ値になります。
そこでsrandの引数に1を使用します。
この中のtimeはtime関数で、1970年1月1日0時0分0秒からの経過時間を返します。
ですのでtime関数をsrandの引数に使うことで、その瞬間の時刻が引数に入りますので、その都度違う数値を引数に与えることができます。
time関数の引数はNULLにします。
time関数を使う時には1を記述する必要があります。1 では占いの例に戻ります。
ransuuには0から6までの数値がランダムに入るので、それをswitch文で判断して、unsei変数に代入しています。
それを最後に出力します。1