- 締切済み
C言語でゲームのプログラミング
C言語でゲームのプログラムを組みたいのですが、全く分かりません。 内容は、8×8程度のオセロ盤を仮定し、その上でオセロ通りの駒の動きをする プログラムを作るということらしいです。更に、次の手として何を選んだらよいか考えなくてはならないんです。 私が使える関数は、そんなに高度ではありません。 ポインタをやや理解しているほどです。 誰か、この問題を解決するのに協力をお願いします。 とても困ってしまい、悩んでいます。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
とりあえず、オセロ盤のプログラムを作成しましょう。 必用な機能としては、 1.8×8の配列を、そのまま表示できる機能 2.盤面のリセット機能(中央に2×2で置いてある状態) 3.オセロのルールに従い、順番に置いていける機能(反転もさせる) 4.盤面の状態をファイルに保存&復元できる機能 1の作成が難しいということなら、オセロはいったん忘れて、そちらを先に勉強する必用があります。グラフィックを使わなくても、printf などでテキストベースでも表現できると思います。 その後、思考ルーチンを少しずつ作成していき、3に加えて、次の一手をコンピュータに置かせる機能を追加する。それを、色々な盤面の状態でテストしていく。アンドゥができると戻ってセーブできるので、テストが楽になります。 最後に黒=COM 対 白=人間などを最初に選ばせて、ゲームらしくしていく。
- K-1
- ベストアンサー率21% (832/3844)
「次のコマは何処に置くか」という知能処理をつくるということでいいのですね。 いきなりプログラムしようとしても初心者には辛いので、 まずはフローチャートなどを書きましょう。 ・空きマスを探し、 ・そこに置けるかを判定(オセロのルールに従う) 上下左右に敵の色のコマがあるか、 置くことにより、自分と挟めるか。 フローチャートが書ければ、あとはそのとおりにプログラムするだけです。 これは特殊な関数とかポインタがどうこうという問題では有りません。 いかにして目的の処理をさせるかというアルゴリズムの課題です。
↓このページに、有料ソフトが紹介して有りますが?
- First_Noel
- ベストアンサー率31% (508/1597)
最適な手を考える,とは高度なので私は分かりませんが, 8×8の中で,打てるところを探す,と言うことをまずやらせてみては? 8×8の升目をひとつずつ調べ,ある目の周り(最大で8箇所)で違う色が あれば「打てるところの候補」であり,更に方向を維持してその先,その先 と調べて自分の色があれば「打てるところ」として確定できます. 複数ある「打てるところ」の何処に打つか?は,上記で一番引っくり返せる ところ,とすれば良いのではないでしょうか. 目先の数だけであって,最適な思考ではありませんけど...