コレジャナイです。画像が消えてしまったので再掲です。
下に移動のみ再帰処理の内容を図示しました。
頭番号1から順にご覧下さい。
検索結果 78 件
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程2
- 返信数: 54
- 閲覧数: 18824
Re: オセロのプログラム制作過程2
お久しぶりです。 前回構造体とポインタの質問をして後 これならいけるとしゃしゃってソフト屋さんに言われた通り、関数分けをしていたプログラムを塗り潰す用に再帰関数に書き換えてしまったのですが、上手く行きませんでした。 以前の再帰と違って今回のは初手すら打ってくれない状態です。 ただ以前より全体のプログラムとしての形は良くなっている様な気がします。 再帰でお約束の無限ループがエラーの原因で、どうやら最下層まではしっかり探索してくれているのですが、最初の階層に戻った後バグります。 というよりループを脱出してくれないのですよね・・・。 脱出条件を設けてあるのですが、何故かループ脱出の値まで進んだ後また...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: アドレスを扱える型について
- 返信数: 14
- 閲覧数: 5626
Re: アドレスを扱える型について
>ソフト屋さん お陰で原因は判明しました 再帰関数内の再帰呼び出し手前で printf("現在の値 number:%d count:%d\n",test_p->number,test_p->count); を追加するとnumberの値が加算されてないために延々再帰されてスタックオーバーフローになっとりました。 しかし何故numberの値が増えてくれないのかが分かりません・・・orz prindtfで値が参照出来ているという事は再帰内から構造体にしっかりアクセスは出来ている訳ですから、ちゃんとnumberも加算・・・あ、。 出来ました。 そうでした、for文は三番目の式が行われるのは最後だから今...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: アドレスを扱える型について
- 返信数: 14
- 閲覧数: 5626
Re: アドレスを扱える型について
あぁ int Main ではなく int main でした。 最近 WinMainばかりでしたのでごっちゃになってましたorz しかし実行した所強制終了してしまいました。 無限ループにはならないと思うのですが・・・何故でしょう。。 ちょっと修正 #include <stdio.h> //構造体の定義 typedef struct test_struct{ int number; //整数を扱う変数 int count; //割り切れた回数を収納しておく変数 }test_struct; //関数のプロトタイプ宣言 void Recursive(test_struct *test_p); //メイ...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: アドレスを扱える型について
- 返信数: 14
- 閲覧数: 5626
Re: アドレスを扱える型について
このような形で宜しいでしょうか? #include <stdio.h> //構造体の定義 typedef struct test_struct{ int number; //整数を扱う変数 int count; //割り切れた回数を収納しておく変数 }test_struct; //関数のプロトタイプ宣言 void Recursive(test_struct *test_p); //メイン関数 int Main(void){ test_struct test ={0,0}; //構造体変数の初期化 Recursive(&test); //再帰関数呼び出し printf("アドレス:%d\n",&...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: アドレスを扱える型について
- 返信数: 14
- 閲覧数: 5626
Re: アドレスを扱える型について
あ、このソースコードだと再帰するたびに0からになる事に今気付きました。
削除はご法度との事なので、修正するまで上のコードはスルーしてあげて下さいm(_ _)m
削除はご法度との事なので、修正するまで上のコードはスルーしてあげて下さいm(_ _)m
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: アドレスを扱える型について
- 返信数: 14
- 閲覧数: 5626
Re: アドレスを扱える型について
100までの数の内、2で割り切れる数をカウントするプログラムを組んでみました。(こんなの再帰も構造体も使う必要無いですけれど・・・) まずは理想の形 #include<stdio.h> //構造体の定義 typedef struct test_struct{ int count; //割り切れた回数を収納しておく変数 }test_struct; //関数のプロトタイプ宣言 void Recursive(test_struct *test_p); //メイン関数 int Main(void){ test_struct test ={0}; //構造体変数の初期化 Recursive(&test)...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: アドレスを扱える型について
- 返信数: 14
- 閲覧数: 5626
Re: アドレスを扱える型について
丁度今そう思い直しました。
オセロのコードを載せても他の方が困惑するだけでしょうし、ちょっとテストコードを作ってみますm(_ _)m
オセロのコードを載せても他の方が困惑するだけでしょうし、ちょっとテストコードを作ってみますm(_ _)m
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: アドレスを扱える型について
- 返信数: 14
- 閲覧数: 5626
Re: アドレスを扱える型について
すみません、予想以上に訳の分からない質問になってしまいました。
一旦こちらの質問は解決とさせて頂き、しかるべき質問の場所(オセロの所)にソースコードを添付したいと思いますので暫しお待ちして頂いても宜しいでしょうか?
(自分で適当に書いていたのでソースコード内がぐちゃぐちゃでコメント皆無なため)
一旦こちらの質問は解決とさせて頂き、しかるべき質問の場所(オセロの所)にソースコードを添付したいと思いますので暫しお待ちして頂いても宜しいでしょうか?
(自分で適当に書いていたのでソースコード内がぐちゃぐちゃでコメント皆無なため)
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: アドレスを扱える型について
- 返信数: 14
- 閲覧数: 5626
アドレスを扱える型について
ただ今再帰処理のプログラムの下地を作ろうとしているのですが、引数に構造体のアドレスを渡そうと思っています。 しかし普通に構造体のアドレスを渡し、それをポインタ型で受け取ってしまうと次の再帰関数の時にポインタのポインタ?(これで正しいのか自信ありません・・)の様にしなくてはならなくなり、これはアカンなと気付きました。 そこでアドレスを一旦何かに収納し、それを引数として渡し、関数内でその引数に対し *構造体ポインタ名 = 引数 の様にして関数外の構造体にアクセスしようと考えました。 そのために構造体のアドレスをPrintfで調べた所整数だったため、int型でアドレスを扱おうとしたらエラーが出てしま...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: 【雑談】ゲーム製作の絵について
- 返信数: 5
- 閲覧数: 2156
Re: 【雑談】ゲーム製作の絵について
そうですね・・・
プログラムに夢中にならず少しでも今の内から絵の練習をしておくべきかなとも思ってましたが、二兎追うもの一兎も得ずという事になってしまう可能性もありますね。
ゲーム製作に関しては在学中限りでお終いとなってしまうでしょうから、悔いの残らないようにしたいものです。
ゲーム製作中に必要になった素材に関しては棒人間レベルの絵を自作するつもりでした。
解決とさせて頂きます。
プログラムに夢中にならず少しでも今の内から絵の練習をしておくべきかなとも思ってましたが、二兎追うもの一兎も得ずという事になってしまう可能性もありますね。
ゲーム製作に関しては在学中限りでお終いとなってしまうでしょうから、悔いの残らないようにしたいものです。
ゲーム製作中に必要になった素材に関しては棒人間レベルの絵を自作するつもりでした。
解決とさせて頂きます。
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: 【雑談】ゲーム製作の絵について
- 返信数: 5
- 閲覧数: 2156
Re: 【雑談】ゲーム製作の絵について
>>maboさん ご返事有難う御座いますm(_ _)m やはり素人絵は無理がありますよね・・・。 一応目標のゲーム製作までに1~2年は掛かる予定なのですが、その間に絵の練習をしておけば大丈夫かなぁと思っていたのですが、maboさんから見てどう思われます? 1~2年程度じゃやはり初心者の域を脱せないでしょうか。 絵師さんに頼むという事も考えたのですが、色々揉め事が発生しそうなので出来れば自力でどうにかしたいと思っております。 著作権フリーの絵があるとは知りませんでしたorz おっしゃる通り、最後の手段としてフリーの絵にストーリーなどを合わせる形で一応は作れそうです(’’ 今は簡単なオセロなど製作...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: 【雑談】ゲーム製作の絵について
- 返信数: 5
- 閲覧数: 2156
【雑談】ゲーム製作の絵について
プログラムとは全く関係の無い話ですが、ご了承下さいm(_ _)m 自分は五月の中旬からプログラムという世界に足を踏み入れた新参者ですが、この掲示板や親切な方に恵まれ、目標の期間までに作りたいゲームのプログラムを作れる様になるかもしれないという希望を持てる様になりました。 しかしゲーム製作はプログラミングだけで成り立っている訳ではなく、しかも消費者側はプログラムよりも他の要素の良し悪しでそのゲームを手に取るか判断する場合が多いと思います。 (これはプログラムを軽視している訳ではなく、プログラムの効力はゲームをプレイしてから始めて発揮されるものだと思っております) 他の要素の内、音に関しては様々な...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程2
- 返信数: 54
- 閲覧数: 18824
Re: オセロのプログラム制作過程2
配列の添字[]の中身を 奇数の時はお互いを足し 偶数の時もお互いを足すけれど、後で上の値から差し引く という形にすれば良いのかなぁ等と漠然に考えておりました。 共通化出来そうなんですよね、おっしゃる通り。 最初の評価値 += 三階層目の評価値 の様な形にすれば行けそうな気もしますが、色々試してみます。 (そもそもこの評価システム自体が気に入らないというか、再帰の邪魔をしている気がしてならないです。もっと上手い評価の方法を思いつければ良いのですが) 取り敢えず再帰に挑戦するに当たって以前と同じ様な没にならないために、確認を・・・。 作るのはFor文2つづつを一まとめにした再帰関数ですよね? つま...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程2
- 返信数: 54
- 閲覧数: 18824
Re: オセロのプログラム制作過程2
評価値が適当になっておりますが、取り敢えず訂正しました。
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程2
- 返信数: 54
- 閲覧数: 18824
Re: オセロのプログラム制作過程2
評価値が安定しなかったので、しっかり値を追って整理したらそこそこ戦えるAIになりました。
しかしソースコードが見るも無残な姿に・・・・。
それと角周辺がまだおかしい置き方する事がたまにあります。
しかしソースコードが見るも無残な姿に・・・・。
それと角周辺がまだおかしい置き方する事がたまにあります。
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程2
- 返信数: 54
- 閲覧数: 18824
Re: オセロのプログラム制作過程2
相手が置けない場所に置けば良いや等と安直に考えておりました。
終了手前で無限ループ入らない様にという役目もありますので、後々直していきたいと思います。
階層を増やすのはFor文If文の今まで通りで大丈夫ですよね?
一応その方向で進めてみます。
終了手前で無限ループ入らない様にという役目もありますので、後々直していきたいと思います。
階層を増やすのはFor文If文の今まで通りで大丈夫ですよね?
一応その方向で進めてみます。
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: ポインタによる二次配列参照について
- 返信数: 8
- 閲覧数: 4132
Re: ポインタによる二次配列参照について
あぁ!
void Board_copy(int(*)[11]);
にすれば解決しそうですね。
長い間付き合って下さって有難う御座いましたm(_ _)m
void Board_copy(int(*)[11]);
にすれば解決しそうですね。
長い間付き合って下さって有難う御座いましたm(_ _)m
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: ポインタによる二次配列参照について
- 返信数: 8
- 閲覧数: 4132
Re: ポインタによる二次配列参照について
プロトタイプ宣言はこちらです void Board_copy(int*[11]); これが原因な気もしてきました。 どう書き直したら良いものでしょうか・・・? >>a5uaさん その様に書き直した所、 board.cpp(20) : error C2106: '=' : 左のオペランドが、左辺値になっていません。 のエラーは無くなりました。有難う御座います。 y座標1づつに入っている配列(x座標の始まりから終わりまで)の先頭をポインタで対応していくものだと考えていたのですが、そういう訳ではないのですねorz よく1次元の配列ならば添字なしに配列名だけで先頭のアドレスを渡せていたので、二次元配列...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: ポインタによる二次配列参照について
- 返信数: 8
- 閲覧数: 4132
Re: ポインタによる二次配列参照について
エラーメッセージはこちらです
board.cpp(20) : error C2106: '=' : 左のオペランドが、左辺値になっていません。
Graph.cpp(6) : error C2664: 'Board_copy' : 1 番目の引数を 'int (*)[11]' から 'int *[]' に変換できません。(新しい機能 ; ヘルプを参照)
board.cpp(20) : error C2106: '=' : 左のオペランドが、左辺値になっていません。
Graph.cpp(6) : error C2664: 'Board_copy' : 1 番目の引数を 'int (*)[11]' から 'int *[]' に変換できません。(新しい機能 ; ヘルプを参照)
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程2
- 返信数: 54
- 閲覧数: 18824
Re: オセロのプログラム制作過程2
出来ました。 一応ゲームプレイした限りでは最後まで出来ました。 ただ何故か前より弱くなったような・・・?(自分が慣れたのか・・・) #include "CPU_AI.h" #include "Board.h" typedef struct val_struct{ int cpuX; int cpuY; int valX; int valY; int cpu_val_point; int player_val_point; int total; int player_val_point_save; }val_struct; //プロトタイプ宣言 static int CPU_AI(int,int...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: ポインタによる二次配列参照について
- 返信数: 8
- 閲覧数: 4132
ポインタによる二次配列参照について
他ファイルで定義されている二次配列をコピーもしくは参照するにはどのようにポインタを扱えば良いのか分からず、質問致しました。 ソースコードは以下の通りです。 (見易いよう変えてあります) Graph.cpp void Draw_board(){ int copy_board[11][11]; int (*copy)[11] = copy_board; int x,y; Board_copy(copy); for( y = 1 ; y < 11 -1 ; y++ ){ for( x = 1 ; x < 11-1 ; x++ ){ switch(copy_board[ y ][ x ] ){ cas...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程2
- 返信数: 54
- 閲覧数: 18824
Re: オセロのプログラム制作過程2
引数・・・・・・・・・増えました・・・・・orz; グローバルstaticを使用しない場合で結構考えたのですが、このような方法しか浮かびませんでした・・・・・・。 #include "CPU_AI.h" #include "Board.h" //プロトタイプ宣言 static int CPU_AI(int,int); static void Val_point_check(int,int,int,int,int*,int*,int*,int*); //CPUの入力関数 int CPU_input(int Tekikoma){ int end = 0; int cpuX,cpuY,playerX...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程2
- 返信数: 54
- 閲覧数: 18824
Re: オセロのプログラム制作過程2
(1)一時的に適当な名前を付けてしまいました。直します。
(2)一本化出来そうだなぁ確かにと思い考えていたのですが、これが一本化出来るならCPU_AIの中に収める事が可能なんじゃないかって考え、その方向で頑張ってみます。
(2)一本化出来そうだなぁ確かにと思い考えていたのですが、これが一本化出来るならCPU_AIの中に収める事が可能なんじゃないかって考え、その方向で頑張ってみます。
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程2
- 返信数: 54
- 閲覧数: 18824
Re: オセロのプログラム制作過程2
このような感じでしょうか・・・? 不要な物なのかの判別はつきませんでしたorz ループ文はかなり似てますね。 ループ自体の関数を作って、それに引数としてcpuXやplayerXなど渡しても問題なさそうです。 #include "CPU_AI.h" #include "Board.h" //プロトタイプ宣言 static int CPU_AI(int,int); static int CPU_val(int,int,int); static int PLAYER_val(int,int,int,int,int,int); static int valX=0; //評価値の高かった座標 stati...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程2
- 返信数: 54
- 閲覧数: 18824
Re: オセロのプログラム制作過程2
以後気をつけます。
再帰にして色々といじる前のソースコードでしたら保存してあります
(再帰にしたら絶対上手くいかないだろうなと思っていたので)
以前ソフト屋さんのおっしゃった様に、この状態からFor文とIf文で更に先読みさせたプログラムを作る事から始めた方が宜しいでしょうか?
再帰にして色々といじる前のソースコードでしたら保存してあります
(再帰にしたら絶対上手くいかないだろうなと思っていたので)
以前ソフト屋さんのおっしゃった様に、この状態からFor文とIf文で更に先読みさせたプログラムを作る事から始めた方が宜しいでしょうか?
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程2
- 返信数: 54
- 閲覧数: 18824
Re: オセロのプログラム制作過程2
駄目でした。
これ以上はいじっても悪くなる一方なので此処で止めておきます。
もう全面的に書き直すべきだと思いますが、書き直す際にこの形は守ってください等御座いましたらおっしゃって頂けると幸いです。
これ以上はいじっても悪くなる一方なので此処で止めておきます。
もう全面的に書き直すべきだと思いますが、書き直す際にこの形は守ってください等御座いましたらおっしゃって頂けると幸いです。
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程2
- 返信数: 54
- 閲覧数: 18824
Re: オセロのプログラム制作過程2
あぁ削除したのですが、間に合いませんでしたかorz
自分もおかしい事に気付き、今直している所です。
多分根本的に構造がおかしいのですが、何だか後少しでちゃんと先読みの出来るプログラムが出来上がる様な気がして・・・。
明日までには完成させて動きを見たいです。
その上でこれじゃアカンという事でしたら、書き直していきたいと思いますm(_ _)m
お手を煩わせてしまってすみません。
自分もおかしい事に気付き、今直している所です。
多分根本的に構造がおかしいのですが、何だか後少しでちゃんと先読みの出来るプログラムが出来上がる様な気がして・・・。
明日までには完成させて動きを見たいです。
その上でこれじゃアカンという事でしたら、書き直していきたいと思いますm(_ _)m
お手を煩わせてしまってすみません。
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程2
- 返信数: 54
- 閲覧数: 18824
Re: オセロのプログラム制作過程2
多分ソフト屋さんのおっしゃってる事に近いことを出来ていた気がします。 stack_countはスタティックなグローバル変数です。 //CPU思考入力の再帰関数 int CPU_fact(int cpuX ,int cpuY,int Tekikoma,int Mykoma){ int playerX; int playerY; int CPU_val_point = -100; int PLAYER_val_point = -100; int PLAYER_val_point_save; // 最初の状態を保存 Board_CPU_BanData_push(); if(Board_Search(...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程2
- 返信数: 54
- 閲覧数: 18824
Re: オセロのプログラム制作過程2
totalの初期化を忘れていただけで、それを書き加えた所問題なく動くようにはなりました。
ただソフト屋さんのご指摘があった通り、再帰の書き方が絶対におかしいですね。
これじゃ簡単に深くまで探索出来ない(再帰は簡単に探索可能なのがメリットなのに)です。
とりあえず今の所この状態からどうやって更に先読みするか考えてみます。
ただソフト屋さんのご指摘があった通り、再帰の書き方が絶対におかしいですね。
これじゃ簡単に深くまで探索出来ない(再帰は簡単に探索可能なのがメリットなのに)です。
とりあえず今の所この状態からどうやって更に先読みするか考えてみます。
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程2
- 返信数: 54
- 閲覧数: 18824
Re: オセロのプログラム制作過程2
あぁ、ごめんなさい
#ifdef _DEBUG
#endif
の組み合わせがあったものでてっきりファイルの頭に置くもんだと勘違いしてましたorz
今からプリントを試して参りますm(_ _)m
#ifdef _DEBUG
#endif
の組み合わせがあったものでてっきりファイルの頭に置くもんだと勘違いしてましたorz
今からプリントを試して参りますm(_ _)m
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程2
- 返信数: 54
- 閲覧数: 18824
Re: オセロのプログラム制作過程2
そちらのコードは何処に書けば宜しいでしょうか?
main、CPU_AIヘッダやファイルなど色々試しましたが、何処もコンパイルエラーになってしまったため。
while前や後で値を表示出来るのは大変便利そうです。
main、CPU_AIヘッダやファイルなど色々試しましたが、何処もコンパイルエラーになってしまったため。
while前や後で値を表示出来るのは大変便利そうです。
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程2
- 返信数: 54
- 閲覧数: 18824
Re: オセロのプログラム制作過程2
こんな感じで如何でしょう? //CPU思考入力の再帰関数 int CPU_fact(int cpuX ,int cpuY,int Tekikoma,int Mykoma){ int playerX; int playerY; int CPU_val_point = -100; int PLAYER_val_point = -100; int PLAYER_val_point_save; // 最初の状態を保存 Board_CPU_BanData_push(); if(Board_Search(cpuX,cpuY,Tekikoma) >= 1){ //置ける場所の座標を評価関数へ送る CPU_v...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程2
- 返信数: 54
- 閲覧数: 18824
Re: オセロのプログラム制作過程2
ゲームスタートしてコマを置いた瞬間CPUが全てコマを置き終了画面へ・・・。 そもそも再帰のやり方や書き方がこれで合っているのかも分からないですが。 取り敢えず評価関数についてはまだイジってないです。 #include "CPU_AI.h" #include "Board.h" //プロトタイプ宣言 static int CPU_AI(int,int); static int CPU_fact(int,int,int,int); static int PLAYER_fact(int,int,int,int,int,int); static int valX=0; //評価値の高かった座標 sta...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程2
- 返信数: 54
- 閲覧数: 18824
Re: オセロのプログラム制作過程2
再帰は確かに重要そうなので今必死に取り掛かってます。
評価値も見直したいのですが、ひっくり返した石をどう評価に組み込めば良いのでしょう?
例えばCPUが白の時 [3][5]が黒なら評価値5にする・・・の様な?
でもその評価値をどう計算に盛り込んだら良いのだろう・・・などと考えておりました。
CPU対CPUはもう大幅な書き直しになっちゃいますね。
でも面白そうです。
評価値も見直したいのですが、ひっくり返した石をどう評価に組み込めば良いのでしょう?
例えばCPUが白の時 [3][5]が黒なら評価値5にする・・・の様な?
でもその評価値をどう計算に盛り込んだら良いのだろう・・・などと考えておりました。
CPU対CPUはもう大幅な書き直しになっちゃいますね。
でも面白そうです。
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程2
- 返信数: 54
- 閲覧数: 18824
Re: オセロのプログラム制作過程2
出来ましたので添付します。
これよりAIを強化していく場合はCPU_inputのFor文を同じ様にどんどん増やしていく形で出来そうですが、そこで上手く再帰処理を使うのでしょうか。
しかし再帰呼び出しをするとPopとPushの対になっているバランスが壊れそうですね・・・。分かりませんorz
自分としてはこのままFor文を増やしていく方が分かり易いですが。
これよりAIを強化していく場合はCPU_inputのFor文を同じ様にどんどん増やしていく形で出来そうですが、そこで上手く再帰処理を使うのでしょうか。
しかし再帰呼び出しをするとPopとPushの対になっているバランスが壊れそうですね・・・。分かりませんorz
自分としてはこのままFor文を増やしていく方が分かり易いですが。
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程2
- 返信数: 54
- 閲覧数: 18824
Re: オセロのプログラム制作過程2
あーなるほど、ちゃんと対にすればこの++,--だけでちゃんと機能するんですね・・・orz
スタックの事を勉強してから似たような仕組み(二次元配列でしたが)を作ってみたのですが、上手く行かなかったのはデータの出し入れの順番がおかしかったせいでした。
最後のバグについては昨日気付いて修正しました。
ついでにプレーヤーがパスになる様な座標にCPUが置ける時は率先してその座標にコマを置く様にも設定してみました。
が、あまり上手くいっているか分からないため軽く添削して下さると助かります。
今三次元の配列を調整中なので、もう暫くしたら添付しますm(_ _)m
スタックの事を勉強してから似たような仕組み(二次元配列でしたが)を作ってみたのですが、上手く行かなかったのはデータの出し入れの順番がおかしかったせいでした。
最後のバグについては昨日気付いて修正しました。
ついでにプレーヤーがパスになる様な座標にCPUが置ける時は率先してその座標にコマを置く様にも設定してみました。
が、あまり上手くいっているか分からないため軽く添削して下さると助かります。
今三次元の配列を調整中なので、もう暫くしたら添付しますm(_ _)m
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程2
- 返信数: 54
- 閲覧数: 18824
Re: オセロのプログラム制作過程2
思っていたより素直に修正されてくれたので出来た所のみ添付しておきます。
対にするという事と三次元配列は未解決ですm(_ _)m
対にするという事と三次元配列は未解決ですm(_ _)m
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程2
- 返信数: 54
- 閲覧数: 18824
Re: オセロのプログラム制作過程2
追記
三次元配列で管理するというのはつまり
今まで通りのBanData[10][10]
を
CPU_BanData[10][10][X]
とする事で Xの値が0の時はFIRSTの配列を
Xの値が1の時はSECONDの配列を入れる事が出来る。
という認識で正しいでしょうか?
X,Y軸にZ軸を加えて、Z軸方向に1進む度に盤面が一つ出来ていくイメージなのですが。
これならおっしゃる通り処理が簡略化出来、助かるのですが・・・。
また変な事をしでかすと厄介なので、御回答よろしくお願いします。
三次元配列で管理するというのはつまり
今まで通りのBanData[10][10]
を
CPU_BanData[10][10][X]
とする事で Xの値が0の時はFIRSTの配列を
Xの値が1の時はSECONDの配列を入れる事が出来る。
という認識で正しいでしょうか?
X,Y軸にZ軸を加えて、Z軸方向に1進む度に盤面が一つ出来ていくイメージなのですが。
これならおっしゃる通り処理が簡略化出来、助かるのですが・・・。
また変な事をしでかすと厄介なので、御回答よろしくお願いします。
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程2
- 返信数: 54
- 閲覧数: 18824
Re: オセロのプログラム制作過程2
すみません。 以前言われた所は直したのですが、全てに共通してという事を理解していませんでした。 すぐに修正します。 PushとPopが対になっているというのはどういった状態なのでしょうか? 同じループ内で存在していなければならない・・・? 理解出来ずすみません。 自動管理についてC言語の本で調べたりググってみたのですが分からず終いでorz 申し訳ないのですが、簡単に説明して頂けたら幸いです。 おっしゃる通り変でした。 少なくともCPUのターンならCPU_input関数終了前にFlipを呼び出してからBanData_Pushを呼び出せばちゃんと対?に出来ます。 しかしUSER側のBoard_CP...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程2
- 返信数: 54
- 閲覧数: 18824
Re: オセロのプログラム制作過程2
解決しました。
昔のコード見直してみたら
valX に h を valY に w を代入している事に気付き、その通りにしたら動きました。
何故逆になっているのだろう・・・此処だけ。
追記
強化したのを添付しておきます。
自分には強くなったかどうか分かりませんでしたが(笑
昔のコード見直してみたら
valX に h を valY に w を代入している事に気付き、その通りにしたら動きました。
何故逆になっているのだろう・・・此処だけ。
追記
強化したのを添付しておきます。
自分には強くなったかどうか分かりませんでしたが(笑
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程2
- 返信数: 54
- 閲覧数: 18824
Re: オセロのプログラム制作過程2
デバックは以前教わった方法も合わせ調べてみたのですが、一体何処を調べれば良いのかが分からず。。 CPUの入力関数が終わる手前にSearch関数へ送っている座標が見当違いだったり、座標は正しいがSearch関数側でボードを調べてみるとその座標には既にFLAGが立っていたりして訳が分からない状態ですorz どう見てもボードの情報コピーしている関数がおかしいと、配列の0から最後までコピーを監視していたのですが、特に異常も無く・・・。 まぁ間違いなく原因はボードの情報を行き来させている関数だと思うので、また重点的に調べてみます。 他にご指摘頂いた所は修正してみました。 自信は無いですが、一応載せておき...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程2
- 返信数: 54
- 閲覧数: 18824
Re: オセロのプログラム制作過程2
探索はバグが潜伏しているため、デバックが一番大変 と何処かのサイトに書いてありましたが、まさにその通りになりました;; なるべく原型を崩さず、追加する形で改変したのですが・・・。 CPUの3手目で必ず無限ループに入ってしまいますorz どうやらCPUの思考内ボード情報と現実のボード情報が食い違っている?(予想ですが) デバッグで掘り下げてみても中々具体的な原因が見つからず、困りました・・・。 For文の後にIf文が来て、その後にまたFor文&If文 なんてバグの温床にして下さいと言わんばかりの書き方がいけない様な気もしますが。。 一応CPU_AI.cppについて簡単な説明 最初に ・現在のボー...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程2
- 返信数: 54
- 閲覧数: 18824
Re: オセロのプログラム制作過程2
ひっくり返した石にも評価値を与えるという事でしょうか? 今やろうと思ってたのは CPUの入力ターンの時 「置ける場所の評価値×係数(値は未定)」 + 「その場所に置いた後、相手の置ける場所の評価値合計を±逆にする」 という感じにしようかなと。 自分はオセロも不得意、というより全然やった事ないためアルゴリズムの考え方が自己流になってしまうのが宜しくないです。 サイトも色々見ては回ったのですが・・・(αβ法やその他色々)考え方は分かるのですが、具体的なソースコードが浮かんで来なかったため。。 SLGのAIは何となく分かるのですが。 敵Z 味方A,B Aのターン 自分のHPを判断(一定以下なら下がる...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程2
- 返信数: 54
- 閲覧数: 18824
Re: オセロのプログラム制作過程2
ソースコード出来たので添付しておきます。
Sound.cppに関しては上手いこと書けたかな・・・。
本当はDraw関係の関数もこうあるべきなんですよね。
次からはその事を念頭に置きつつプログラムを仕上げたいです。
エラーはもう無いみたいなので後は改善点のみでしょうか。。
・CPUのAIの更なる強化
・演出
少なくとも現在のコマ数表示は取り入れないと。。
思考時間はWaitTimer( 1000 );で簡単に実装出来ました。
Sound.cppに関しては上手いこと書けたかな・・・。
本当はDraw関係の関数もこうあるべきなんですよね。
次からはその事を念頭に置きつつプログラムを仕上げたいです。
エラーはもう無いみたいなので後は改善点のみでしょうか。。
・CPUのAIの更なる強化
・演出
少なくとも現在のコマ数表示は取り入れないと。。
思考時間はWaitTimer( 1000 );で簡単に実装出来ました。
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程2
- 返信数: 54
- 閲覧数: 18824
オセロのプログラム制作過程2
またトピックが長くなってしまった事とオセロが遊べる段階に入ったので立て直します。
AIの強化に成功しました。
多少戦える子になりました。
添付したファイルで実際に遊べると思いますので、興味を持たれた方は遊んでやって下さい。
ソースコードはまだコメント付けてないため、付けてから載せます。
AIの強化に成功しました。
多少戦える子になりました。
添付したファイルで実際に遊べると思いますので、興味を持たれた方は遊んでやって下さい。
ソースコードはまだコメント付けてないため、付けてから載せます。
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程
- 返信数: 44
- 閲覧数: 16889
Re: オセロのプログラム制作過程
色々修正したので新しく添付しておきます。
修正点
バグが確認出来る限り一切無いと思います。
やっと完成しました。
効果音の実装
(問題点)
・タイトルにカーソルを合わせた時に鳴る筈の音がならない。
別の音に差し替えたら鳴ったのですが、カーソルが合っている間中鳴り続けていたため修正した結果が上。
・タイトル画面立ち上がりと共にBGMもどきの効果音を鳴らそうと思っていたのに、鳴らない。
ただゲーム開始を押した段階で鳴るため、これはこれでアリな気も・・・。
CPUのAIを改善しなくては・・・。
修正点
バグが確認出来る限り一切無いと思います。
やっと完成しました。
効果音の実装
(問題点)
・タイトルにカーソルを合わせた時に鳴る筈の音がならない。
別の音に差し替えたら鳴ったのですが、カーソルが合っている間中鳴り続けていたため修正した結果が上。
・タイトル画面立ち上がりと共にBGMもどきの効果音を鳴らそうと思っていたのに、鳴らない。
ただゲーム開始を押した段階で鳴るため、これはこれでアリな気も・・・。
CPUのAIを改善しなくては・・・。
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程
- 返信数: 44
- 閲覧数: 16889
Re: オセロのプログラム制作過程
既にこんなの作ってしまってましたorz
明暗ですか~・・。
加算合成や半透明なんかも全然知りませんでした。
一応透過処理だけは勉強しましたが。
座標という事で取り敢えずXとYに置き換えてみました。
あとよく将棋などで、前のターンに相手がコマを置いた場所が光り続ける演出は この仕組みとは全く別物ですね、多分。
相手のターンになっても光っていないといけないのでどんなプログラムなのか皆目検討も付きませんが。
他に出来る事から進めていこうかなと思います。
明暗ですか~・・。
加算合成や半透明なんかも全然知りませんでした。
一応透過処理だけは勉強しましたが。
座標という事で取り敢えずXとYに置き換えてみました。
あとよく将棋などで、前のターンに相手がコマを置いた場所が光り続ける演出は この仕組みとは全く別物ですね、多分。
相手のターンになっても光っていないといけないのでどんなプログラムなのか皆目検討も付きませんが。
他に出来る事から進めていこうかなと思います。
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程
- 返信数: 44
- 閲覧数: 16889
Re: オセロのプログラム制作過程
あぁぁぁおっしゃる通りです。そのつもりでした。
この場合Mouse関数内の w、hを使おうかと思ってました。
しかしCPU側の入力を光らせる(多分置いたコマの場所のみになる・・・のでしょうか)にはこの方法だとあんまり良くないのかなぁと思ってますが、どうなのでしょうか。
CPUの入力関数において、入力関数が終了する前に
Search関数によってひっくり返せる事が判明した座標を、Boardの中にある関数(まだ作ってないですが)に引数として引渡し それを描画すればいけるような気もしますが、こんな感じで良いのでしょうか・・・?
この場合Mouse関数内の w、hを使おうかと思ってました。
しかしCPU側の入力を光らせる(多分置いたコマの場所のみになる・・・のでしょうか)にはこの方法だとあんまり良くないのかなぁと思ってますが、どうなのでしょうか。
CPUの入力関数において、入力関数が終了する前に
Search関数によってひっくり返せる事が判明した座標を、Boardの中にある関数(まだ作ってないですが)に引数として引渡し それを描画すればいけるような気もしますが、こんな感じで良いのでしょうか・・・?
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程
- 返信数: 44
- 閲覧数: 16889
Re: オセロのプログラム制作過程
ごめんなさい、おっしゃってくださっている内容が把握しきれず・・・
自分がぼんやり考えていた形は
Board.cpp
static int x,y; //変数名は仮。光るマスの座標の役割
Board_Draw関数内の Switch文 各caseの中で
普通のマップ(コマの画像など)描画の次の行に
if( (h == y) && ( w == x){
DrawGraph(光ってるマス目の画像)
}
を加えて
x、yにそれぞれマウスがさしている座標を代入しようかと思っていたのですが、これでは融通が利かなくなり良くないという事ですよね。
どの様な形にしたら宜しいでしょうか?
自分がぼんやり考えていた形は
Board.cpp
static int x,y; //変数名は仮。光るマスの座標の役割
Board_Draw関数内の Switch文 各caseの中で
普通のマップ(コマの画像など)描画の次の行に
if( (h == y) && ( w == x){
DrawGraph(光ってるマス目の画像)
}
を加えて
x、yにそれぞれマウスがさしている座標を代入しようかと思っていたのですが、これでは融通が利かなくなり良くないという事ですよね。
どの様な形にしたら宜しいでしょうか?
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程
- 返信数: 44
- 閲覧数: 16889
Re: オセロのプログラム制作過程
いえいえこちらこそ早とちりしてしまって申し訳御座いません。
直してきます。
[追記]
アドバイスを頂いてから明解C言語のif文を見直したら、サンプルプログラムがことごとく{}を使っていなかったので完全に勘違いしてしまいました(笑
{}使って表記してくれていても良いのに・・・。
>それとマウスの座標を残すのではなく、ボード上の光る位置をstaticで残してDrawで描画するってのが良いと思います。
という事はマウスの座標を一旦(Mouse関数外で宣言してある)staticな変数に収納し、それをDrawにて描画するという認識で大丈夫でしょうか?
直してきます。
[追記]
アドバイスを頂いてから明解C言語のif文を見直したら、サンプルプログラムがことごとく{}を使っていなかったので完全に勘違いしてしまいました(笑
{}使って表記してくれていても良いのに・・・。
>それとマウスの座標を残すのではなく、ボード上の光る位置をstaticで残してDrawで描画するってのが良いと思います。
という事はマウスの座標を一旦(Mouse関数外で宣言してある)staticな変数に収納し、それをDrawにて描画するという認識で大丈夫でしょうか?
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程
- 返信数: 44
- 閲覧数: 16889
Re: オセロのプログラム制作過程
if文の{}について 全て無くそうとし、愚直に消していくとエラー多発するため慎重に置き換えていったのですが TitleとBoard_searchだけはどうも{}を取るとおかしな事になってしまったため残してあります。 他の項目については一応手直ししてみました。 これによって終了画面まで行く事が出来ましたが ・試合結果に関わらず勝利画面になる? ・勝利画面からタイトル画面へ移行する際に不明なfunc_stateの表示が多発する。(←Mainファイルが原因だと思いますが調査中) などの問題点を現在調査してます。 そういえば全く別の話ですが、よくSLGなどでマウスカーソルを動かすとその座標のマス枠が光...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程
- 返信数: 44
- 閲覧数: 16889
Re: オセロのプログラム制作過程
ご紹介有難う御座います。 取り敢えず外れの無さそうな明解C++を購入して他はサイトをじっくり読んでから決めてみます。 さて本題ですが、やっとFlip辺りを大改築してみました。 ソフト屋さんに教えてもらった typedef struct { int vx; int vy; } BoardVec_t; static BoardVec_t KomaVector[8] = { { -1,-1 }, { 0,-1 }, { 1,-1 }, { -1,0 }, { 1,0 }, { -1,1 }, { 0,1 }, { 1,1 } }; の使い方をずっと考えていたのですが・・・分からず、自己流のプログラム...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程
- 返信数: 44
- 閲覧数: 16889
Re: オセロのプログラム制作過程
おぉなるほど。 御回答有難う御座いますm(_ _)m やっぱりマウスの座標は諦める事にします。 これで残す大仕事はFlipの作り直しかぁ・・・頑張らないと。 そう言えば最近 優しいCと明解C言語入門編(こちらは辞書代わりとして購入済)を読破し、次に何を読もうかなと考えているのですが 候補は ①ポインタ完全攻略系・・・ポインタ自体そこまで難しいとは思わず、苦手意識は無いのですが咄嗟に これポインタ使って書き直して と言われた時少し困ってしまう気がして、しっかり勉強すべきかなと。 ②アルゴリズム系・・・以前紹介されたサイトを拝読した感じ、これは必要だなと思う事がかなり書かれていたので一冊購入してお...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程
- 返信数: 44
- 閲覧数: 16889
Re: オセロのプログラム制作過程
あぁ・・・そうでした。staticは関数が終了しても値を保持するのに・・・、何故気付かなかったのやら。。 今見ててふと疑問に思ったのですが、int型って数字しか扱えないのでは無かったでしょうか? 本当に今更なのですが、そういえばGHandle系は全部int型にも関わらずLoadGraphという値?を持っていたので。 これは見えない所でLoadGraphに数字が与えられていたりとかそういう事なのでしょうか・・・? 何だか途方も無い見当違いをしている気もしますが・・・。 それとmain関数を呼び出してからdraw関数 という正しい形に変更してからマウスの座標が表示されなくなったのですが、これはつま...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程
- 返信数: 44
- 閲覧数: 16889
Re: オセロのプログラム制作過程
お恥ずかしい事に全く進展がない状態で・・・。 mainとdrawでそれぞれファイルを作り、boardやtitleではファイル名に関する処理しか行わない様に作り変えたいという気持ちはあるのですが、ポインタを使ってのboard情報のやり取りがどうもエラー続きなため後回しにしましたorz FlipとSearchに関しても後回し。 Flipを作り直す時にEnd_Flipなどと共通化出来る様な形にしたいです。 ずっと悩んでいた原因は主にTitle.cppでの共通化です。 今添付してるファイルは試行錯誤段階で、この状態ではTitle関数が呼び出され文字色変更がされても、すぐにTitle_Drawによって文...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程
- 返信数: 44
- 閲覧数: 16889
Re: オセロのプログラム制作過程
>ソフト屋さん
main→drawの流れはBoard_draw とGame_mainの所もその他の場所も全てでしょうか?
初心者ながらに、盤を描いてからゲームが始まる などと考えていたのですが、勘違いだったとしたら変な癖が付く前にしっかり把握しておこうと思いまして・・・m(_ _)m
main→drawの流れはBoard_draw とGame_mainの所もその他の場所も全てでしょうか?
初心者ながらに、盤を描いてからゲームが始まる などと考えていたのですが、勘違いだったとしたら変な癖が付く前にしっかり把握しておこうと思いまして・・・m(_ _)m
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程
- 返信数: 44
- 閲覧数: 16889
Re: オセロのプログラム制作過程
>a5uaさん
あぁ・・・そうでしたorz
それにこれではCPU側で変更したBanDataの情報が共有されないですね。。
ポインタを使ってやり取りすればちゃんとユーザー側で入力した盤の情報とCPU側で入力した情報はリンクするはずですよね。
取り敢えず元に戻しましたが、AI強化を考える段階に入ったらa5uaさんのおっしゃる通りにしないと駄目な気がとてもしますorz
アドバイス有難う御座いますm(_ _)m
>バグさん
とても面白そうな本の紹介感謝です!
自分はまだC++には手を出してないので早いですが、いずれ読んでみたいと思いますm(_ _)m
あぁ・・・そうでしたorz
それにこれではCPU側で変更したBanDataの情報が共有されないですね。。
ポインタを使ってやり取りすればちゃんとユーザー側で入力した盤の情報とCPU側で入力した情報はリンクするはずですよね。
取り敢えず元に戻しましたが、AI強化を考える段階に入ったらa5uaさんのおっしゃる通りにしないと駄目な気がとてもしますorz
アドバイス有難う御座いますm(_ _)m
>バグさん
とても面白そうな本の紹介感謝です!
自分はまだC++には手を出してないので早いですが、いずれ読んでみたいと思いますm(_ _)m
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程
- 返信数: 44
- 閲覧数: 16889
Re: オセロのプログラム制作過程
[Screen.h/cpp] 名前変えるだけなのに地味に大変な作業ですよね・・・。 何かこう、一つ変えれば他の同名のものも変更後の名前になってくれる機能とかあれば良いのですが。。 ・MenuElementを引数に使うと何とかなりませんか? ・まだ引数を上手く活用出来てないため、全くビジョンが浮かびませんでしたorz 一応自分なりに統一化は果たしましたが、こんな感じでどうなのでしょう・・・。 [Board.h/cpp] ・上手く引数で引き渡す様にしたはずなのに実行後にエラーが・・・。 引数で引き渡す場合、大雑把でも構いませんがメリットは一体どういったものなのでしょうか? 取り敢えず改善出来た...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程
- 返信数: 44
- 閲覧数: 16889
Re: オセロのプログラム制作過程
あぁ効果音やBGMについては実は地味に自作しておりました。
取り敢えずエラー無くしてからにしようと思ってます。
効果音やBGMなど今勉強出来るものはしときたいですよね。
多分SLG作る時には他の事を沢山学ばないといけないでしょうし・・・orz
取り敢えずエラー無くしてからにしようと思ってます。
効果音やBGMなど今勉強出来るものはしときたいですよね。
多分SLG作る時には他の事を沢山学ばないといけないでしょうし・・・orz
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程
- 返信数: 44
- 閲覧数: 16889
Re: オセロのプログラム制作過程
[Search.cpp] ・BanDataをBoard.cppに移動して定義していたため、その方法だとCPU_AIからBanDataを覗けないとエラーが 出てしまいました。 BanDataをBoard.hに移すべきでしょうか・・・? ・TurnをMykomaに変更してみました。こういう意味ですよね・・・?見当違いな事してましたらご指摘下さい m(_ _)m [Game.cpp] ・名前については色々と変更してみましたが、まだしっくり来てない感じがあります・・・。 Game_で統一してみたりとか試行錯誤はしているのですがorz 取り敢えず修正した物を添付しておきます。 現在確認済みの問題点 ...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程
- 返信数: 44
- 閲覧数: 16889
Re: オセロのプログラム制作過程
>a5uaさん externにする事で無事ひっくり返す事が出来ました! 分かり易い解説までして下さって本当に有難う御座いますm(_ _)m >ソフト屋さん [title.cpp] ・変数名修正しました。 ・インデントは以前におっしゃって頂いた方法を使って整形したのですが、独学故いまいち綺麗なソースコード というものが分かりません。 それでも一応思いつく所は手直ししましたが、まだ駄目な部分は多々あるかと思います。 出来ればご指摘をして頂けると助かります。 ・Mouse.cppから単純にコピペしたのが間違いでした。Title.cppは一回限りの起動ですから今の所全く必要 ありませんでした。 ・修正...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程
- 返信数: 44
- 閲覧数: 16889
Re: オセロのプログラム制作過程
この本かなり良さそうですね。 ローグを作りたいというより、普通に勉強になりそうなので購入を検討したいと思います。 ご紹介して下さったサイトを見た限り、全然簡単じゃないですね(笑 テキストタイプでこれだものなぁ・・・。 おっしゃる通りSLG,RPG,RTSは全ての集大成みたいなものでした。。 以前言われた通り、簡単なSLGから入って、徐々にゲームとしての質を高めて行く方が良さそうですね~。 さてご指摘のあった場所は全て訂正し、遂にエラーを吐く事が無くなりました!! だがコマが置けない!!! もう、意味がわからなすぎて・・・。 static で定義してある BanData はグローバル変数ですから...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程
- 返信数: 44
- 閲覧数: 16889
Re: オセロのプログラム制作過程
本当に何から何まですみません; 以下は雑談的なもので、お暇な時にでもお答え頂ければ有難いです。 ローグライク系のゲーム(チョコボの不思議なダンジョンや風来のシレンなど)は製作難易度としてはどの程度なのでしょう? 勿論ダンジョンの深さ等で難易度は変わっていくと思いますが、ゲームの骨格作成などを目安に意見を下さると有難いです。 もし簡単であれば、はさみ将棋とSLGの間にワンクッション入れる形にしようかなと。 今はオセロすらまともに作れない状態だからかもしれませんが、はさみ将棋を作り終わった段階でスムーズにSLG製作に行ける技術が備わっている自信がない・・・。 意外と大丈夫そうならそのままSLGに入...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程
- 返信数: 44
- 閲覧数: 16889
Re: オセロのプログラム制作過程
whileにしておかないと幾度となく先手、後手の選択画面が出てきてしまって鬱陶しかったのですよね・・・。
選択自体を別の関数にすると、今度はUturnの値をGame_mainに渡す事が難しくなりそうで困ってました。
ループは終了関数作成の際に抜け出せるようにする予定でした。
取り敢えず先に互いにコマを置いていける環境を作りたかったので。
選択自体を別の関数にすると、今度はUturnの値をGame_mainに渡す事が難しくなりそうで困ってました。
ループは終了関数作成の際に抜け出せるようにする予定でした。
取り敢えず先に互いにコマを置いていける環境を作りたかったので。
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: オセロのプログラム制作過程
- 返信数: 44
- 閲覧数: 16889
オセロのプログラム制作過程
引き続き・・・。
ステップインを繰り返す事で誤った式は全て直したと思うのですが、何故かまだエラーが。。
マウス入力待ちの関数を無限ループにしている事が原因なのかと思っていたのですが、ループを解いてもエラーは変わらずorz
正直何が間違っているのかよく分からない状態になってしまいました\(;o;)/
ステップインを繰り返す事で誤った式は全て直したと思うのですが、何故かまだエラーが。。
マウス入力待ちの関数を無限ループにしている事が原因なのかと思っていたのですが、ループを解いてもエラーは変わらずorz
正直何が間違っているのかよく分からない状態になってしまいました\(;o;)/
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: RTS制作までの道順について(初心者)
- 返信数: 34
- 閲覧数: 21400
Re: RTS制作までの道順について(初心者)
長くなってしまったので一旦ここで解決して新しく立てます。
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: RTS制作までの道順について(初心者)
- 返信数: 34
- 閲覧数: 21400
Re: RTS制作までの道順について(初心者)
おぉ!
この機能凄く便利です!
色々直せる所が見えてきました。有難う御座いますm(_ _)m
この機能凄く便利です!
色々直せる所が見えてきました。有難う御座いますm(_ _)m
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: RTS制作までの道順について(初心者)
- 返信数: 34
- 閲覧数: 21400
Re: RTS制作までの道順について(初心者)
コンパイルエラー無く起動するのにエラー落ちすると何をどうして良いのやら・・・・・・・。。
エラー落ちの感じから、多分何処かしらのループ文がおかしそうですが。
まだ終了に関する関数は作ってません。ちょっとそれ以前の問題でしたのでorz
エラー落ちの感じから、多分何処かしらのループ文がおかしそうですが。
まだ終了に関する関数は作ってません。ちょっとそれ以前の問題でしたのでorz
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: RTS制作までの道順について(初心者)
- 返信数: 34
- 閲覧数: 21400
Re: RTS制作までの道順について(初心者)
なるほど!
理解しました。
感謝ですm(_ _)m
理解しました。
感謝ですm(_ _)m
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: RTS制作までの道順について(初心者)
- 返信数: 34
- 閲覧数: 21400
Re: RTS制作までの道順について(初心者)
ごめんなさい、自分の浅学故に理解出来なかったのですが
init で統一するというのは一体どういう事でしょうか・・・?
すみません。
二重に対するガードはしました。
init で統一するというのは一体どういう事でしょうか・・・?
すみません。
二重に対するガードはしました。
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: RTS制作までの道順について(初心者)
- 返信数: 34
- 閲覧数: 21400
Re: RTS制作までの道順について(初心者)
あぁ!なるほど! 元から画像ロードと描画を分けてたのが間違いだったのかぁ~・・・。 ・初期化 ・計算 ・描画 ・終了処理 にしないと駄目でしたorz 参考サイトにはもう10回ほどアクセスしたのに、何故気付けなかったのか・・・。 勉強になりました; ヘッダとソースの一対一、了解しました。 しかしこの場合 例えばボード.hを作成した場合、中に記載するコードは load と Display_Ban の関数プロトタイプ宣言と、これらに関係した#define 達でしょうか? そうすると最終的にメイン.cppの一番上でそれぞれのヘッダファイルをインクルードする形になる・・・・のでしょうか。 そうなると二重...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: RTS制作までの道順について(初心者)
- 返信数: 34
- 閲覧数: 21400
Re: RTS制作までの道順について(初心者)
Sengen.h #include "DxLib.h" #ifndef _INCLUDE_SENGEN_ #define _INCLUDE_SENGEN_ #define BAN_SIZE 64 // 盤目一つのドットサイズ #define BAN_WIDTH 10 // 盤の幅 #define BAN_HEIGHT 10 // 盤の縦長さ #define BAN_LEFTUP_X 0 //一番左上の盤目の左上端X座標 #define BAN_LEFTUP_Y 0 //一番左上の盤目の左上端Y座標 #define BAN 0 // 盤目 #define BLACK 1 // 黒コマ #defi...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: RTS制作までの道順について(初心者)
- 返信数: 34
- 閲覧数: 21400
Re: RTS制作までの道順について(初心者)
>>bitter_foxさん
あぁごめんなさい。そのローカル変数は撤去してやってください。
試行錯誤の途中でコピペしたため消し忘れてました・・・。
ご指摘感謝ですm(_ _)m
あぁごめんなさい。そのローカル変数は撤去してやってください。
試行錯誤の途中でコピペしたため消し忘れてました・・・。
ご指摘感謝ですm(_ _)m
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: RTS制作までの道順について(初心者)
- 返信数: 34
- 閲覧数: 21400
Re: RTS制作までの道順について(初心者)
なるほど・・・、やはりしっかり分割技術を今の内に学んでおくべきですね。
cpp20 h10 ですか・・・・・・。
初心者のためのRPGでその量だと普通に作った場合大変な事になりそうですね;
cpp20 h10 ですか・・・・・・。
初心者のためのRPGでその量だと普通に作った場合大変な事になりそうですね;
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: RTS制作までの道順について(初心者)
- 返信数: 34
- 閲覧数: 21400
Re: RTS制作までの道順について(初心者)
出だしのファイル分割から詰まってしまいましたorz ウインドウは立ち上がり、ESCで閉じる事は可能なのですが何も表示されない・・・。 取り敢えずソースコードです。 defain.h #define BAN_SIZE 64 // 盤目一つのドットサイズ #define BAN_WIDTH 10 // 盤の幅 #define BAN_HEIGHT 10 // 盤の縦長さ #define BAN_LEFTUP_X 0 //一番左上の盤目の左上端X座標 #define BAN_LEFTUP_Y 0 //一番左上の盤目の左上端Y座標 #define BAN 0 // 盤目 #define BLACK 1...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: RTS制作までの道順について(初心者)
- 返信数: 34
- 閲覧数: 21400
Re: RTS制作までの道順について(初心者)
添付完了しました。
ゲームプログラミングの館様のサイトをもう一度じっくり読み返してみたいと思います。
まだSLG製作のスタートラインにも立ててないと思うと情けない限りです。。
あぁ返信今来ました。
次からは圧縮しますm(_ _)m
ゲームプログラミングの館様のサイトをもう一度じっくり読み返してみたいと思います。
まだSLG製作のスタートラインにも立ててないと思うと情けない限りです。。
あぁ返信今来ました。
次からは圧縮しますm(_ _)m
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: RTS制作までの道順について(初心者)
- 返信数: 34
- 閲覧数: 21400
Re: RTS制作までの道順について(初心者)
画像添付しました。
.bmpは対応してない様でしたので、一時的に.jpegに変換しています。読み込む際には.bmpへ変換をお願い致します。
画像は3枚までらしいのでもう一枚貼ります。
.bmpは対応してない様でしたので、一時的に.jpegに変換しています。読み込む際には.bmpへ変換をお願い致します。
画像は3枚までらしいのでもう一枚貼ります。