C言語のオセロのプログラム

[戻る]
ぷよぷよ 2005/01/28(金) 01:39:04
オセロのプログラムを作る課題が出たんですが、全くわかりません。表示の仕方もわか
らないし、思考ルーチンもわからないんで教えてください。ずうずうしいのですが、私
は本当に何にもわかってないんで詳しくお願いしますm(−−)m

wood 2005/01/28(金) 05:36:36
お前の「思考ルーチン」もわかりません
課題の丸投げ質問ではなく、

どんな実行条件に対して、自分で努力した結果、予想と反する結果が出るので
これを解決するにはどうしたらよいか

のような質問であれば、だいたいの人は協力してくれるけど
今のままだと、非難されるだけで、誰も協力してくれないよ

自分で考えられる、アルゴリズムくらいは示したらどうなの?

瀬戸っぷ [E-Mail] 2005/01/28(金) 06:12:16
http://www.amazon.co.jp/exec/obidos/ASIN/4875934289/249-9754066-8552365

C++かJavaですが…
買って読むなりして下さい。

KING・王 2005/01/28(金) 08:20:16
> 表示の仕方もわからないし、

オセロ盤のマスの数をNとすると、

char Table[N][N][3] = {0x00};

で、オセロ盤の状態を格納する変数を作成し、
黒丸(●)と白丸(○)と、まだ使用されていないマス(□)を、

strcpy( Table[a][b], "●" );

というような形で格納し、あとはループを使用して、

for( i = 0; i < N; i++ ){
    for( j = 0; j < N; j++ ){
        printf( "%s", Table[i][j] );
    }//for(j)
    printf( "\n" );
}//for(i)

といようにすれば、取りあえず表示はできると思う。

> 思考ルーチンもわからないんで教えてください。

まず、プログラムにする前に、どのように考えていくかを順番に言葉で書き出してみて下さい。

例えば、単純なところで、次のような方法もあります。
(1)左上から順番に、あいているマスを探す。
    (Table[x][y]の内容が"□"と等しいところを探す。)
(2)そこにオセロの駒(?)がおけるか確認する。
(3)置けない場合は、(1)に戻り、次のマスを探す。おける場合はそこにおく。
(4)駒(?)をおいたことによる他の駒(?)への影響(変化)をTableに反映する。
(5)Tableを再表示する。

はっきり言って、全く強くないと思いますが、一応思考ルーチンです。

PATIO 2005/01/28(金) 10:58:30
うーん。
コンソールアプリで良いのですかねぇ。
それともWin32APIでGUIをもったアプリにするのだろうか?

質問をするにしても具体的な内容が把握できるように提示しないと
話が先に進みません。

コンソールアプリなら昔ながらの方法で色々やってみるのも手なんだと思いますが。
既にコンソールの話ならKING・王さんがヒントを出しておられるようなので
それをヒントに頑張ってみるのも良いと思います。

思うんですが、
課題で出されたと言うことはそれなりの講義があったはずだと思うんですが、
何で全く解らないのでしょう?
講義を聴いていなかったのか、聞いていたけれど理解できなかったのか。
たとえ聞いた内容をつぎはぎしてプログラムが出来上がったとしても
どうしてそう動くのかが理解できていないのであれば、全く意味が無いと思うので
その辺は良く考えて行動された方がよろしいかと思います。
できれば、講義が理解できない事について、講師の先生に相談した方がいいと思います。
解らないまま終わってしまって一番損をするのは、ぷよぷよさん自身だと思いますよ。

akey 2005/01/28(金) 13:27:46
HOME
http://hp.vector.co.jp/authors/VA015468/platina/index.html

オセロプログラムの作り方
http://hp.vector.co.jp/authors/VA015468/platina/algo/index.html

2005/01/28(金) 15:35:20
「オセロのプログラムを作る課題」=「コンピュータの思考ルーチンも必須」なんでしょうか。

ぷよぷよさんの質問内容からは「必須」かどうかは読み取れなかったのですが。

とりあえず、先手後手ともに人間が操作するものを作ってみて、
あとは、石がおけるところに適当に石をおくっていう手で
お茶を濁すもの手かなとは思いますが。

回答になってないですが、ご参考に。

2005/01/28(金) 19:22:31
ここの「リバーシ(オセロのことね)を作る」が参考になるかも。

http://www.sm.rim.or.jp/~shishido/gamedev.html

てつや 2005/01/28(金) 21:17:12
>お前の「思考ルーチン」もわかりません

そういう挑発的な回答はやめましょう。
黙殺するのがルールでは?

古いスレッドには追加発言できません。