どうしてもわからない場所があるのでお願いします.

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら

どうしてもわからない場所があるのでお願いします.

#1

投稿記事 by » 17年前

お初にお目にかかります,分からないことがありましたので質問をさせてもらいます.

学校の課題で,C言語での簡単なリバーシゲームを作成したのですが,COM用はしっかりと機能するのに対人用の動作をさせると途中でエラーが出たりして実行できません.
(添付したテキストファイルをご覧下さい)
もし良かったらどこをどう直せばいいかなどのアドバイスを頂ければ嬉しいです.
困っているので,よろしくお願いします.

box

Re:どうしてもわからない場所があるのでお願いします.

#2

投稿記事 by box » 17年前

> 対人用の動作をさせると途中でエラーが出たりして実行できません.

エラーが出る前の話として、例えば先手を選んで
1手目に(3,4)に置いたとします。
そして、後手の番になったとき、後手が置けない(6,6)が
最善手であると言ってきます。
まずはここを修正する必要がありますね。

それから、最善手を選ぶアルゴリズムはどのようになっていますか?
COM用で試したところ、どうも「相手の石をいちばんたくさん裏返せる」
ところが最善であると判断しているようにお見受けしました。
それで間違いないですか?
もし、そういうアルゴリズムだとすると、見直した方がいいような気がします。
相手の石をたくさん裏返すよりも四隅に置いた方が後の展開が有利になる、
という場合があると思います。

Re:どうしてもわからない場所があるのでお願いします.

#3

投稿記事 by » 17年前

> エラーが出る前の話として、例えば先手を選んで
> 1手目に(3,4)に置いたとします。
> そして、後手の番になったとき、後手が置けない(6,6)が
> 最善手であると言ってきます。
> まずはここを修正する必要がありますね。

はい,そうなんです.でもどこがおかしいのかが分からなくて困っているのです.
あまりプログラミングが詳しくないもので……
もし良ければ具体的にどのように修正すればいいか教えて頂けませんか?
お願いします.


> COM用で試したところ、どうも「相手の石をいちばんたくさん裏返せる」
> ところが最善であると判断しているようにお見受けしました。
> それで間違いないですか?
> もし、そういうアルゴリズムだとすると、見直した方がいいような気がします。
> 相手の石をたくさん裏返すよりも四隅に置いた方が後の展開が有利になる、
> という場合があると思います。

やはりそうでしたか,四隅に置けるように改良しようと思います.
アドバイスありがとうございました!

box

Re:どうしてもわからない場所があるのでお願いします.

#4

投稿記事 by box » 17年前

変数 now_player と now_player2, com と pc の関係を
整理してみてはいかがでしょうか。

人 vs 人の場合に、上記変数群の関係が整理し切れていないのかもしれません。

Re:どうしてもわからない場所があるのでお願いします.

#5

投稿記事 by » 17年前

アドバイスありがとうございます.
変数の関係などを洗いなおしてみます.

閉鎖

“C言語何でも質問掲示板” へ戻る