• ベストアンサー

乱数の使いよう(C++)

今、悟●伝のパクりのようなゲームを造っているんですが、 技のボタンをクリック→コンピュータの繰り出す技とこちらの技の優劣を判断→ダメージを食らうor与える という流れのプログラミングを作りたいのですが、技の優劣の判断のとき、コンピュータがランダムに技を出すためには、乱数発生の関数をつかえばよいのでしょうか? すみませんが、御教授のほどヨロシクおねがいします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

> コンピュータがランダムに技を出すためには、 > 乱数発生の関数をつかえばよいのでしょうか? そうです。

その他の回答 (1)

  • haporun
  • ベストアンサー率40% (230/562)
回答No.1

>つかえばよいのでしょうか? Yes/No形式の質問にとれますが、選択肢は2つなんだから実際に試してみればいかがでしょう。 応用するなら、出した技の回数を記録しておいて、あまり同じ技を出さないようにするとか、ある技は頻繁に出してもいいとか、面白くするための工夫を考えましょう。 まあ、最初は単純なランダムで良いかと。

関連するQ&A

  • コンピュータによる乱数発生について

    コンピュータで乱数を発生させる時に常に何らかのパターンが現れてしまって決して完全にランダムには成って呉れないことを証明した文献をお教え下さい。

  • java 乱数を並べて重複させない方法

    javaのプログラミングについて質問させてください。 まだ勉強し始めの初級者です。 1~25までの乱数を発生させ それらを重複させずに5列×5行に並べたいのですが、 Randomとfor文を使い乱数を発生させる事はできたのですが重複してしまいます。 ネットで調べたらArraylistのcontainsを使う等書いてあったのですが方法が分かりません。 5列×5行というのは ○、○、○、○、○、 ○、○、○、○、○、 ○、○、○、○、○、 ○、○、○、○、○、 ○、○、○、○、○、 という風に並べたいです。(○はすべて違う数字) どなたか分かる方ご教授よろしくお願いします。

    • ベストアンサー
    • Java
  • fortran77で乱数を発生させたい

    fortran77で乱数を発生させたい こんばんわ。fortran77で乱数を発生させるにはどうすればいいのでしょうか? 調べてみるとfortran90ならば乱数の組み込み関数が用意されているようなのですが、fortran70にはないそうです。   real function random(i)    i=843314861*i+453816693    random=real(i)/2**31   end function   do 10 k=1,n    ransu(k)=random(i) 10 continue これを用いることで乱数が発生できると書いてあったのですが、オーバーフローしてしまったせいか、値がマイナスのものが出てきてしまい、うまくできませんでした。 これ以外にも方法はないでしょうか? 私の環境はsalford FTN77です。 回答よろしくお願いします。

  • 乱数の重複無しを作りたい

    先回質問させていただき、乱数発生は教えてもらいわかりました。 <html><head><title>乱数発生器</title></head> <body> 1~150の乱数を発生させます。<br> <input type="button" value="発生させる。" onclick="alert( Math.floor( Math.random() * 149 ) + 1 )"> </body></html> これで今まで出た数字は出ないよう(重複しない)ようにしたいです。 どのようにすればいいのでしょうか? 出来れば上記コードふまえたコードを書いていただけると幸いです。 (すみません。JAVA初心者なのでどこに書いたらいいかわかりません) 目的はビンゴゲームのようなくじに使いたいと思います。 ですから人数はその会場に行かないとわからないので、MAXの数字は 自分で書けるようにしたいです。 よろしくお願いします。

    • ベストアンサー
    • Java
  • パスカル言語を用いた乱数利用について

    パスカル言語を用いた乱数発生についての質問です。 パスカル言語を用いて0~100までの整数をランダムで10個出したいので、次のようにプログラムを組んだのですが、 欲しい乱数が出てきません。どこが間違えているか指摘していただけないでしょうか。よろしくお願いします。 var x : integer; p : real; {本当はintegerなのだろうが、使うよう指示されたrandom関数を使うとなるとrealしか受け付けなかった。} begin i := 0; x := seed(wallclock); while i <> 10 do begin i := i + 1; p := random(100); writeln('random(100)=',p) end end. ちなみに、これを出力した時の例はこのような感じです。 random(100)=6.8e-01 random(100)=6.4e-02 random(100)=9.3e-01 random(100)=1.3e-01 random(100)=7.2e-01 random(100)=8.8e-01 random(100)=9.1e-02 random(100)=9.5e-01 random(100)=3.6e-01 random(100)=7.9e-01 (※6.8e-01とは6.8*10^(-1)をのことです)

  • 乱数の生成について

    下記のスクリプトではボタンをクリックして乱数を生成しています。 ボタンをクリックする事無く、windowが開くと同時に乱数を生成するにはどのようにすれば良いでしょうか? <HTML> <HEAD> <SCRIPT LANGUAGE="JavaScript"> <!-- function gen_random(num1, num2) { retval=Math.random(); document.myform.ans.value = (Math.floor(retval * (num2 - num1)) + eval(num1)); } //--> </SCRIPT> </HEAD> <BODY> <center> <form name=myform> 乱数の範囲 <input type=hidden name=d1 value=1000> <input type=hidden name=d2 value=9999> <input type=button name=btn1 value=乱数発生 onClick=gen_random(myform.d1.value,myform.d2.value)><br> 乱 数:<input type=text name=ans size=4> </form> </center> </BODY> </HTML>

  • プログラムが作りたい

    プログラミング初心者です。3日前に入門サイトの説明に従い無料のDelphiをインストール。 サンプルコードを見ながら打ち込んだりして、「Hello,World」と表示させたり簡単な足し算をしておりました。そして思いついたことがありまして質問させていただく次第です。 (1)条件分岐、乱数、繰り返しを使いたい (2)そして簡単なゲームを作ってみたい この二点なのですが、プログラムとしては ・コンピュータが1~13よりランダムに数を1つ決定 ・Highボタンは8以上なら勝ち、Lowボタンは6以下なら勝ち、7ならもう一度 ・3連勝したら終わり というダブルアップゲームを作りたいのですが、実際どういう手順でコードを書くべきものなのか良く分かりません。 一つ一つの構文の働きはサイトの解説で何となく分かるのですが一連の流れというのでしょうか、プログラムとしての感覚が掴めません。 具体的にどのようにコードを書けばこのプログラムが出来るでしょうか。

  • 三角関数の乱数について

    シミュレーションで用いる為に、 cos^2(θ) (コサイン2乗θです、θは0~90度の範囲) に従う乱数を作成しなければいけません。 (具体的な内容としましては、θを地表と鉛直方向の角度とすると、入射するN(粒子数)が、cos^2(θ)に比例し、それに沿った粒子を大量に発生させる必要がある為) プログラムはC++で書いています。 自分なりに調べて、 確率密度関数をf(x)としたとき、その累積分布関数g(x)の逆関数、 G(x)=g^-1(x)を求め、G(rand())として得られる、という所まではわかったのですが、 昔から数学が苦手な為、 f(θ)=cos^2(θ) g(θ)=(sin2θ)/4 + θ/2 で、これからG(θ)を求める方法がわかりません。 (これは非線型の逆関数でしょうか?) これだけなら数学の方に書くべきかもしれませんが、 このような三角関数の乱数の求めかたはプログラミングの分野で既に周知かなと思いこちらで質問しました。 どうすればいいかご助言を頂きたいです。 求められるのであれば上記の方法の続きでなくともなんでも構いません。 私はプログラム初心者で、まだ知らない便利な関数があり見落としているかもしれないです。 よろしくお願い致します。

  • ビンゴ

    Cを使って、ビンゴゲームのプログラミングを作りたいのですが ビンゴのカードをつくり、1~75の数を乱数で重複ないように順に発生させます。ここまでは作りました。 問題は、順に発生させた数によってビンゴしたかどうかをプログラミングによって判断させたいのですがどう組み立てればいいのでしょうか? 自分の環境は Windous XP Borland です

  • Rand関数について

    Rand関数について コンピューターの素人です。以下のカッコの中の理解で間違いないかどうか、教えてください。 「Rand関数は乱数を発生させる関数である。Rand関数は最小値と最大値を指定して、その範囲で整数の乱数を発生させることができる。」

専門家に質問してみよう