• ベストアンサー

あっち向いてホイのプログラムについて・・・

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

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

  • ベストアンサー
  • crimson
  • ベストアンサー率40% (900/2202)
回答No.1

C/C++はかじり出したばかりなもので(^^;)、とりあえず ソースコードではなく発想の一般論として言えば、 (1) 乱数を発生させる。 (2) 4で割る。 (3) 余りが0→上、1→下、2→左、3→右と割り当てる。 …てな感じでどうでしょうか?

kururin
質問者

お礼

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

その他の回答 (2)

  • KOH_da
  • ベストアンサー率31% (161/506)
回答No.3

4月からなら楽勝だと思うんですけど...。 もしかして教える人の技量が低いか、 学生側に問題があるかのどちらかだと思います。 それはさておき...。 もう一度、じゃんけんに...ではなく、 while+breakの組み合わせを覚えると便利です。 こんな感じです。 メインからは...  while() {   janken();   hoi();   if(やめ) break;  } というように呼び出すものとして、 void janken() {  while(1) {   じゃんけん処理;   if(決着がついた) break;  } } なんて処理はいかがでしょうか。 じゃんけんの勝敗などは、 すべてグローバル変数で受け渡すものとします。

  • KOH_da
  • ベストアンサー率31% (161/506)
回答No.2

ホントに作りたいと思ってるの? 作らなきゃならない事情があるんでしょ(笑)。 プログラムの始めの方で、   srand(time(NULL)); ランダムに上下左右は、   w = rand() % 4; くらいが無難だと思います。 0-3の値が得られるので、得られた値によって、 上下左右の処理に振り分ければいいです。 time()を使うので、#include <time.h>もいります。

kururin
質問者

補足

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

関連するQ&A