- ベストアンサー
あっち向いてホイのプログラムについて・・・
あっちむいてほいのプログラムを作りたいんですが コンピューターにランダムに上下左右を選ばせる プログラムが分かりません。 どなたか教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
C/C++はかじり出したばかりなもので(^^;)、とりあえず ソースコードではなく発想の一般論として言えば、 (1) 乱数を発生させる。 (2) 4で割る。 (3) 余りが0→上、1→下、2→左、3→右と割り当てる。 …てな感じでどうでしょうか?
その他の回答 (2)
- KOH_da
- ベストアンサー率31% (161/506)
4月からなら楽勝だと思うんですけど...。 もしかして教える人の技量が低いか、 学生側に問題があるかのどちらかだと思います。 それはさておき...。 もう一度、じゃんけんに...ではなく、 while+breakの組み合わせを覚えると便利です。 こんな感じです。 メインからは... while() { janken(); hoi(); if(やめ) break; } というように呼び出すものとして、 void janken() { while(1) { じゃんけん処理; if(決着がついた) break; } } なんて処理はいかがでしょうか。 じゃんけんの勝敗などは、 すべてグローバル変数で受け渡すものとします。
- KOH_da
- ベストアンサー率31% (161/506)
ホントに作りたいと思ってるの? 作らなきゃならない事情があるんでしょ(笑)。 プログラムの始めの方で、 srand(time(NULL)); ランダムに上下左右は、 w = rand() % 4; くらいが無難だと思います。 0-3の値が得られるので、得られた値によって、 上下左右の処理に振り分ければいいです。 time()を使うので、#include <time.h>もいります。
補足
実は学校で課題としてでてるんです…(笑) 回答ありがとうございます。 あともう1つ質問したいんですが…よろしいでしょうか? ある程度までプログラムを実行したところで 指定したある場所に移動するようにするにはどうしたらいいでしょうか? 例えば、じゃんけんで勝ったけどあっち向いてホイのところで向きが一致 しなかったらもう一度じゃんけんに戻りますよね? そういう場合はどうしたらいいんでしょうか?? 4月にCをやり始めたんですが授業でそこらへんのところはまだやってないんですよ。 それで作れって言うほうがおかしいと思うんですが、出さないと単位が…
お礼
ありがとうございます。 もしよろしかったらcrimsonさんにも KOH_daにお願いした質問をお願いしたいのですが…