お初にお目にかかります,分からないことがありましたので質問をさせてもらいます.
学校の課題で,C言語での簡単なリバーシゲームを作成したのですが,COM用はしっかりと機能するのに対人用の動作をさせると途中でエラーが出たりして実行できません.
(添付したテキストファイルをご覧下さい)
もし良かったらどこをどう直せばいいかなどのアドバイスを頂ければ嬉しいです.
困っているので,よろしくお願いします.
どうしてもわからない場所があるのでお願いします.
Re:どうしてもわからない場所があるのでお願いします.
> 対人用の動作をさせると途中でエラーが出たりして実行できません.
エラーが出る前の話として、例えば先手を選んで
1手目に(3,4)に置いたとします。
そして、後手の番になったとき、後手が置けない(6,6)が
最善手であると言ってきます。
まずはここを修正する必要がありますね。
それから、最善手を選ぶアルゴリズムはどのようになっていますか?
COM用で試したところ、どうも「相手の石をいちばんたくさん裏返せる」
ところが最善であると判断しているようにお見受けしました。
それで間違いないですか?
もし、そういうアルゴリズムだとすると、見直した方がいいような気がします。
相手の石をたくさん裏返すよりも四隅に置いた方が後の展開が有利になる、
という場合があると思います。
エラーが出る前の話として、例えば先手を選んで
1手目に(3,4)に置いたとします。
そして、後手の番になったとき、後手が置けない(6,6)が
最善手であると言ってきます。
まずはここを修正する必要がありますね。
それから、最善手を選ぶアルゴリズムはどのようになっていますか?
COM用で試したところ、どうも「相手の石をいちばんたくさん裏返せる」
ところが最善であると判断しているようにお見受けしました。
それで間違いないですか?
もし、そういうアルゴリズムだとすると、見直した方がいいような気がします。
相手の石をたくさん裏返すよりも四隅に置いた方が後の展開が有利になる、
という場合があると思います。
Re:どうしてもわからない場所があるのでお願いします.
> エラーが出る前の話として、例えば先手を選んで
> 1手目に(3,4)に置いたとします。
> そして、後手の番になったとき、後手が置けない(6,6)が
> 最善手であると言ってきます。
> まずはここを修正する必要がありますね。
はい,そうなんです.でもどこがおかしいのかが分からなくて困っているのです.
あまりプログラミングが詳しくないもので……
もし良ければ具体的にどのように修正すればいいか教えて頂けませんか?
お願いします.
> COM用で試したところ、どうも「相手の石をいちばんたくさん裏返せる」
> ところが最善であると判断しているようにお見受けしました。
> それで間違いないですか?
> もし、そういうアルゴリズムだとすると、見直した方がいいような気がします。
> 相手の石をたくさん裏返すよりも四隅に置いた方が後の展開が有利になる、
> という場合があると思います。
やはりそうでしたか,四隅に置けるように改良しようと思います.
アドバイスありがとうございました!
> 1手目に(3,4)に置いたとします。
> そして、後手の番になったとき、後手が置けない(6,6)が
> 最善手であると言ってきます。
> まずはここを修正する必要がありますね。
はい,そうなんです.でもどこがおかしいのかが分からなくて困っているのです.
あまりプログラミングが詳しくないもので……
もし良ければ具体的にどのように修正すればいいか教えて頂けませんか?
お願いします.
> COM用で試したところ、どうも「相手の石をいちばんたくさん裏返せる」
> ところが最善であると判断しているようにお見受けしました。
> それで間違いないですか?
> もし、そういうアルゴリズムだとすると、見直した方がいいような気がします。
> 相手の石をたくさん裏返すよりも四隅に置いた方が後の展開が有利になる、
> という場合があると思います。
やはりそうでしたか,四隅に置けるように改良しようと思います.
アドバイスありがとうございました!
Re:どうしてもわからない場所があるのでお願いします.
変数 now_player と now_player2, com と pc の関係を
整理してみてはいかがでしょうか。
人 vs 人の場合に、上記変数群の関係が整理し切れていないのかもしれません。
整理してみてはいかがでしょうか。
人 vs 人の場合に、上記変数群の関係が整理し切れていないのかもしれません。