検索結果 32 件
- 8年前
- フォーラム: C言語何でも質問掲示板
- トピック: DrawPolygonIndex3dの挙動について
- 返信数: 1
- 閲覧数: 1968
Re: DrawPolygonIndex3dの挙動について
まず前提として ポリゴンには表面と裏面 があります。 紙にも表面と裏面があるのと一緒です。 あなたは今 ポリゴンを裏側から見ている ので反対に見えるのです。 透ける紙に絵を書いて紙の下側を持ち上げて紙の裏側が見えるように裏返してみてください。 絵が反対になるのがわかるかと思います。 原因は あなたの頂点設定が裏面を描画する仕方 になっているからです。 ポリゴンの表面と裏面を決めるのは頂点の描画順番が 時計回りか反時計回りかということです。 DxLibでは時計回りだとポリゴンの表面、反時計回りだとポリゴンの裏面が描画されるのではないかと思います。 ポリゴンの表面と裏面の確かめ方は「ポリゴン 表 ...
- 11年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語のオセロプログラムについて
- 返信数: 51
- 閲覧数: 23615
Re: C言語のオセロプログラムについて
さこさこさんへ
自分でもついさっき確認しました。
20回位はデバッグしたのですが、バウがなくてすっかり安心していましたが、ありましたね(;_;)
ちょっとコード見てきて訂正します
自分でもついさっき確認しました。
20回位はデバッグしたのですが、バウがなくてすっかり安心していましたが、ありましたね(;_;)
ちょっとコード見てきて訂正します
- 11年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語のオセロプログラムについて
- 返信数: 51
- 閲覧数: 23615
Re: C言語のオセロプログラムについて
CPU(対戦相手)を2種類追加しました!
ひとつは、駒が置くとれる場所にコマを置くもの、もうひとつは盤面評価の値からコマを置くものとなっています。
これで一応ゲームとして遊べるようになりました。
ソースコードのごちゃごちゃはともかく一応完成しましたので解決したということにさせていただきます。
アドバイスを下さったsoftyaさん、usaoさん、cocoさん本当にありがとうございました!
完成したソースコードはアップしておきます。
なんか言いたいことがありましたら、書いてくださると嬉しいです(*^^*)
ひとつは、駒が置くとれる場所にコマを置くもの、もうひとつは盤面評価の値からコマを置くものとなっています。
これで一応ゲームとして遊べるようになりました。
ソースコードのごちゃごちゃはともかく一応完成しましたので解決したということにさせていただきます。
アドバイスを下さったsoftyaさん、usaoさん、cocoさん本当にありがとうございました!
完成したソースコードはアップしておきます。
なんか言いたいことがありましたら、書いてくださると嬉しいです(*^^*)
- 11年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語のオセロプログラムについて
- 返信数: 51
- 閲覧数: 23615
Re: C言語のオセロプログラムについて
一応他人様が読める?くらいにはなったのでアップします。 ただ、自分がこのプログラムを見て気になっているところ(突っ込まれそうなところ)は、 1:メインデータに黒駒、白駒を置く必要があるのか 2:せっかくステータス分岐しているのに勝敗表示部分、スキップ表示部分(Game_Draw)に判定コードを書いている。(Draw関数で判定をしている) 1:はboard.cppに構造体で白駒、黒駒をまとめたものを作って、関数の戻り値を使ってコマ数を呼び戻せるようにするように書き換えてみました。ですが他のファイルに構造体を知らせる必要出てきてグローバル変数が増えてしまって、本末転倒なので結局この形で落ち着きまし...
- 11年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語のオセロプログラムについて
- 返信数: 51
- 閲覧数: 23615
Re: C言語のオセロプログラムについて
オフトピック
usaoさんへ
ありがとうございます!
ありがとうございます!
- 11年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語のオセロプログラムについて
- 返信数: 51
- 閲覧数: 23615
Re: C言語のオセロプログラムについて
softyaさんへ
返信、アドバイスありがとうございます。一応オセロプログラム(対人)が完成したのでご報告させていただきます!!
デバッグ中かつソースグチャグチャなので整理して落ち着いてからソースをはらせていただきたいと思います。
上記の関数についてはすっきり理解出来ました!ありがとうございます!
2つ目の返信についてなんですけど、関数とかは上記の通りグチャグチャなので整理してから提出させていただきます。
一応スクリーンショットだけ貼っておきます。
返信、アドバイスありがとうございます。一応オセロプログラム(対人)が完成したのでご報告させていただきます!!
デバッグ中かつソースグチャグチャなので整理して落ち着いてからソースをはらせていただきたいと思います。
上記の関数についてはすっきり理解出来ました!ありがとうございます!
2つ目の返信についてなんですけど、関数とかは上記の通りグチャグチャなので整理してから提出させていただきます。
一応スクリーンショットだけ貼っておきます。
- 11年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語のオセロプログラムについて
- 返信数: 51
- 閲覧数: 23615
Re: C言語のオセロプログラムについて
すみません返信遅れました>_< ソースを半分くらい書き直しました。 理由は ・自分で読みにくい、理解し難いコードだった。 ・バグが有った。 ・そもそもオセロプログラムの原理を完全に理解できてないような気がした です。 改善点は ・マウス操作にした ・バグを改善した ・ソースを読みやすくした(つもり) ・追加部分を作りやすくした です。 ぱっと見、気になる点。 1.2 / MainData.turnは分かりづらいですかね。配列を使うか関数を推奨します。 2.この辺は構造体推奨ですね。 kx = Board_x + vector_x[vec]; ky = Board_y + vector_y[ve...
- 11年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語のオセロプログラムについて
- 返信数: 51
- 閲覧数: 23615
Re: C言語のオセロプログラムについて
usaoさんへ
そうだったんですか・・・staticについては結構苦戦して調べたのですが初期化が一回しかされないのは知りませんでした・・・
一度カーソル地点から輪っかのような形に駒がでるバグが有りました。そのバグは8方向の各方向ごとに進む前にカーソルに戻らなくてはいけなかった(初期化)のにされてなかったのが原因だと考えていたのですが、その原因はこれみたいですね><
そうだったんですか・・・staticについては結構苦戦して調べたのですが初期化が一回しかされないのは知りませんでした・・・
一度カーソル地点から輪っかのような形に駒がでるバグが有りました。そのバグは8方向の各方向ごとに進む前にカーソルに戻らなくてはいけなかった(初期化)のにされてなかったのが原因だと考えていたのですが、その原因はこれみたいですね><
- 11年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語のオセロプログラムについて
- 返信数: 51
- 閲覧数: 23615
Re: C言語のオセロプログラムについて
すみません自己解決しました。 いろいろなオセロ作成サイトを回ってアルゴリズムはわかったのですが、真似してもなんかうまくできなかったので、自己流のきったないプログラムで解決しました。 check機能とflip機能をひとつにまとめて3つ目の引数でcheckのみか、flipするかの切り替え機能をつけて統合しました(なんかこっちのほうが作りやすかった)。 バグは結構出てそのたびにデバッグ→改善→作りなおしとそれなりに時間はかかってしまいましたが、一応裏返し機能まで自己流で出来ました。 コードが汚い部分はとりあえず置いといて、先に進みます。 int Board_CheckandFlip(int Boar...
- 11年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語のオセロプログラムについて
- 返信数: 51
- 閲覧数: 23615
Re: C言語のオセロプログラムについて
追記 問題部分と思われる部分のコードを貼ります。 ゲームメイン関数からputchip関数を呼び出してcheck関数で8方向文のループ、checkflip関数で一方向に関しての処理を行っているつもりです。すごい読みにくいかもしれませんがよろしくお願いします //現在のカーソルの座標から8方向 #define VECTOR_ALL 8 //チップ画像変数 static int m_Chip[3]; //ボード状態を格納する変数 static int m_Board[BOARD_WIDTH][BOARD_HEIGHT]; //ベクトル変数 static int vector_x[VECTOR_ALL...
- 11年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語のオセロプログラムについて
- 返信数: 51
- 閲覧数: 23615
Re: C言語のオセロプログラムについて
usaoさんへ
返信遅れてすみませんm(__)m
動物将棋はオセロと同じかオセロの次くらいですかね
軍人将棋よりもパターンが少なく駒も版の大きさも小さいのですごい簡単そうに見えますが実際のところどうなんでしょうか笑(・∀・)
返信遅れてすみませんm(__)m
動物将棋はオセロと同じかオセロの次くらいですかね
軍人将棋よりもパターンが少なく駒も版の大きさも小さいのですごい簡単そうに見えますが実際のところどうなんでしょうか笑(・∀・)
- 11年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語のオセロプログラムについて
- 返信数: 51
- 閲覧数: 23615
Re: C言語のオセロプログラムについて
現在作成中のオセロプログラムなんですけど、うまくコマを置くことができません。
駒を置けるか判定をしてるんですけど、どこかが間違っているのかうまく動いてくれません
1.オセロの現在カーソルから8方向のうち一方向にforのループ文で進む
2.空白か壁の外ならループ終了
3.敵の駒ならフラグをオンにして進む
4.進んだ先で自分の駒を見つけたら関数の戻り値0を返しコマを置く
駒を置けるか判定をしてるんですけど、どこかが間違っているのかうまく動いてくれません
1.オセロの現在カーソルから8方向のうち一方向にforのループ文で進む
2.空白か壁の外ならループ終了
3.敵の駒ならフラグをオンにして進む
4.進んだ先で自分の駒を見つけたら関数の戻り値0を返しコマを置く
- 11年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語のオセロプログラムについて
- 返信数: 51
- 閲覧数: 23615
Re: C言語のオセロプログラムについて
softyaさん
オセロの作り方を見ていると大体が人間どうしで戦えるようにしてから、CPU追加という形が多いようですね(個人的にはそのほうが作りやすい)
softyaさんも仰る通り、そうします!
軍人将棋なんですけど、コマごとに攻撃力の数値を降るという単純なAI(スパイや公平などの例外処理は追加する)になりそうなのでオセロと同じかオセロより難しいくらいになりそうな気がします。
ただ、オセロよりもコマ数や盤面が大きいのでRTSの前段階のSTGの前段階としてはいい課題になりそうですね>_<
オセロの作り方を見ていると大体が人間どうしで戦えるようにしてから、CPU追加という形が多いようですね(個人的にはそのほうが作りやすい)
softyaさんも仰る通り、そうします!
軍人将棋なんですけど、コマごとに攻撃力の数値を降るという単純なAI(スパイや公平などの例外処理は追加する)になりそうなのでオセロと同じかオセロより難しいくらいになりそうな気がします。
ただ、オセロよりもコマ数や盤面が大きいのでRTSの前段階のSTGの前段階としてはいい課題になりそうですね>_<
- 11年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語のオセロプログラムについて
- 返信数: 51
- 閲覧数: 23615
Re: C言語のオセロプログラムについて
cocoさんへ
なるほど、モチベ次第ですか・・・
モチベーションは(今のところ)高いつもりなので同時並行でやっていこうと思います!
三目並べのAIは改善できるかわかりませんが今改善中です>_<
オセロについてはパスの概念も追加されたりするので関数とか位置から作りなおさないとダメそうなので地味に時間が作りそうですねw
オセロAIまではまだまだ時間がかかりそうです。
なるほど、モチベ次第ですか・・・
モチベーションは(今のところ)高いつもりなので同時並行でやっていこうと思います!
三目並べのAIは改善できるかわかりませんが今改善中です>_<
オセロについてはパスの概念も追加されたりするので関数とか位置から作りなおさないとダメそうなので地味に時間が作りそうですねw
オセロAIまではまだまだ時間がかかりそうです。
- 11年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語のオセロプログラムについて
- 返信数: 51
- 閲覧数: 23615
Re: C言語のオセロプログラムについて
cocoさんへ turnは作りなおした時に最初からつくったのですっかり修正するの忘れてました;; 関数の流れはちょっと考えてみたんですけど画像の通りみたいにした方がいいということでいいんでしょうか? すべてGet関数にすることも考えたんですけどGetGetくどいかな(見やすくするため)と思ってCursorメインの座標のみGet関数で得られるようにしたんですけどやはり訂正した方がいいですか>< AIに関しては多分スクリプトを書く能力がないと見ぬかれて、softyaさんの指示通り自分がイチから作ったAIなんでやはりダメダメですね(´・ω・`) あと個人的にはオセロに取り掛かりたいんですけど、もうオ...
- 11年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語のオセロプログラムについて
- 返信数: 51
- 閲覧数: 23615
Re: C言語のオセロプログラムについて
softyaさんへ
わざわざ忙しい中すみません;;
ゆっくり見れる時で大丈夫です><
わざわざ忙しい中すみません;;
ゆっくり見れる時で大丈夫です><
- 11年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語のオセロプログラムについて
- 返信数: 51
- 閲覧数: 23615
Re: C言語のオセロプログラムについて
ちょっとグラフィックが気に入らなかったので、画像を差し替えました。
サイズも2倍にしました
ver1.2 三目並べ
サイズも2倍にしました
ver1.2 三目並べ
- 11年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語のオセロプログラムについて
- 返信数: 51
- 閲覧数: 23615
Re: C言語のオセロプログラムについて
usaoさんへ
解説有難うございます!
AOEを作る前にはC&Cを作れないととてもできなそうですね。資源はまだしも経路探索はやはり一番難しそうですね;;
僕は現役のAOC(AOE2)プレーヤーなんですけど、たまに経路探索AIが変な動きをすると感じる時がありますね。
それでもあれほどのAIを作るには相当なアルゴリズム技術がないと作れないようですね・・・
情報提供有難うございます><
解説有難うございます!
AOEを作る前にはC&Cを作れないととてもできなそうですね。資源はまだしも経路探索はやはり一番難しそうですね;;
僕は現役のAOC(AOE2)プレーヤーなんですけど、たまに経路探索AIが変な動きをすると感じる時がありますね。
それでもあれほどのAIを作るには相当なアルゴリズム技術がないと作れないようですね・・・
情報提供有難うございます><
- 11年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語のオセロプログラムについて
- 返信数: 51
- 閲覧数: 23615
Re: C言語のオセロプログラムについて
カーソル座標を入れるための構造体と変数をcursor.hで宣言しCursor_Get関数で座標を取ってこれるようにしました。 この簡単な発想が出てくるまでにも結構時間がかかってしまいましたが、関数の戻り値を複数返してそれをどうやって使うかに地味に苦戦してしまいました。笑 一応参考にした方法貼っときますね 関数の戻り値を複数得る方法 http://dixq.net/forum/viewtopic.php?f=3&t=10275 Keboard_Get関数からヒントを得ました http://dixq.net/g/d_04.html structを使った関数の例 http://oshiete.goo...
- 11年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語のオセロプログラムについて
- 返信数: 51
- 閲覧数: 23615
Re: C言語のオセロプログラムについて
なるほど、、、
言われてみればそうですね、、、
ちょっと改良してきます
言われてみればそうですね、、、
ちょっと改良してきます
- 11年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語のオセロプログラムについて
- 返信数: 51
- 閲覧数: 23615
Re: C言語のオセロプログラムについて
softyaさんへ
ソリューションファイルやその他もろもろがないとうまく開けないと勝手に思ってましたw
30MB近く毎回上げるのはさすがに馬鹿らしいので今度からはソースコードだけあげます><
あとソースコードの分割の方法にsoftyaさんのRPG講座からファイルを少し参考にさせてもらいました。
ソリューションファイルやその他もろもろがないとうまく開けないと勝手に思ってましたw
30MB近く毎回上げるのはさすがに馬鹿らしいので今度からはソースコードだけあげます><
あとソースコードの分割の方法にsoftyaさんのRPG講座からファイルを少し参考にさせてもらいました。
- 11年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語のオセロプログラムについて
- 返信数: 51
- 閲覧数: 23615
Re: C言語のオセロプログラムについて
slnファイルがやたらサイズが大きかったので他のアップローダーにあげていました><
ソースコードと画像をまとめたものを再度上げ直しました
ソースコードと画像をまとめたものを再度上げ直しました
- 11年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語のオセロプログラムについて
- 返信数: 51
- 閲覧数: 23615
- 11年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語のオセロプログラムについて
- 返信数: 51
- 閲覧数: 23615
Re: C言語のオセロプログラムについて
今前回書いたプログラムを参考にしながら骨組みを位置から作り替えたプログラムを作り終えました。
一応完成したのですが、細かいところを変えています。
前回のエラーログについては一応理解?したので自己解決しました。
完成したプログラムは遂行したあと圧縮してアップローダーに上げたいと思います。
一応完成したのですが、細かいところを変えています。
前回のエラーログについては一応理解?したので自己解決しました。
完成したプログラムは遂行したあと圧縮してアップローダーに上げたいと思います。
- 11年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語のオセロプログラムについて
- 返信数: 51
- 閲覧数: 23615
Re: C言語のオセロプログラムについて
usaoさんへ
>初代Command&Conquerみたいなマップ固定のものならまだなんとか…?
C&Cというゲームを知らないのでなんとも言えないんですが、AOE2のマップがいつもおなじものと考えていいのでしょうか
>RTSはとても難易度が高い部類のものなのではないかな?と思います.
http://d.hatena.ne.jp/eiki_okuma/20110224/1298526867
こちらのページを見たんですが、やはり難易度が相当高いようですw
ランダムマップはさておきAIどころかRPGも作れなさそうなので、しばらくは修行です笑
>初代Command&Conquerみたいなマップ固定のものならまだなんとか…?
C&Cというゲームを知らないのでなんとも言えないんですが、AOE2のマップがいつもおなじものと考えていいのでしょうか
>RTSはとても難易度が高い部類のものなのではないかな?と思います.
http://d.hatena.ne.jp/eiki_okuma/20110224/1298526867
こちらのページを見たんですが、やはり難易度が相当高いようですw
ランダムマップはさておきAIどころかRPGも作れなさそうなので、しばらくは修行です笑
- 11年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語のオセロプログラムについて
- 返信数: 51
- 閲覧数: 23615
Re: C言語のオセロプログラムについて
http://fast-uploader.com/file/6962455050389/ ご指摘していただいた細かいところの修正は終わりました。 今ソースの分割、グローバル変数を減らしている作業中なのですが、 仮デバッグしたところよくわからないエラーが出てきて困ってます エラー 1 error LNK2005: "enum Status status" (?status@@3W4Status@@A) は既に board.obj で定義されています。 C:\src\三目並べ\cpu.obj 三目並べ エラー 2 error LNK2005: "enum Status status" (?stat...
- 11年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語のオセロプログラムについて
- 返信数: 51
- 閲覧数: 23615
Re: C言語のオセロプログラムについて
お二人の意見をまとめて
改善点
・グローバル変数をなくす。 →ローカル関数にする。
・ファイル分割をする。 →関数をhファイルとcppファイルに分ける。
・プログラムの変数などをわかりやすくする。 →読めるソースコードを目指します。
改善点
・グローバル変数をなくす。 →ローカル関数にする。
・ファイル分割をする。 →関数をhファイルとcppファイルに分ける。
・プログラムの変数などをわかりやすくする。 →読めるソースコードを目指します。
- 11年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語のオセロプログラムについて
- 返信数: 51
- 閲覧数: 23615
Re: C言語のオセロプログラムについて
usaoさんへ 返信有難うございます! >このコードを 【外部変数を1つも使わない形】 に修正できますか? 仰る通りにグローバル変数をなくすようにします! 明日から少し予定があるので返信が遅れてしまいますが、必ず完成させてまたソースを載せますので、ぜひ改善点がまたありましたらよろしくお願いします! cocoさんへ 返信ありがとうございます! >ちょっと気になった所は折角色を定数(#define BLACKなど)で定義しているので >勝敗判定のCheckでcolor == BLACKなどにして定数を使ってあげた方が良いかもしれません。 >DrawGraphのとことかも本当はMAPCHIP_SIZ...
- 11年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語のオセロプログラムについて
- 返信数: 51
- 閲覧数: 23615
Re: C言語のオセロプログラムについて
勝敗判定のループ化、CPU(GetRandで適当にコマを置くので弱い)を追加、わかりやすいようにコメントを追加しました。一応完成です。 もし良かったらこの三目並べのコードの改善点(非効率的、見にくいなど)があれば教えてくれると助かります! オセロすら作れない自分がRTS作れるようになる自信がないのですが、とにかくオセロを完成させたいと思います! #include "DxLib.h" #define NONE 0 #define BLACK 1 #define WHITE 2 //ステータス enum Status{ PLAYING, WIN, LOSE, EVEN } status = PLA...
- 11年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語のオセロプログラムについて
- 返信数: 51
- 閲覧数: 23615
Re: C言語のオセロプログラムについて
一応完成しましたが、条件をやみくもに乗せただけで効率的なので書き換えるつもりです。 ソースでなにか変更した方がいいところがあったら教えてくれると助かります。 #include "DxLib.h" #define NONE 0 #define BLACK 1 #define WHITE 2 //碁盤生成 int board[3][3] = { { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }; //ステータス enum Status{ PLAYING, WIN, LOSE, EVEN } status = PLAYING; //プレイヤー int px = 0, p...
- 11年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語のオセロプログラムについて
- 返信数: 51
- 閲覧数: 23615
Re: C言語のオセロプログラムについて
enumのエラー?が出ますが一応形は出来ました。 挟むと色を変える機能はまだ入れてませんが、実装できたらこのトピックにまたソースを貼りに来ます。 #include "DxLib.h" #define NONE 0 #define BLACK 1 #define WHITE 2 //碁盤生成 int board[3][3] = { { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }; //ステータス enum{ PLAYING, WIN, LOSE } status = PLAYING; //プレイヤー int px = 0, py = 0; //ターン(黒が先手) ...
- 11年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語のオセロプログラムについて
- 返信数: 51
- 閲覧数: 23615
Re: C言語のオセロプログラムについて
softyaさん返信有難うございます。
こちらのひーやんさんのように僕も三目並べから作りたいと思います。
三目並べのソースができたらその時はまたここにソースを貼りたいと思います。
回答有難うございました。
こちらのひーやんさんのように僕も三目並べから作りたいと思います。
三目並べのソースができたらその時はまたここにソースを貼りたいと思います。
回答有難うございました。