- 締切済み
c言語のプログラミングに関して
大学の課題で縦6×横7の重力付き四目並べが出題されました。人間、コンピュータ共にリーチの判定をするとき、先生は一個ずつ仮置きをし、4つ並ぶかどうかで判定すると言っていました。ただランダムに駒を置くだけのコンピュータプレイヤー対人間プレイヤーのプログラムはすでに出来上がっています。 ・仮置きで4つ並んだ場合その手を返す ・この判定の方法で人間プレイヤーの勝利を阻止する この二つをどのように書けばいいのかが分らなくて困っています。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- hohoho1234
- ベストアンサー率32% (37/114)
ランダムで置いていたものに方向性を持たせるのは少々大変ですね。 ランダムに置くと言うのがどういう範囲で置くようになっているのかは分かりませんが。 1、置ける場所の特定=置いてない場所の特定 2、その中から一番良さそうな場所の選別 方法は色々あります。ポイント制とか。全てのマスに優先順位つけちゃうとか。 3、迷ったらその中からランダム 3つ、あるいは4つ並んだことを判定したいのであれば。 おいた場所を含む縦横斜めの4方向のいずれかには出来ているはずです。 後は始点さえわかればなんとかなるんじゃないですかね? 何もなし=0、黒=1、白=2とかやってるはずなのでそれを元に。 後は考えてください。
- ottimisto
- ベストアンサー率72% (8/11)
No.1です。 補足です。「考え方に迷った」場合には、遠慮なく相談してもらっていいですよ。
- ottimisto
- ベストアンサー率72% (8/11)
学校の課題ですので、答えを教えることはあなたのためになりませんので、解決のための糸口になればと思い、投稿いたします。 「仮置きで4つ並んだ場合その手を返す」とありますが、 人間プレイヤーは、どうやってそれを判断していますか? 様々なパターンが出てきますが、無限ではありません。 ひとつひとつ、条件を出し、箇条書きや表に表わしてみて下さい。 重複する条件があるかと思います。まとめてみると、コーディングできますよ。 「この判定の方法で人間プレイヤーの勝利を阻止する」については、 上記がわかれば自ずと導けます。焦らず、考えてみて下さい。 血肉になりますし、今後のあなたに必ずプラスになってくれます。