プロが教える店舗&オフィスのセキュリティ対策術

あっちむいてほいのプログラムを作りたいんですが
コンピューターにランダムに上下左右を選ばせる
プログラムが分かりません。
どなたか教えてください。

A 回答 (3件)

C/C++はかじり出したばかりなもので(^^;)、とりあえず


ソースコードではなく発想の一般論として言えば、

(1) 乱数を発生させる。
(2) 4で割る。
(3) 余りが0→上、1→下、2→左、3→右と割り当てる。

…てな感じでどうでしょうか?
    • good
    • 0
この回答へのお礼

ありがとうございます。
もしよろしかったらcrimsonさんにも
KOH_daにお願いした質問をお願いしたいのですが…

お礼日時:2001/07/09 18:25

ホントに作りたいと思ってるの?


作らなきゃならない事情があるんでしょ(笑)。
プログラムの始めの方で、

  srand(time(NULL));

ランダムに上下左右は、

  w = rand() % 4;

くらいが無難だと思います。
0-3の値が得られるので、得られた値によって、
上下左右の処理に振り分ければいいです。
time()を使うので、#include <time.h>もいります。

この回答への補足

実は学校で課題としてでてるんです…(笑)
回答ありがとうございます。
あともう1つ質問したいんですが…よろしいでしょうか?
ある程度までプログラムを実行したところで
指定したある場所に移動するようにするにはどうしたらいいでしょうか?
例えば、じゃんけんで勝ったけどあっち向いてホイのところで向きが一致
しなかったらもう一度じゃんけんに戻りますよね?
そういう場合はどうしたらいいんでしょうか??
4月にCをやり始めたんですが授業でそこらへんのところはまだやってないんですよ。
それで作れって言うほうがおかしいと思うんですが、出さないと単位が…

補足日時:2001/07/09 18:09
    • good
    • 0

4月からなら楽勝だと思うんですけど...。


もしかして教える人の技量が低いか、
学生側に問題があるかのどちらかだと思います。
それはさておき...。

もう一度、じゃんけんに...ではなく、
while+breakの組み合わせを覚えると便利です。
こんな感じです。
メインからは...
 while() {
  janken();
  hoi();
  if(やめ) break;
 }
というように呼び出すものとして、

void janken()
{
 while(1) {
  じゃんけん処理;
  if(決着がついた) break;
 }
}

なんて処理はいかがでしょうか。
じゃんけんの勝敗などは、
すべてグローバル変数で受け渡すものとします。
    • good
    • 0

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


このQ&Aを見た人がよく見るQ&A