• 締切済み

C言語でゲームのプログラミング

C言語でゲームのプログラムを組みたいのですが、全く分かりません。 内容は、8×8程度のオセロ盤を仮定し、その上でオセロ通りの駒の動きをする プログラムを作るということらしいです。更に、次の手として何を選んだらよいか考えなくてはならないんです。 私が使える関数は、そんなに高度ではありません。 ポインタをやや理解しているほどです。 誰か、この問題を解決するのに協力をお願いします。 とても困ってしまい、悩んでいます。

みんなの回答

noname#30727
noname#30727
回答No.4

とりあえず、オセロ盤のプログラムを作成しましょう。 必用な機能としては、 1.8×8の配列を、そのまま表示できる機能 2.盤面のリセット機能(中央に2×2で置いてある状態) 3.オセロのルールに従い、順番に置いていける機能(反転もさせる) 4.盤面の状態をファイルに保存&復元できる機能 1の作成が難しいということなら、オセロはいったん忘れて、そちらを先に勉強する必用があります。グラフィックを使わなくても、printf などでテキストベースでも表現できると思います。 その後、思考ルーチンを少しずつ作成していき、3に加えて、次の一手をコンピュータに置かせる機能を追加する。それを、色々な盤面の状態でテストしていく。アンドゥができると戻ってセーブできるので、テストが楽になります。 最後に黒=COM 対 白=人間などを最初に選ばせて、ゲームらしくしていく。

  • K-1
  • ベストアンサー率21% (832/3844)
回答No.3

「次のコマは何処に置くか」という知能処理をつくるということでいいのですね。 いきなりプログラムしようとしても初心者には辛いので、 まずはフローチャートなどを書きましょう。 ・空きマスを探し、 ・そこに置けるかを判定(オセロのルールに従う)  上下左右に敵の色のコマがあるか、  置くことにより、自分と挟めるか。 フローチャートが書ければ、あとはそのとおりにプログラムするだけです。 これは特殊な関数とかポインタがどうこうという問題では有りません。 いかにして目的の処理をさせるかというアルゴリズムの課題です。

noname#2072
noname#2072
回答No.2

↓このページに、有料ソフトが紹介して有りますが?

参考URL:
http://mitarai.armat.com/cpp/
  • First_Noel
  • ベストアンサー率31% (508/1597)
回答No.1

最適な手を考える,とは高度なので私は分かりませんが, 8×8の中で,打てるところを探す,と言うことをまずやらせてみては? 8×8の升目をひとつずつ調べ,ある目の周り(最大で8箇所)で違う色が あれば「打てるところの候補」であり,更に方向を維持してその先,その先 と調べて自分の色があれば「打てるところ」として確定できます. 複数ある「打てるところ」の何処に打つか?は,上記で一番引っくり返せる ところ,とすれば良いのではないでしょうか. 目先の数だけであって,最適な思考ではありませんけど...

関連するQ&A

  • C言語のプログラミングの関数と配列を用いてそんなに

    C言語のプログラミングの関数と配列を用いてそんなに難しくないプログラムを考えているのですが、何かいいプログラムはないでしょうか?簡単なゲームや、簡単な貯金計算など種類は問いません。 そこまで難しくない何かいいプログラムを教えてください。

  • C言語のプログラミング

    C言語のプログラムを読もうとしているのですが、初心者故に難儀しており、お助けいただければ幸いです。 プログラムの内に下記のような「CnsktModule* 」の部分があります。 例えば、char *p; のような記述であれば、p はポインタでポインタの指し示す内容はキャラクタの型を 持っていると理解できるのですが、「CnsktModule* 」はどのように解釈したらよいのでしょうか? CnsktModule* cnsktNew(char *printer, char *locale, char *folder_path, int port_num) { 以下省略

  • c言語でできること

    c言語は具体的には何ができるのでしょうか ものすごくがんばれば市販のゲームソフトなども作れるようになるのでしょうか というのは 今、僕はc言語のプログラミングを勉強しています コンパイルするとms-dosの黒い画面が表示されますよね。オセロなどのゲームはとても見にくいです。 あのようなゲームではなく、ちゃんと絵があるようなゲームは作れるのでしょうか?? また3Dのゲームはつくれるのでしょうか? 「c言語のゲーム」とググってもありません c言語だけではできなくてdirectxなどがいることは知っています。 プログラミングを学ぶ上でなにか目標ができたら それに向けてがんばれると思うので情報よろしくお願いします。 わかりにくい文章ですいません^^;

  • C言語 よく使うのは?

    C言語の参考書で、例えば1章~8章まであるとすると、 1章~前半くらいは、printfや変数や、演算など出てきると思うんですが、後半にかけて、配列やポインタや関数など出てくると思います。 実際に仕事で、よく使うのを挙げるとどんなのですか?(例えば、ポインタはよく使うや配列もよく使うや) もちろん、変数や演算などが出来ないと条件分岐や配列もポインタも何も出来ないと思うんですが、 上手く言えないんですが、for文はよく使うから、ちゃんと理解していないとダメとか、仕事ではポインタがしょっちゅう使うとか、ありますか? 本屋さんで見ると、ポインタ専用の本や、関数専用の本があるので、よく使うのかなと思いました。 それか、難しく理解が難しいから、より詳しく書かれているんでしょうか? 上手く説明が出来ていないですが、よろしくお願いします。

  • 意味がわからないエラーがあります【14歳からはじめるC言語ゲームプログラミング】

    14歳からはじめるC言語ゲームプログラミング(横スクロールアクションゲーム)をやっていて、第5章で意味がわからないエラーがでました・・・ error C2664: 'MessageBoxW' : 2 番目の引数を 'const char [25]' から 'LPCWSTR' に変換できません。 1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。 というもので、chap4.cppの23行目と67行目でひっかかりました。 どうすれば解決できますでしょうか。 C言語に詳しい方、よろしくおねがいします。

  • C言語の勉強方法

    こんにちは。 今C言語の勉強方法で悩んでいます。 私のC言語暦は、大学の授業の時に、文法一通りを覚えました。(当時はオセロゲームの次の一手を考えるようなアプリを作りました。) ポインタに関しては、柴田望洋さんの「C言語ポインタの極意」という本を少し読みました。ぼんやりと理解しているような状態です。K&Rの本は概ね理解できます。(演習問題はやっていません。) 仕事としてしているわけではなく、本はいろいろ読んでいるのですが、あまり自分でサンプルコードを打ってみたりはしていません。演習問題も解いていません。 APIに関する知識は乏しいです。アルゴリズムとデータ構造は、ヒントがないと、自力では書く自信がありません。基本情報処理技術者の資格も持っていません。 こういったレベルですが、これからどういった勉強をすればいいでしょうか?アドバイスを頂けるとありがたいです。

  • C言語のポインタとスタックポインタ

    プログラム始めて1ヶ月の初心者です。 C言語のポインタとスタックポインタというのは同じなのでしょうか。 スタックポインタの考えは大体理解出来たのですが C言語のポインタとなるとコードを見てもサッパリ分かりません。 ネットで調べても出てこなかったのでどなたか教えて下さい。 よろしくお願いします。

  • C言語、初心者が書けそうなプログラムとは?

     はじめにお断りしますが、私はプログラマーになるつもりは全くないです。  それとプログラムの知識もほとんど全くありません。  純粋に興味として質問をさせていただきます。 以下はC言語の入門者用の目次からなのですが、 ---------------------------- if,switch,for,while 2次元配列、自作関数、ポインタ、 関数への・コマンドプロンプトでの引数の渡し方 ファイルへの読み込み・書き出し バイナリファイルの入出力 構造体、共用体と列挙体、マクロ、 複数ファイルのプログラム malloc関数 ---------------------------- (1)以上のもの+α程度を習得して、さらに人の助言などによって発展性をもたらすことができたら、具体的に(※)何のプログラムが自作できますか? (※)カレンダー、オセロゲーム など?? (2)C言語を扱うプログラマーとして会社に入社して、最初の1年目で任せられるようなプログラムとは具体的にどういうものがありますか?  特に(2)の質問は範囲が広すぎて回答が困難だと予想されますが、質問している私自身が何もわからない人間なので、質問の範囲を狭めることができません。申し訳ありませんが上手く答えられる方、お願いします。

  • C#で、Cのファイルポインタ(?)のような機能

    プログラムの初心者、かつ、C#の初心者です。  C言語では、ファイルポインタを関数から関数へ渡すことができると思うのですが、C# ではどのようにすれば良いのですか? C#を使っていますが、C言語のような構造でプログラムを書いています。  やりたいことは、ファイルポインタを渡しながら、各関数で、ドカドカと計算結果をファイル内に書いていくということです。  宜しくお願いいたします。

  • C言語でゲーム

    今、独学でC言語を勉強しているんですが。 大きく、 条件処理、繰り返し処理、配列、関数、2次元配列、文字列、構造体、ファイル処理、乱数、検索、バブル・ソート、ポインタ を勉強したんですが。 もしも、ゲームを作るとしたら・・ もし、ボンバーマンみたいなのを作るとなるとどういう勉強をすればいいんでしょうか? もうひとつはHALOみたいなxbox関係などはどの様な勉強をすればいいんでしょうか? 質問が多いですが、よろしくお願いします。