[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 05/09 22:06 / Filesize : 112 KB / Number-of Response : 443
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C言語で素晴らしいオセロを作らないか?



1 名前:デフォルトの名無しさん mailto:sage [04/06/23 17:34]
素晴らしいものだぞ

116 名前: ◆R/rLuLKeEI [04/09/29 08:20:08]
>>113:
トーラスリバーシかと思た。
Googleでざっと見たところ、類似のは見当たらなかった。
海外まで含めたらあるかも。
トーラス碁はあるのにな

117 名前:デフォルトの名無しさん [04/09/29 08:41:45]
>>116
多分、それだと思います→トーラスリバーシ
ドラクエ世界は実はドーナツ状だという話(というかネタ的解釈)があるので。

ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/file/1096414722_1/othello_text_loop.c
ソースをうpしました。

118 名前:デフォルトの名無しさん mailto:sage [04/09/29 17:11:44]
  ,、_,、  
 ( 'ο') <ゥンポコー

119 名前:デフォルトの名無しさん mailto:sage [04/09/29 22:29:17]
ttp://yam-jp.com/~nanashi/img/gogogo1386.rar

cygwin の Xサーバー使ってオセロのGUIだけ作ってみました。
AIはなくって人間VS人間ならできます。
アルゴリズムなら作りたいけど、他めんどくせーという方、どうぞ。
AIの組み込みはしやすいつくりになってる・・・と思う。
ダメだしもお願いしますw

120 名前:デフォルトの名無しさん mailto:sage [04/09/30 00:03:52]
>>119
ざっと見た感じだと、

(1)升目ごとに構造体を作るのは非常に冗長
 マウス今どの升目を指しているか(あるいは盤外か)を調べるには、一字式で簡単に出来る。
 升目ごとに構造体があって、さらにそれを総当りで調べるのは冗長。

(2)8方向に処理する部分は、別に関数を作った方がコンパクト
 例えば、judge_setting_unit_dir という関数を作って、
 引数を指定するだけで値を得られるようにすれば、コードが短くなってバグも出にくくなり、
 あとで修正するときの手間が、(その部分だけ見れば)8分の1で済む。

(3)ヘッダ名と本体の名前は一致させた方が良い
 global.h で宣言されている関数定義が global.c に書かれていないのを見てちょっと拍子抜けした。
 大抵のプログラムでは、余程の事情がない限り、ヘッダファイルの名前と本体の名前が
 一致している。

正直言って、そのソースにAIを組み込むのはちょっと辛いものがある。

121 名前: ◆R/rLuLKeEI [04/09/30 02:09:27]
>>119:
まだダウンロードしてないんで分からんけど思考部を別プロセスにしてGUI部とプロセス間通信したらどう?
思考部とGUI部で共通の通信ルーチンや盤面の更新、合法手の生成はインタフェイスを公開してリンカで繋げるだけになってたら嬉しい。
プロトコルさえしっかりしてたら言語に縛られなくて、なおいい。

などと勝手なことを書いてますが、こんなことするにはかなりの手間がかかりますね。すんません。
他人の作ったのと自分のを特定フォルダに入れとくだけでGUI部に一切変更無しで色んな組合わせの対戦が出来るなぁって思ったり。
共通ルーチンはdllにしておいたり…妄想炸裂中

122 名前:デフォルトの名無しさん [04/10/02 10:31:25]
>>121

思考ルーチンだけdllで作るってやつがあるよ。C#オンリー?だけど。
GUIを作る必要ないし、.NET Framework SDK(無料)だけでつくれるよ。

www.vector.co.jp/games/soft/win95/game/se301574.html
www.geocities.jp/team8bit/AIReversi/AIReversi_top.htm

思考ルーチン作成中なのでできたらupします。
だれか対戦する人いないかなー?

123 名前: ◆FIcNi4f8js mailto:sage [04/10/02 12:01:39]
>>113
上下左右はもちろん、斜め方向にもトーラスなはずだから、

ABCDEFGH
O+++++++ 1
+++++++O 2
++++++++ 3
+++++O++ 4
++++O+++ 5
+++O++++ 6
++O+++++ 7
+O++++++ 8

みたいなときに、G3にXを置くとこの絵のOの位置は全部Xにならないといけないよね。


124 名前: ◆FIcNi4f8js mailto:sage [04/10/02 12:04:06]
>>121
だからIOSがそれなんだってば。



125 名前: ◆R/rLuLKeEI [04/10/02 12:50:06]
>>124: ◆FIcNi4f8js
じゃあ、アルゴリズム実装の練習以外ではもう何も新たに作る必要ないやん。

126 名前: ◆FIcNi4f8js mailto:sage [04/10/02 13:45:12]
>>125 ◆R/rLuLKeEI
通常のルール通りでってことであれば、そうだね。


127 名前: ◆R/rLuLKeEI [04/10/02 14:38:04]
>>126: ◆FIcNi4f8js
通常のルールは分離されてないの?
n人非零和協力非確定非ターン制…までなんでもあり…スレ違いだな

128 名前:122 [04/10/02 15:31:17]
思考ルーチン作りました。対戦きぼんぬ!
www.geocities.jp/team8bit/AIReversi/ai_place.htm
EasyAI

AIリバーシ
リバーシ(オセロ)のフレームワーク。
UI等やルール等のプログラミングを必要なくして、
オセロの人工知能の作成ができます。作成した人工知能で
コンピュータ同士の対戦や人間との対戦ができます。
www.geocities.jp/team8bit/

129 名前: ◆FIcNi4f8js mailto:sage [04/10/04 16:31:07]
これの普通レベルってBoobyのレベル3くらい?


130 名前:122 [04/10/05 21:08:01]
だれか対戦してくれー!!

131 名前: ◆FIcNi4f8js mailto:sage [04/10/05 21:08:51]
したよ

132 名前:デフォルトの名無しさん [04/10/16 04:02:01]
┏━━━━━━━━━━━━━━━━━┓
┃┌─┬─┬─┬─┬─┬─┬─┬─┐┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │○│●│  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │●│○│  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃└─┴─┴─┴─┴─┴─┴─┴─┘┃
┗━━━━━━━━━━━━━━━━━┛

133 名前:デフォルトの名無しさん mailto:sage [04/10/16 04:03:39]
┏━━━━━━━━━━━━━━━━━┓
┃┌─┬─┬─┬─┬─┬─┬─┬─┐┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │○│●│  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │●│○│  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │●│┃
┃└─┴─┴─┴─┴─┴─┴─┴─┘┃
┗━━━━━━━━━━━━━━━━━┛

134 名前:デフォルトの名無しさん [04/10/16 04:08:11]
┏━━━━━━━━━━━━━━━━━┓
┃┌─┬─┬─┬─┬─┬─┬─┬─┐┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │○│●│  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │●│○│  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │●│○
┃└─┴─┴─┴─┴─┴─┴─┴─┘┃
┗━━━━━━━━━━━━━━━━━┛



135 名前:デフォルトの名無しさん mailto:sage [04/10/16 04:11:06]
>>134
┏━━━━━━━━━━━━━━━━━┓
┃┌─┬─┬─┬─┬─┬─┬─┬─┐┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │○│●│  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │●│○│  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤|(●),   、(●)、.:|
┃│  │  │  │  │  │  │  │●│○
┃└─┴─┴─┴─┴─┴─┴─┴─┘┃
┗━━━━━━━━━━━━━━━━━┛

136 名前:デフォルトの名無しさん [04/10/16 04:15:00]
┏━━━━━━━━━━━━━━━━━┓
┃┌─┬─┬─┬─┬─┬─┬─┬─┐┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │○│●│  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │●│○│  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃ ○
┃├─┼─┼─┼─┼─┼─┼─┼─┤|(○),   、(●)、.:|
┃│  │  │  │  │  │  │  │●│○
┃└─┴─┴─┴─┴─┴─┴─┴─┘┃
┗━━━━━━━━━━━━━━━━━┛

137 名前:デフォルトの名無しさん mailto:sage [04/10/16 04:22:20]
┏━━━━━━━━━━━━━━━━━┓
┃┌─┬─┬─┬─┬─┬─┬─┬─┐┃
┃│●│●│●│●│●│●│●│●│┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│●│●│●│●│●│●│●│●│┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│●│●│●│●│●│●│●│●│┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│●│●│●│●│●│●│●│●│┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│●│●│●│●│●│●│●│●│┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│●│●│●│●│●│●│●│●│┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│●│●│●│●│●│●│●│●│┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│●│●│●│●│●│●│●│●│┃
┃└─┴─┴─┴─┴─┴─┴─┴─┘┃
┗━━━━━━━━━━━━━━━━━┛

138 名前:デフォルトの名無しさん mailto:sage [04/10/16 12:16:32]
┏━━━━━━━━━━━━━┓
┃┌─┬─┬─┬─┬─┬─┐┃
┃│  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┤┃
┃│  │  │○│●│  │  │┃
┃├─┼─┼─┼─┼─┼─┤┃
┃│  │  │●│●│  │  │┃
┃├─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │●│  │  │┃
┃├─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │┃
┃└─┴─┴─┴─┴─┴─┘┃
┗━━━━━━━━━━━━━┛

139 名前:デフォルトの名無しさん mailto:sage [04/10/16 14:18:50]
>>138
┏━━━━━━━━━━━━━┓
┃┌─┬─┬─┬─┬─┬─┐┃
┃│  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┤┃
┃│  │●│●│●│  │  │┃
┃├─┼─┼─┼─┼─┼─┤┃
┃│  │  │●│●│  │  │┃
┃├─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │●│  │  │┃
┃├─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │┃
┃└─┴─┴─┴─┴─┴─┘┃
┗━━━━━━━━━━━━━┛

140 名前:デフォルトの名無しさん mailto:sage [04/10/16 18:04:12]
prologでサクっと作れない?

141 名前:デフォルトの名無しさん mailto:sage [04/10/16 18:13:40]
>>140
作れば?

142 名前:デフォルトの名無しさん [04/10/18 09:10:29]
┏━━━━━━━━━━━━━┓
┃┌─┬─┬─┬─┬─┬─┐┃
┃│○│  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┤┃
┃│  │●│●│●│  │  │┃
┃├─┼─┼─┼─┼─┼─┤┃
┃│  │  │●│●│  │  │┃
┃├─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │●│  │  │┃
┃├─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │┃
┃└─┴─┴─┴─┴─┴─┘┃
┗━━━━━━━━━━━━━┛

143 名前:デフォルトの名無しさん mailto:sage [04/10/18 10:34:24]
┏━━━━━━━━━━━━━┓
┃●─┬─┬─┬─┬─┬─┐┃
┃│●│  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┤┃
┃│  │●│●│●│  │  │┃
┃├─┼─┼─┼─┼─┼─┤┃
┃│  │  │●│●│  │  │┃
┃├─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │●│  │  │┃
┃├─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │┃
┃└─┴─┴─┴─┴─┴─┘┃
┗━━━━━━━━━━━━━┛

144 名前:デフォルトの名無しさん [04/10/18 13:37:09]
○━━━━━━━━━━━━━┓
┃●─┬─┬─┬─┬─┬─┐┃
┃│●│  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┤┃
┃│  │●│●│●│  │  │┃
┃├─┼─┼─┼─┼─┼─┤┃
┃│  │  │●│●│  │  │┃
┃├─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │●│  │  │┃
┃├─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │┃
┃└─┴─┴─┴─┴─┴─┘┃
┗━━━━━━━━━━━━━┛



145 名前:デフォルトの名無しさん mailto:sage [04/10/18 15:57:10]

 ●━━━━━━━━━━━━━┓
 ┃●─┬─┬─┬─┬─┬─┐┃
 ┃│●│  │  │  │  │  │┃
 ┃├─┼─┼─┼─┼─┼─┤┃
 ┃│  │●│●│●│  │  │┃
 ┃├─┼─┼─┼─┼─┼─┤┃
 ┃│  │  │●│●│  │  │┃
 ┃├─┼─┼─┼─┼─┼─┤┃
 ┃│  │  │  │●│  │  │┃
 ┃├─┼─┼─┼─┼─┼─┤┃
 ┃│  │  │  │  │  │  │┃
 ┃└─┴─┴─┴─┴─┴─┘┃
 ┗━━━━━━━━━━━━━┛

146 名前:デフォルトの名無しさん mailto:sage [04/10/18 16:41:38]
┏━━━━━━━━━━━━━━━━━┓
┃┌─┬─┬─┬─┬─┬─┬─┬─┐┃
●│  │  │  │  │  │  │  │  │┃
┃●─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│●│  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │●│  │  │  │○│  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │●│●│○│  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │○│●│  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │○│  │●│  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃└─┴─┴─┴─┴─┴─┴─┴─┘┃
┗━━━━━━━━━━━━━━━━━┛

147 名前:デフォルトの名無しさん mailto:sage [04/10/18 17:28:35]
┏━━━━━━━━━━━━━━━━━┓
┃┌─┬─┬─┬─┬─┬─┬─┬─┐┃
●│  │  │  │  │  │  │  │  │┃
┃●─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│●│  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │●│  │○│  │○│  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │●│○│○│  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │○│●│  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │○│  │●│  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃└─┴─┴─┴─┴─┴─┴─┴─┘┃
┗━━━━━━━━━━━━━━━━━┛

148 名前:デフォルトの名無しさん mailto:sage [04/10/18 17:33:38]
何が面白いんだ?

149 名前:デフォルトの名無しさん mailto:sage [04/10/18 17:52:29]
ゲームのことはさっぱり知らないので、これから勉強して作ってみます。

150 名前:デフォルトの名無しさん mailto:sage [04/10/18 18:01:27]
仮に100x100のオセロはつおいの方のは人間?

151 名前:デフォルトの名無しさん [04/10/18 18:48:26]
┏━━━━━━━━━━━━━━━━━┓
┃┌─┬─┬─┬─┬─┬─┬─┬─┐┃
●│  │  │  │  │  │  │  │  │┃
┃●─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│●│  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │●│  │○│  │○│  │  │┃
┃├─┼─●─┼─┼─┼─┼─┼─┤┃
┃│  │  │●│○│○│  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │○│●│  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │○│  │●│  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│  │  │  │  │  │  │  │  │┃
┃└─┴─┴─┴─┴─┴─┴─┴─┘┃
┗━━━━━━━━━━━━━━━━━┛

152 名前:デフォルトの名無しさん mailto:sage [04/10/18 18:57:44]
(●)(●)(●)(○)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)
 (●)(●)(●)(●)(●)(●)(●)(○)(●)(●)(●)(●)(○)(●)
(●)(●)(○)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)
 (●)(●)(●)(●)(●)(●)   (●)(●)(●)(●)   (●)(●)
(●)(●)(●)(●)(●)(○)(●)(●)(●)(●)(○)(●)(●)(●)(●)
 (●)( )(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)
(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)
 (●)(●)(●)(●)(●)(●)(●)(○)(●)(●)(●)(●)(●)(●)
(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)
 (●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(○)(●)(●)
(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(○)
 (●)(●)(○)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)
(●)(●)(●)(●)(●)(●)(●)(●)(●)(○)(●)(●)(●)(●)(●)
 (●)(●)(●)(●)(○)(●)(●)(●)(●)(●)(●)(●)(●)(●)
(●)(●)(●)(●)(●)(○)(●)(●)(●)(●)(●)(●)(○)(●)(●)
 (●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)
(●)(●)(●)(●)(●)(●)(●)(●)   (●)(○)(●)(●)(●)
 (●)( )(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)


153 名前:デフォルトの名無しさん [04/10/18 18:59:54]
(●)(●)(●)(○)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)
 (●)(●)(●)(●)(●)(●)(●)(○)(●)(●)(●)(●)(○)(●)
(●)(●)(○)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)
 (●)(●)(●)(●)(●)(●)   (●)(●)(●)(●)   (●)(●)
(●)(●)(●)(●)(●)(○)(●)(●)(●)(●)(○)(●)(●)(●)(●)
 (●)( )(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)
(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)
 (●)(●)(●)(●)(●)(●)(●)(○)(●)(●)(●)(●)(●)(●)
(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)
 (●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(○)(●)(●)(★)
(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)
 (●)(●)(○)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)
(●)(●)(●)(●)(●)(●)(●)(●)(●)(○)(●)(●)(●)(●)(●)
 (●)(●)(●)(●)(○)(●)(●)(●)(●)(●)(●)(●)(●)(●)
(●)(●)(●)(●)(●)(○)(●)(●)(●)(●)(●)(●)(○)(●)(●)
 (●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)
(●)(●)(●)(●)(●)(●)(●)(●)   (●)(○)(●)(●)(●)
 (●)( )(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)(●)

154 名前:デフォルトの名無しさん mailto:sage [04/10/18 21:08:56]
消防のときにいとこの家にあそびにきてた香具師が、
4スミは黒ならひっくり返せるというルールを適応した。

そんなルール効いたこと無いんだが、どこのローカルルールなんだ?



155 名前:デフォルトの名無しさん mailto:hage [04/10/19 02:06:28]
○●○○○●○○
●○○○●○●○
○●●○●○●○
●○○○○●○○
●●●○●○●○
○●○●○●○●
●●●○○●●○
○●○○○○●○

○○○○○○○○
○○●●●●○○
○○○○○●○○
○○○○●○○○
○○○○●○○○
○○○○●○○○
○○○○●○○○
○○○●●○○○


156 名前:r mailto:sage [04/10/30 08:39:48]
>>154
お前のいとこの住んでるところじゃね?

157 名前:デフォルトの名無しさん mailto:sage [04/11/07 21:31:53]
ttp://www.amazon.co.jp/exec/obidos/ASIN/4875934289/qid%3D1099830535/249-3370281-4088315


158 名前:デフォルトの名無しさん mailto:sage [04/11/18 19:23:24]
>>155
ここはオセロスレ。囲碁は囲碁の専用のスレをたててやってください。

159 名前:デフォルトの名無しさん mailto:sage [04/12/11 07:12:28]
>>113
やってみたいのでもう一回ソースでいいのでアップしてくれませんか?

160 名前:デフォルトの名無しさん mailto:sage [04/12/27 19:23:42]
>>157
自作プログラム改良の参考にしようと買ってみた。
添付プログラムと対戦させたら、20石以上差をつけて俺のが勝った。
K成→T大というエリートコースまっしぐらの人の書いた本が、
こんなレベルが低いなんて信じられない。

161 名前:デフォルトの名無しさん mailto:sage [04/12/27 19:31:51]
>>130
EasyAI vs 俺の・・・7-57
俺の vs EasyAI・・・50-14

評価関数が良いけど探索が遅い、ってのよりは、
評価関数が悪くても探索が速いほうが、強いことが多い気がします。

162 名前:デフォルトの名無しさん mailto:sage [04/12/29 15:47:44]
>>160
本ってのは、対象読者のレベルに合わせて書かれるものだ。

163 名前:122 [05/01/07 23:35:44]
つえーな。おい。
対戦見てみたいのでUpしてくれませんか。

164 名前:163, 122 mailto:sage [05/01/07 23:37:25]
すまん。
>>161
と書くのわすれたうえにあげてしまった。



165 名前:デフォルトの名無しさん mailto:sage [05/01/19 10:12:08 ]
今頃追いついた。
>21をやってみた。
#getch()はcygwinで見つからなかったので。
○○○○○○○○
○●○○○○○○
○●○○○○○○
○●●○○○●○
○●●●○○●○
○○○○○○●○
●●●●●●●○
○○○○○○●○
単純な割りに、それなりに打ってくるから楽しい。
#逆ルールリバーシは前に作ったがn88basic@pc98だ。

166 名前: mailto:age [05/01/28 13:41:30 ]
↓をみてオセロ作ったんですけどこれを左右上下つなげてトーラス状にするにはどうしたらいんでしょう?
ttp://www.geocities.co.jp/SiliconValley-Bay/4543/Osero/

167 名前:デフォルトの名無しさん mailto:sage [05/01/28 19:49:33 ]
ABCDEFGH
O+++++++ 1
+++++++O 2
++++++++ 3
+++++O++ 4
++++O+++ 5
+++O++++ 6
++O+++++ 7
+O++++++ 8

みたいなときに、
G3にXを置くとこの絵のOの位置は
全部Xにならないといけないよね。

168 名前:デフォルトの名無しさん [05/02/19 16:43:49 ]
8で割った余りを座標に使えばよい

169 名前:デフォルトの名無しさん mailto:sage [05/02/20 02:04:33 ]
ところで、オセロの白と黒の配置って、何種類あるの?

170 名前:デフォルトの名無しさん mailto:sage [05/02/20 04:50:58 ]
さあ。ルールに沿って計算してみたら?
生きている間に計算おわるかはわからないが。

171 名前:デフォルトの名無しさん mailto:sage [05/02/20 07:44:13 ]
高々有限個だ

172 名前:デフォルトの名無しさん mailto:sage [05/02/26 15:26:11 ]
とりあえず3の60乗以下だな。

173 名前:デフォルトの名無しさん mailto:sage [05/02/27 00:54:58 ]
>>172
回転したパターンを省くと1/4になるよ。
でも最初の4駒も後から反転することを考えると ×2^4。

174 名前:デフォルトの名無しさん [05/02/27 01:00:12 ]
対角線で反転させれば減らせそう



175 名前:デフォルトの名無しさん mailto:sage [05/03/05 02:34:09 ]
でも、やっぱり焼け石に水

176 名前:デフォルトの名無しさん [05/03/13 01:25:00 ]
だよねぇ

177 名前:デフォルトの名無しさん [2005/04/09(土) 15:16:01 ]
java言語で少し作ってみたんだけどPEN4/2.59GHzのマシンで、
17−8万手/毎秒くらいしか読めない。
評価関数は駒数と打てる箇所の数しか調べてないのに。
やはりJAVAでは無理があるのか。。

178 名前:デフォルトの名無しさん mailto:sage [2005/04/11(月) 13:12:17 ]
ゴセロ

179 名前:デフォルトの名無しさん mailto:sage [2005/05/04(水) 03:02:18 ]
6行オセロに触発されて、5行オセロに挑戦したが、
5行半で力尽きた、やるせない思い出が…

180 名前:デフォルトの名無しさん mailto:sage [2005/05/18(水) 17:36:19 ]
┏━━━━━━━━━━━━━━━━━┓
┃┌─┬─┬─┬─┬─┬─┬─┬─┐┃
┃│★│#│☆│  │  │☆│#│★│┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│#│#│  │  │  │  │#│#│┃
┃├─┼─┏━━━━━━━┓─┼─┤┃
┃│☆│  ┃☆│  │  │☆┃  │☆│┃
┃├─┼─┃─┼─┼─┼─┃─┼─┤┃
┃│  │  ┃  │■│■│  ┃  │  │┃
┃├─┼─┃─┼─┼─┼─┃─┼─┤┃
┃│  │  ┃  │■│■│  ┃  │  │┃
┃├─┼─┃─┼─┼─┼─┃─┼─┤┃
┃│☆│  ┃☆│  │  │☆┃  │☆│┃
┃├─┼─┗━━━━━━━┛─┼─┤┃
┃│#│#│  │  │  │  │#│#│┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│★│#│☆│  │  │☆│#│★│┃
┃└─┴─┴─┴─┴─┴─┴─┴─┘┃
┗━━━━━━━━━━━━━━━━━┛

★>☆>無印>#の順に(優先的に置く、自分の色に変える)

181 名前:デフォルトの名無しさん mailto:sage [2005/05/18(水) 17:43:33 ]
(あとは4分割した4×4の場所だけで相対的に総当りさせて計算させる程度でいいんじゃない?)←ここももうちょっと場当たり的じゃなく規則性をみいだせるかも
その後候補がいくつか挙がったら初めて自分の色をより多く増やせる場所を選ばせるとか

182 名前:2chに囲碁・オセロ板が出来ました mailto:sage [2005/05/21(土) 21:57:15 ]
前は囲碁・将棋板の中で細々とやってたけど、板分割で正式にオセロ板が!
まだ人口が少なくあまり盛り上がってないので、みんな キテ━━━(゚∀゚)V━━━ !!

囲碁・オセロ
game9.2ch.net/gamestones/
オセロ 雑談・雑学・質問総合スレッド 第8局
game9.2ch.net/test/read.cgi/gamestones/1111765962/

183 名前:デフォルトの名無しさん [2005/07/01(金) 21:07:10 ]
今月のCマガジンでリバーシ大会やってるぞ

184 名前:デフォルトの名無しさん mailto:sage [2005/07/03(日) 22:29:29 ]
>>183
とりあえず作ってみた
暇な人誰か対戦しようよ



185 名前:デフォルトの名無しさん mailto:sage [2005/07/06(水) 18:21:43 ]
>>183
ようやくdllが作れるよーになったトコ。
あと10日強で完成するんかなぁ・・・

186 名前:デフォルトの名無しさん [2005/07/06(水) 23:34:37 ]
オセロ作成中なんだけど定石ってのは覚えさせた方が吉?

187 名前:デフォルトの名無しさん mailto:sage [2005/07/07(木) 08:42:54 ]
>>186
うん、外部から読めるようにするとなお( ´・ω・`)

188 名前:デフォルトの名無しさん mailto:sage [2005/07/07(木) 19:18:11 ]
>>186
いや、定石なんて「固定観念」にとらわれたプログラムじゃだめ。
人間でもそうだけど、前例にとらわれず自分で考えて考え抜くプログラムが結局強いんだよ。


189 名前:デフォルトの名無しさん mailto:sage [2005/07/08(金) 01:13:24 ]
でもオセロは定石といえるものが圧倒的に強いよ
ド素人にもそれ>>180さえ尊守させれば、かなりなれた人間でもじゃんけん勝負で黒が勝つ程度になるくらい。
たまたま知らなかったのは仕方ないとして、プログラムで全てが解決するわけじゃないって事。
多少なりとも知識は必要なのだよ、ライブラリだと思えば素直に使えるだろう?

190 名前:デフォルトの名無しさん mailto:sage [2005/07/08(金) 01:14:38 ]
× かなりなれた人間でも
○ かなりなれた人間相手でも

ちなみにかなりなれた人間というのはクラスで最強程度、プロはの思考ルーチンはおそらくそれを発展させたもの

191 名前:デフォルトの名無しさん mailto:sage [2005/07/08(金) 02:17:20 ]
ふと思ったのだが、オセロで最短手数で終局する手順ってばどんなんだろう。

192 名前:デフォルトの名無しさん mailto:sage [2005/07/08(金) 07:27:06 ]
>>191
自分で作ったプログラムに誤りがなければ、9手+パス2回で11手(?)だった。
f5,f4,c3,c6,c5,d6,f3,c4,c7,PASS,PASS


193 名前:デフォルトの名無しさん mailto:sage [2005/07/08(金) 10:39:05 ]
素朴な疑問だけど、>180によると真ん中の4箇所の優先順位がないのはなんで?
#無印ってことなんかな?

194 名前:デフォルトの名無しさん mailto:sage [2005/07/08(金) 10:45:05 ]
デフォルトで石(コマ)が置いてあるからだよ
石の上から石を強制的に置けるプログラムにしてしまった場合全てのバランスが変わっちゃうし



195 名前:デフォルトの名無しさん mailto:sage [2005/07/08(金) 10:58:08 ]
>>194
「自分の色に変える」は?

196 名前:デフォルトの名無しさん mailto:sage [2005/07/08(金) 11:05:03 ]
180です
>>180
うわのびてますね!
補足すると
太線の━の内側にいる場合:太線の外側の無印が#、#に関してはさらに絶対においてはいけない、■は無印 等

かき損ねた事もありました
実際オセロはあまりやった事がないいい加減な持論なのです
僕のレスを引用してくれた人が肯定してくれたのはうれしいのですが、あまりじしんがありません

197 名前:デフォルトの名無しさん mailto:sage [2005/07/08(金) 11:06:16 ]
太線の━の内側にいる場合 ではなく 内側における場合 でした

198 名前:デフォルトの名無しさん mailto:sage [2005/07/08(金) 11:06:51 ]
ジサクジエンぽい・・


199 名前:デフォルトの名無しさん mailto:sage [2005/07/08(金) 11:09:18 ]
>>195
スマソ、馬鹿だ

200 名前:193=195 mailto:sage [2005/07/08(金) 11:42:19 ]
>>180
納得。ほぼ同意。

私の自論だと、
--
・枠内(>180の┏内)におけるときは外はほぼ無視
・コーナーは取られないように死守
・自分が取るときは罠に填まらないように注意(特に最終局面は駒数次第)
・エッジは諸刃の剣(エッジで取り合いは避けたい)
・エッジの内側は安全地帯
・自分が偏らないよう相手を分断したい(手詰まり防止)
--
てな感じなんですが、さてどうプログラムに反映させたもんか…
#と思いつつ十数年も放置しているのは内緒。

201 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 05:45:30 ]
むちゃくちゃ強いヤツだと、
簡単に、四隅取らせてくれるよ。でも勝てない。
四隅とっても意味なくされる。むしろ、わざと取らせているかのよう。
どういう評価法をつかってるんだろと思う

202 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 06:14:53 ]
その通り、わざと取らせている。

確か、壁際に4つ同じ並びになるのは全く構わないが
□□????□□
□□○○○○□□
――――――――
5つ並び、かつ、はみ出してない側の壁から2つめが同色となる形は愚形となる
□□???○□□
□○○○○○□□
――――――――
なぜなら、この形で右下を取ると、すぐに割り込まれて
下の壁側全部と共に、左下を取られてしまうから
□□???○□□ □□???○●□ □□???○○□ □□???○●□ □□????●□ 
□○○○○○□□ □○○○○○□□ □○○○○○□○ □○○○○○●○ ●●●●●●●○ 
―――――――― ―――――――― ―――――――― ―――――――― ―――――――― 

この形に名前が付いている程で、強い人の間では常識なはず。
だから、他に取る場所がなくなった時に、渋々壁の5つ目を取らせるように
□□●??○□□
□□○○○○□□
――――――――
この形を相手に作らせるようにしているはず。
評価法は知らんけどね。

203 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 06:19:49 ]
今調べたら、ウイングって名前だった。
www.google.co.jp/search?hl=ja&q=%E3%82%AA%E3%82%BB%E3%83%AD+%E6%82%AA%E5%BD%A2&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja

204 名前:193=195 mailto:sage [2005/07/09(土) 09:10:19 ]
>>202
そうそう、それ。
某オセロゲームにその手でよく嵌められて悔しいからこそのこの辺。
>・自分が取るときは罠に填まらないように注意(特に最終局面は駒数次第)
>・エッジは諸刃の剣(エッジで取り合いは避けたい)
うーむ、せめてそのリンク先のサイトくらいは読まないと強いオセロにならなさそうだなぁ。



205 名前:193=195 mailto:sage [2005/07/09(土) 11:03:59 ]
連続失礼。
>202のサイトの基礎のまとめを実装するだけで、そこそこ強い気がするので引用してみる。
--
隅をとることは重要
確定石を増やすことは重要
考え無しに X 打ちをしない
単独 C 打ちは危険
打てる箇所が多くなるようにする
自分の石が内側に固まるよう努める
--
1、4は簡単として、2、5がちょっと厄介か。3は曖昧だし、6となるとどう評価関数を作るか…

206 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 01:38:42 ]
どこかで読んだアイディアなんだが。
辺(というのかフチのところ)用の評価をする。
マス1つ1つの値を返すんじゃなくてマス8つの状態から1つの値を返すわけだ。
3の8乗だったらテーブル化も出来るだろう。

207 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 11:33:44 ]
打てる箇所が多くなるようにする
でやってみたら何故か弱かった

後半は多く取った方がいいのかな

208 名前:デフォルトの名無しさん mailto:sage [2005/07/24(日) 17:28:50 ]
>>26のソース再うpきぼんぬ

209 名前:デフォルトの名無しさん mailto:sage [2005/08/01(月) 00:42:49 BE:4827124-##]
ゼブラとかもう完璧な強さじゃん。
評価関数の精度も抜群で、実質的にはもう完全解析に近い。
今さら研究対象にはならんよなぁ。

210 名前:デフォルトの名無しさん [2005/08/29(月) 13:12:33 ]
とりあえずBuroの論文でも読んだらいいんじゃない
実現は無理だろうけど大いに参考にはなるはず

211 名前:デフォルトの名無しさん mailto:sage [2005/08/29(月) 13:52:10 ]
>>209
ハァ?
ゼブラなんて穴突けば楽勝なんだが。

212 名前:デフォルトの名無しさん mailto:sage [2005/08/31(水) 12:21:07 ]
現在のところ世界で最も精度のよいオセロの評価関数は、
・Edax
・Saio
・Ntest
・Herakles
・Pirate
あたりだと思います。

ってmixiのコミュには書いてあった

213 名前:デフォルトの名無しさん mailto:sage [2005/08/31(水) 21:51:01 ]
国産で最強ってBooby?

214 名前:デフォルトの名無しさん mailto:sage [2005/09/05(月) 20:13:19 ]
>>26のが今行ったら落とせなくなってた、、。どなたかupキボン



215 名前:デフォルトの名無しさん mailto:sage [2005/09/09(金) 17:13:00 ]
C言語の本を一冊半読んだ程度の入門者ですが、
試しにオセロゲーム作ってみました。

敵の思考は、単なる乱数なのでとことんアホですが
最低限、ルールを忠実に守るレベルに達しただけで満足してしまいました。
みなさん凄いですね

216 名前:デフォルトの名無しさん mailto:sage [2005/09/10(土) 03:11:26 ]
一冊半読んでその内容だったら、やめてしまいなさい。

217 名前:デフォルトの名無しさん mailto:sage [2005/09/10(土) 04:44:30 ]
>>216
ん? >>215さんは、「C言語の本」を1冊半読んだのであって、オセロの思考ルーチンや
ツリーの探索の方法については、まだまだ初心者以前なんじゃないの?

つまんない煽りはやめたほうがいい。

218 名前:デフォルトの名無しさん mailto:sage [2005/09/10(土) 05:13:05 ]
Cの本1冊半ならそんなもんじゃない?
次はアルゴリズムの本にチャレンジ。

219 名前:216 mailto:sage [2005/09/10(土) 12:52:14 ]
気悪い思いさせてごめん。

220 名前:デフォルトの名無しさん mailto:sage [2005/10/13(木) 05:51:32 ]
学習させたいのですが、よさげな棋譜(フリーなもの)を教えてください。

221 名前:デフォルトの名無しさん mailto:sage [2005/11/24(木) 16:47:07 ]
IOS

Logisthello

222 名前:ハーピィ mailto:sage [2005/12/05(月) 02:44:10 ]
E・∇・ヨノシ <222ゲット♫

223 名前:デフォルトの名無しさん mailto:sage [2005/12/06(火) 16:21:30 ]
黒白協力しあって、64個全て同色にするような手順はあるか?

224 名前:デフォルトの名無しさん mailto:sage [2005/12/06(火) 20:44:22 ]
いくらでもあるんじゃないの
普通に遊んでて真っ白だか真っ黒だかしたこと何回かあるけど



225 名前:デフォルトの名無しさん mailto:sage [2005/12/06(火) 20:56:13 ]
64マス全部埋めて同色ってことだと思ふ

226 名前:223 mailto:sage [2005/12/06(火) 21:05:33 ]
うむ。確かにいくらでもあるね。例えば先手の黒が絶対に
白をとらないような戦略をとれば容易にできた。サンクス。

227 名前:デフォルトの名無しさん mailto:sage [2005/12/06(火) 21:35:15 ]
>>225
それで
61個とかだともっと何回もある

228 名前:デフォルトの名無しさん mailto:sage [2005/12/11(日) 05:04:01 ]
64-0 は限りなく可能

229 名前:デフォルトの名無しさん mailto:sage [2005/12/11(日) 05:04:32 ]
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1253.txt

230 名前:デフォルトの名無しさん [2005/12/13(火) 01:16:46 ]
とりあえず、COMvsCOMで最も多くひっくり返せる
手を打つリバーシを作りたい。複数の手がある場合は適当に
選択。そこからだんだんと改良したい。
どんな感じでプログラムを組めばいいのか誰か解説頼む。

231 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 01:44:48 ]
そうそう、そんな感じ

232 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 14:59:11 ]
>>226
白を取れるときは取るのがルール。
取れなければそこで試合終了です代。

233 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 18:58:23 ]
>>232
黒が白を取れなくても試合終了にはならない。
両者がどこにも置けなくなった時点で試合終了。

234 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 20:30:45 ]
>>26>>38の再うpキボン



235 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 20:54:35 ]
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1253.cpp
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1280.cpp


236 名前:デフォルトの名無しさん mailto:sage [2005/12/15(木) 20:25:11 ]
>>235
> ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1253.cpp
うほっいいソースコード…
盤面はこれを使わせてもらおう

237 名前:デフォルトの名無しさん mailto:sage [2006/02/05(日) 02:04:11 ]
Zebraに勝てとは言わないけど、せめてThell程度は倒せるプログラムを書こうぜ

238 名前:デフォルトの名無しさん [2006/04/02(日) 23:01:11 ]
>>230
プログラムは、Bookにでているような最善手には強い。
ちょっとはずしたところが弱い。
Bookからちょっとはずしたところで逆転して勝つというプログラムを作ればよい。
石差の評価関数が偶数でなく、奇数になるくらいのところ。
Zebraはかなりこの辺が弱い。



239 名前:デフォルトの名無しさん mailto:sage [2006/04/03(月) 22:59:59 ]
www.uploda.org/uporg355486.zip.html
オセロ作ってみました。アルゴリズムは適当。
変なとこあったら指摘お願いします。

240 名前:デフォルトの名無しさん mailto:sage [2006/04/04(火) 17:51:42 ]
>>239
流れた・・・
再うpおねがいします

241 名前:239 [2006/04/04(火) 21:44:50 ]
up.spawn.jp/file/up16065.zip

再うpしました。

242 名前:デフォルトの名無しさん [2006/04/13(木) 07:45:50 ]
BOOK中心に作れば強いプログラムはできる。
ZEBRAなんかのBOOKは正確じゃないところがあり、もっといいBOOKを使用すれば強くなる。

243 名前:デフォルトの名無しさん mailto:sage [2006/04/15(土) 23:22:05 ]
どうやったらそういう手の込んだものが作れるんですか?
自分も多少Cの知識がありますが、どこでどの関数を使ったり、なぜifだの
do whileだの使ったりするのかが分かりません


244 名前:デフォルトの名無しさん mailto:sage [2006/04/16(日) 01:14:08 ]
正直、
>どこでどの関数を使ったり、なぜifだの do whileだの使ったりするのかが分かりません
のレベルでは
>自分も多少Cの知識がありますが、
こんなこと言うのは烏滸がましい。



245 名前:デフォルトの名無しさん mailto:sage [2006/05/13(土) 22:10:19 ]
1ヶ月近くレスがないわけだが、まだ開発してる人は見ているのかな?
他のコミュニティもあるし今更2chでやることもないのか。

246 名前:デフォルトの名無しさん mailto:sage [2006/07/14(金) 12:57:01 ]
全部未経験だがネット対戦できるオセロでも作るか
オセロの部分は他のソフトから持ってくるけど


247 名前:デフォルトの名無しさん [2006/07/15(土) 10:58:12 ]

main thread ウィンドウの処理
port thread 接続待機スレッド
access thread 一時アクセス用スレッド
battle thread 対戦中に通信するスレッド

こんな感じでいいのかな?スレッドも初めて使うけどw



248 名前:デフォルトの名無しさん mailto:sage [2006/07/15(土) 13:10:51 ]
オセロって関西だよね
パイレーツもかわいかったよね

249 名前:デフォルトの名無しさん [2006/07/18(火) 14:18:41 ]
w

250 名前:デフォルトの名無しさん mailto:sage [2006/07/27(木) 14:40:00 ]
x

251 名前:デフォルトの名無しさん mailto:sage [2006/08/06(日) 23:39:28 ]
みんなすげー。当方しがない高専生でCは教科書終わったところなんだけど人対人で最低限ルールを守るくらいのしか作れない。みんな実務経験あるんですか?

252 名前:デフォルトの名無しさん mailto:sage [2006/08/07(月) 12:50:41 ]
>>251
まあ、さすがに実務でオセロのエンジンを開発している人は
いないだろうけどね。っていうか、そんな仕事ないし。

> 人対人で最低限ルールを守るくらいのしか作れない

いやいや。それが一番大事な部分だよ。
プログラムが「ここはコマを次に打っていい場所」って
きちんと判断できないことには、ゲームが成立しないんだから。

打っていい場所を判別できるプログラムがあるなら、たとえ弱くても
人間相手に対戦できるプログラムを作るのは簡単だよね。極端な
話、盤の端から調べていって、最初に見つけた「コマを置いていい場所」
にコマを打つというプログラムでも、とにかくゲームにはなる。
もちろん、そんなんじゃまるで勝負にならないけど。

次の手としてどこを選ぶのがいいか? という点については、
ネットなり書籍なりで少しずつまねていけばいいよ。

>>157 で既出だけど、こんな本がある。

リバーシのアルゴリズム C++&Java対応
 ―「探索アルゴリズム」「評価関数」の設計と実装
www.amazon.co.jp/gp/product/4875934289

253 名前:デフォルトの名無しさん mailto:sage [2006/08/11(金) 23:39:58 ]
>>251
経験無くても組めると思うけど
そんな、俺はしょぼい大学生
Cの講義と、C++の本でもある程度は組めるよ
でも、239氏のとか見てると感動する

254 名前:デフォルトの名無しさん [2006/08/20(日) 16:34:29 ]


 ------------------------
 |リバーシ2ch   _□×|
 ------------------------
 |メニューバー     |
 ------------------------
 |           |
 |   ●○●     |
 |      ●    |
 |           |
 |           |
 |           |
 ------------------------
 | お前が弱いな(緑)  |
 | オマエモナー(赤)  |
 ------------------------
 | 送信するメッセージ |
 ------------------------
 |対戦中 あなたの番です |
 ------------------------

こんな感じのリバーシ作ろう思うんだけど
まだないよね?



255 名前:デフォルトの名無しさん mailto:sage [2006/08/20(日) 16:48:00 ]
(緑)(赤)ってポケモンかよ

256 名前:デフォルトの名無しさん [2006/08/20(日) 17:03:52 ]
239氏のやつを再うpしてはもらえまいか

257 名前:デフォルトの名無しさん mailto:sage [2006/08/20(日) 21:09:56 ]
単純にCでプロンプト上で動くオセロはできたけど
>>254みたいなGUIなオセロ作るにゃ何がいるんだ?

258 名前:254 [2006/08/21(月) 08:23:25 ]
未完成だがこんな感じ

pass 2ch
japanese-truth.hp.infoseek.co.jp/cgi-bin/upload.cgi?mode=dl&file=1156116104

このオセロのソースは他からの流用ね


259 名前:254 [2006/08/21(月) 08:28:45 ]
今できるのはコンピューターとの対戦のみね(これもパクリだけど)

これからネットワーク部を作りたいんだけど
IPアドレスをなんかでやりとりしてそれを入力して対戦する感じに
仕様と思うんだけどどう?

260 名前:デフォルトの名無しさん mailto:sage [2006/08/21(月) 12:38:47 ]
いいんでないの?


261 名前:260 mailto:sage [2006/08/21(月) 12:39:50 ]
お前 >>247 なの?
>>247のレスは馬鹿げてるからな!



262 名前:デフォルトの名無しさん [2006/08/21(月) 13:30:08 ]
リバーシみんなオンラインとかいうのがあるけど
これとは違うの?


263 名前:jyo mailto:jyo-kaikoku@hotmail.co.jp [2006/08/21(月) 13:47:30 ]
誰が教えって下さい。お願い致します。
計算トレーニングプログラムを作成したいですが?
計算は、足し算、引き算、掛け算、割り算を選択する。
桁数は1桁、2桁をはじめに選択する。
計算式の数値はランダムで表示する。
計算式及び、答えを配列に保存し、終了後に全て計算式と答えを表示する。
問題は10問とする。
そのときの点数を表示する。
結果表示の時、一緒にかかった時間も表示する


264 名前:デフォルトの名無しさん mailto:sage [2006/08/21(月) 15:12:00 ]
>>263
日本語でok



265 名前:258 [2006/08/21(月) 15:34:49 ]
で今迷ってるのは 掲示板でIPアドレスをやり取りして戦うのか
サーバーを用意して自動で取得するのかどっちかなんだよな

リバーシみんなオンラインもサーバーを使ってるけど
それじゃp2pの意味がない。

無料サーバー使うわけにもいかないしなw


266 名前:デフォルトの名無しさん mailto:sage [2006/08/22(火) 02:42:58 ]
daichatとか言う名前のp2pのチャットソフトがあるから見てみたら?
場合によっては、プロトコルをそのまま使えるかもよ。

267 名前:デフォルトの名無しさん mailto:sage [2006/08/22(火) 10:04:41 ]
>>266
258ではないが検索しても見つからんぞ
URL教えて栗

268 名前:266 mailto:sage [2006/08/22(火) 23:55:19 ]
>>267
ゴメン、確かに見つからない。
漏れのディスクのバックアップ中からも見つからないからどこから入手したか判らないや。
#何度かディスクを飛ばしているから、ロストした可能性が高いと言えば高いのだが。

269 名前:デフォルトの名無しさん mailto:sage [2006/11/08(水) 03:56:10 ]
使うとよさそうな技法のキーワード
・BitBoard
・MTD(f)
・Mobility
・パターン
・パリティ
・ブック
・Move Odering
・MPC
・WLD Solve

270 名前:デフォルトの名無しさん [2006/11/09(木) 02:43:45 ]
>>269
揚げ足取りじゃないけどMove Orderingね。

読んで参考になるソース
www.radagast.se/othello/zebra.html
othellogateway.com/ntest/Ntest/index.htm

271 名前:デフォルトの名無しさん mailto:sage [2006/12/15(金) 22:38:02 ]
どなたかこちらで一緒にオセロiアプリを一緒に作りませんか?
pc8.2ch.net/test/read.cgi/tech/1165049332/
興味があれば是非。

272 名前:デフォルトの名無しさん mailto:sage [2006/12/15(金) 23:03:33 ]
一緒にがかぶってた

273 名前:デフォルトの名無しさん mailto:age [2007/02/02(金) 20:59:24 ]
pc10.2ch.net/test/read.cgi/tech/1169413998/

274 名前:デフォルトの名無しさん mailto:sage [2007/02/20(火) 01:20:51 ]
オセロ奥深杉wwwwwwwww
Thellの強、強+に勝てねーwwww



275 名前:デフォルトの名無しさん [2007/02/21(水) 22:23:05 ]
C++でつくってみますた。
開発環境はVC6。
ソース綺麗にするつもり無いです。

ここの
kasamatusan.sakura.ne.jp/
1MB
ichi76063.zip
zipパスは「mu」

276 名前:デフォルトの名無しさん mailto:sage [2007/02/21(水) 22:33:14 ]
途中で打てなくなる事があるが。

277 名前:デフォルトの名無しさん mailto:sage [2007/02/21(水) 22:35:14 ]
>>276
まじすか。打てる場所がなくなったんじゃなくて?

278 名前:デフォルトの名無しさん mailto:sage [2007/02/21(水) 22:35:58 ]
ちなみにルールでは初期配置はこれで黒が先手。
○●
●○


279 名前:デフォルトの名無しさん mailto:sage [2007/02/21(水) 22:37:05 ]
打てる場所はある。
盤上に打てる場所のマークもある。
しかし入力を受け付けないようだ。

280 名前:デフォルトの名無しさん mailto:sage [2007/02/21(水) 22:40:35 ]
半角で x△y(△=半角スペース)の書式で入力しないとバグります。

281 名前:デフォルトの名無しさん mailto:sage [2007/02/21(水) 22:40:59 ]
あれ?同じ進行を打ったら今度はちゃんと石が返った。

282 名前:デフォルトの名無しさん mailto:sage [2007/02/22(木) 06:21:37 ]
自分もオセロプログラム作っててそこそこ強くなったから
ここで公開しようかなと思ったけどC言語じゃなかった。

283 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 12:35:16 ]
作ったプログラムを対戦させたらおもしろいかも(・∀・)

284 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 10:04:27 ]
保守



285 名前:デフォルトの名無しさん [2007/04/26(木) 18:26:26 ]
あげあげ

286 名前:デフォルトの名無しさん [2007/06/17(日) 15:10:35 ]
あげ

287 名前:デフォルトの名無しさん mailto:sage [2007/06/17(日) 16:45:33 ]
素晴らしいをもう一度定義しなおすんだ

288 名前:デフォルトの名無しさん [2007/07/02(月) 00:46:08 ]
あげ

289 名前:デフォルトの名無しさん [2007/07/20(金) 20:24:53 ]
あげ

290 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 19:18:26 ]
239さんの再うpしてほしい

291 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 18:49:34 ]
239さんの再うpしてほしい

292 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 01:11:55 ]
誰かうpしてくれ

293 名前:デフォルトの名無しさん [2007/08/18(土) 15:00:33 ]
/

294 名前:デフォルトの名無しさん [2007/08/18(土) 17:16:41 ]
だれかうp



295 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 17:18:28 ]
もっと強いのうpしようか?

296 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 17:20:48 ]
wktk

297 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 17:28:16 ]
どぞー
radagast.se/othello/zebra.tar.gz
GCCやMinGWでコンパイルできる
VC++だと少し書き換えが必要
あとzlibが必要
動かすには↓に同梱されてるbook.binとcoeffs2.binが必要
radagast.se/othello/wz424.exe

298 名前:デフォルトの名無しさん [2007/08/19(日) 15:49:08 ]
コンパイル出来んぞー!
gccだけでなく、gmakeも必要じゃん。
しかも「dir.hが無い」って言われた。
ANSIやISO規格にそんなん無いだろ。
もしかしてWin?

ちゃんとしたPOSIX規格の環境でmake
通るようにしる!


299 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 09:13:43 ]
>>298
ビルド環境を書いたら?


300 名前:デフォルトの名無しさん [2007/09/17(月) 05:12:20 ]
誰か>>297を使えた人居る?

301 名前:デフォルトの名無しさん mailto:age [2007/09/17(月) 07:20:15 ]
www.freewebs.com/photoradio/?0/880143

302 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 20:59:44 ]
>>300
居る


303 名前:デフォルトの名無しさん [2007/09/18(火) 07:55:56 ]
どうだった?
強い?

304 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 12:54:09 ]
>>303
≒wzebra



305 名前:デフォルトの名無しさん [2007/09/30(日) 09:43:07 ]
ほっしゅん

306 名前:デフォルトの名無しさん [2007/11/07(水) 19:48:53 ]
最強のプログラムは何?

307 名前:デフォルトの名無しさん [2007/11/18(日) 04:06:30 ]
>>306
総合力ではSaioだな。

上位の面子は2年程前(>>212)とほとんど変わってないな。

308 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 12:46:09 ]
1 すばらしいオセロとは最強のオセロなのか?
最強のオセロプログラムは人間では全く歯が立たないのでNO

309 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 20:12:18 ]
>>26
の改正版の再うpして頂けませんか?どなたか持っていませんかね

310 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 15:49:18 ]
お前らがうpしてくれないからオレが最初から作ってみるから協力するんだぜ

311 名前:デフォルトの名無しさん [2007/11/27(火) 16:38:34 ]
>>310
すまんね 俺も>>26は持ってないんだ
協力するよ

312 名前:デフォルトの名無しさん [2007/11/27(火) 16:58:39 ]
どうせなら64bitCPU最適化版を作らないか
64bit×2のbit boardで

313 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 05:32:01 ]
>>312
64bitのbit boardなら既にMMXで実現されてないか?

314 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 10:20:45 ]
だとしたらそれが何か?



315 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 15:16:01 ]
土日になったら作り始めるから、おまいら頼みますよ。
入門書卒業の専門情報処理科だから綺麗な物は作れないけど

316 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 15:25:00 ]
>>315
最低でも人間の世界チャンピオン以上を目指すなら協力するよ

317 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 15:57:12 ]
>>315
おー、頑張れ。

318 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 16:08:03 ]
>>315
老若男女誰でも楽しめる、ほのぼのとしたオセロを作り上げてほしい

319 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 19:24:55 ]
>>316
頑張ります。中級者レベルになってみせますので僕に力を
>>317
はい
>>318
最強と最弱のLv設定を出来るようにしてみたいですね
とりあえずは先手は決まってる状態から作ってみて完成出来たら
それぞれ機能を追加して行くというのが理想です。

やってみたら難しくネット上のソース読んでるだけで一日が終わってる・・・
>>26
┏━┯━┯━┯━┯━┯━┯━┯━┓
1┃  │  │  │  │  │  │  │  ┃
 ┠─┼─┼─┼─┼─┼─┼─┼─┨
2┃  │  │  │  │  │  │  │  ┃
 ┠─┼─┼─┼─┼─┼─┼─┼─┨
3┃  │  │  │  │  │  │  │  ┃

これ表示したかったけれど、盤の操作する関数が難しくなりそうなので
オレにはLvが高すぎる気がしてきた

320 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 09:03:54 ]
>>319
難しくはならないよ
まず長さ91もしくは100のint配列を用意して各マスの状態は空き:0、黒:1、白:2、壁:3で表す
この配列の表す盤面を画面にプリントする関数を作れ

321 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 18:32:47 ]
>>320
少しづつ出来てきたのでそれをうpするので、応用すれば表示出きるかYES/NOで
暇なときでいいですので答えて頂けませんか。
引き続き勉強行ってきます。

レス有難うございます

322 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 00:44:39 ]
ほい
がんばれ

323 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 02:59:21 ]
な、、何か・・・何か>>26と違うんだ・・・

すばらしいオセロの表示
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5387.txt

324 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 04:35:27 ]
そりゃ違うだろ

for(x=1; x < 9; x++){
state = getStone(pBoard,x,y);
switch (state) {
case NONE: stone = '.';break;
case BLACK: stone = 'B';break;
case WHITE: stone = 'W';break;
default: stone = 'E';
}
printf("%c",stone);
printf(" │");
}


for(x=1; x < 9; x++){
state = getStone(pBoard,x,y);
switch (state) {
case NONE: printf(" "); break;
case BLACK: printf("●");break;
case WHITE: printf("○");break;
default: printf("変");
}
printf(" │");
}



325 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 08:15:41 ]
>>324
盤の表示だけは完成しました。あとは動きそうかな?程度に完成したあと
AI等実装していってみます。レス有難うございました。

326 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 10:34:47 ]
盤は壁無しでやったのか
壁を省いた理由は何かあるの?

327 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 10:39:01 ]
initBoardとgetStoneもちょっとおかしいな

328 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 12:33:39 ]
>>326
気になって調べたのですが、壁があると着手状態のなんたらがやりやすい
みたいなのがあったので壁作る事にしました。

>>327
確認できた限りでは初期化の仕方間違ってる気がしたので壁ありで直しました
getStoneに関しては日本語の意味の間違いに気づき修正を

一通り出来たので次の工程にもう行くぜ!
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5389.txt

329 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 13:55:13 ]
>>328
5389.txtを見ての感想
Boardの配列[10][10]という宣言では添え字は[0〜9][0〜9]を指定します。
紙に書くと判り易いと思いますが、座標ズレが発生しています。

330 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 14:09:58 ]
>>329
ばーか。

>>328
折角壁のスペースを確保しているのに、壁を無視して配置している希ガス。

331 名前:329 mailto:sage [2007/12/03(月) 14:22:10 ]
>>328
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5390.txt

332 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 14:29:39 ]
>>328
ほらよ。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5391.txt

333 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 15:57:19 ]
縦軸も横軸も数字になってるけど、普通は片方を
アルファベットにするもんだよ。

334 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 16:21:13 ]
BOARDSIZEをdefineしてるのに10は決め打ちという不思議



335 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 17:07:43 ]
>>329-331
こんなにミス、無駄がある現実・・・
配列を全部書くとイメージが凄いしやすいんですね。>>331のtxt頂きました有難うございます。
>>332のstaticとか縁の無い関数でしたが今少し使い道が分かった気がしました。
配列の初期化の方法でこういう方法がありましたかw参考になりました。
指摘コメントまで有難うございました。

>>333
列をアルファベットにするのが一般的っぽいので書き直す事にします
>>334
そこも直した方がいいみたいですね。ですがBOARDSIZEにしたら逆に見た目で
判断しずらくなったので長ったらしくなるまで少しの間数字にしておこうか迷う

336 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 17:55:31 ]
>>335
オセロの派生版を作る野望がホンの微かでもないなら、8の決め打ちでもいいんじゃね?
BOARDSIZEを7にしたらどうせ同じルールじゃできなくなるわけだし。

337 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 14:49:59 ]
>>335
最近は進んでるかい?

338 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 02:48:51 ]
すいません、PCが壊れてしまい修理してました…。やっと戻ってきて再開できそうです。
派生盤等は現状で自分には考えられませんので決め打ちにしてみます。
PC戻ってきてもOCN規制で2chに書き込めず携帯から2ch発見しましたw
やれなかった分追い込みます。

339 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 03:14:44 ]
プログラム初心者だが俺も作ってみようかな

340 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 03:18:28 ]
がんばれ
協力するよ

341 名前:339 mailto:othello [2007/12/15(土) 08:44:36 ]
332を参考にして交互に打てるのを作ってみました。
www.vipper.org/vip691346.txt.html

かなり時間かかった。
とりあえず寝よう。。。

342 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 09:33:49 ]
お疲れさん

343 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 10:24:16 ]
>>341
勝手にアドバイスさせてもらうと、
isPlaceable() 内のdx, dyを
dx[] = {-1, 0, 1, -1, 1, -1, 0, 1};
dy[] = {-1, -1, -1, 0, 0, 1, 1, 1};
とすると、ループで書ける(x+dx[i]*count の形で表せる)のですっきりするよ。
同様にplace() も簡潔に書けると思う。

344 名前:339 mailto:sage [2007/12/18(火) 00:58:47 ]
>>343
なんとかループに直すことができました。
あと、とりあえずランダムに打つAIをのっけてみました。

www.vipper.org/vip693247.txt.html

次は適当な評価関数を作ってMinMax法を実装してみようと思います。



345 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 01:03:45 ]
>>344
盤面はどうやって戻すつもり?

346 名前:339 mailto:sage [2007/12/18(火) 01:48:53 ]
>>345
差分(打った場所、引っくり返した場所)を取っておこうかと思うのですが
はたしてこのままでいけるのかどうか実はよくわかってないです・・・

347 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 14:21:20 ]
俺も大昔プログラミングの勉強する時にオセロを作ったよ。
作りこんでいくと遊び感覚でプログラミングの基本が勉強できるから良い課題だと思う。
中級を目指すなら、そのうち以下くらいは挑戦してみては? (今は意味不明かもしれんが・・・)

ポインタ→各種関数へのデータの引渡し
構造体→各種状態の保存
共用体→汎用関数からのステータス
ツリー構造→着手進行から高速サーチ可能なBook
再帰呼び出し→MinMax探索(αβ探索)
線形リスト→探索関数内での空マス保持リスト
ハッシュテーブル→探索局面の置換表
ソート→Move Ordering

F/W開発するハードエンジニアには、

ビット操作(含むMMX)→ビットボードによる高速化
同時実行率の高いコードの作成→処理の高速化
CPUキャッシュヒット率の高いコードの作成→処理の高速化

なんかも面白いと思う。

モンテカルロ法とか使って囲碁のプログラム書くのも良いけど、
基本の勉強にはオセロの方が色んな意味でわかり易い。

348 名前:デフォルトの名無しさん [2007/12/23(日) 14:31:25 ]
むりやり勉強とオセロを結びつけなくて良いよ

349 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 14:39:26 ]
ど素人乙

350 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 17:29:24 ]
モンテカルロ法はマルチスレッドの入門にいいかも

351 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 04:18:33 ]
ニューラルネットワーク→葉局面評価関数

352 名前:デフォルトの名無しさん [2008/01/16(水) 03:59:48 ]
オセロ作るのにスタックを用いてるソース等見るのですが
スタックのがいいのですかね?

353 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 04:06:50 ]
すいませんageてしまった

354 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 05:47:39 ]
>>352
スタックを用いるといいのは盤面をintか何かの配列で表現するとき。
bit boardで表現するときは盤面全体をコピーしたほうがいいからスタックは不要。



355 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 06:04:20 ]
>>354
配列で表現してみた方が自分にはイメージしやすいので、スタックを考慮して考えてみる事にします
レスありがとうございました!

356 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 02:47:48 ]
論理的にしらみつぶしで先読みするタイプのものではなく
実際に対戦してみて経験を積むようなプログラムって
どのように書けばよいのでしょうか

357 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 05:09:44 ]
>>356
強化学習が当てはまるけど
それぞれ独立した手法で通常は併用されるもの

358 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 05:40:58 ]
強化学習はの実装はこれがわかりやすい
www.vector.co.jp/soft/winnt/game/se415793.html

359 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 10:03:16 ]
宣伝乙

360 名前:デフォルトの名無しさん [2008/01/21(月) 01:25:32 ]
Cプログラマ必須テキスト!

mori.eco.to/


361 名前:デフォルトの名無しさん [2008/01/23(水) 00:02:55 ]
強化学習面白いな
確かHeraklesも使ってるんだっけ

362 名前:デフォルトの名無しさん [2008/01/27(日) 06:19:42 ]
AIを実装しようと挑戦中なのですが、MiniMax法について質問させて頂きます。

先手、後手ともに最善の手を取った場合を数手先読みし最善の場所を
決めるのがMiniMax法ですよね?
いざ実装してみようと試みたのですが最善手を評価する際のMAXとMIN
を以下のようにしたのですが、このようなやり方はダメな例ですか?

まずBord[10][10]というメインとなるボードと、それとは別に8*8の盤面にあらかじめ
数値を入れた盤面 (この数値の差分から数手先の最善手を決める) を用意しようと
考えています。

363 名前:362 mailto:sage [2008/01/27(日) 06:37:24 ]
すいません何言ってるか分からないですよね。とりあえず>>362の方法で作ってみます
その上でどうか尋ねてみます。

364 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 09:43:00 ]
MinMax法やばす・・・難しすぎるんだけど
とりあえずMiniMax法を作る上でのコツか何かありませんか



365 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 10:44:34 ]
NegMax の方が実装は楽だが,minmax が作れないんじゃ一緒だろうねぇ.肝の部分は再帰使って数行で書けるんだけど.
プログラム例が載ってる本でも買えば?

366 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 10:45:23 ]
int minmax (int min, int max)
{
for (i = 0; i < n; i++) {
move (i);
v = -minmax (-max, -min);
undo ();
if (v > max)
return v;
if (v > min)
min = v;
}
return min;
}

今30秒くらいで書いたけど基本はこれだけだと思う

367 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 11:30:57 ]
>>365
ネット上の読み物で出来たらいいんですが、買うことを考えるべきですかね・・・
>>366みてみるとundoとかいう機能を作りずらい作りになってしまっている予感です
ネット上の拾いものからその行程が出来ないか試してみます
参考例ありがとうございました

368 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 15:40:51 ]
書籍購入を躊躇うようなら、その程度ってこった。

369 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 15:46:51 ]
NegaMax、MinMaxくらいならネットの説明だけでも十分すぎる。
まじで。

370 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 19:02:14 ]
そんな脳を俺に下さい・・・

#define BOARD_SIZE 8
int Board[10][10];

自作関数1: ・x と y の座標を引数に貰い、Board[x][y] ( A1と打ったならば x = A(1)、y = 1 )
         について8方向を調べたあと置ける場所があるならばその場所を 返し、ひっくり返す。
        ・調べる方向は左上からy行x列方向に。
        ・手を指して次の盤面の状態にする

371 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 19:03:38 ]
先手黒から見た評価関数の一部の例
>>366での
for (i = 0; i < n; i++) {
move (i);
v = -minmax (-max, -min);
undo ();
の部分だと思います
─────────────────────────────────────────
/* ネット上の拾いものの解説 */
while( 打てる手がある ){

  @手を差して次の盤面を作る;

  Aval = minimax( 盤面, depth - 1 );       一手先を読む再帰。3手まで読んでみるつもり

  B盤面を1手戻す;
─────────────────────────────────────────
/* 上記を例に作ってみた */
blackturn( int **board , depth )           2次元配列のポインタと、3手読みたいので3を貰う
{
  int val;
  if( depth == 0 ) return 評価値(盤面);

  for( y=1; y<=BOARD_SIZE; y++ ) {    盤面全部を検索し置ける場所を8*8全部調べる
    for( x=1; x<=BOARD_SIZE; x++ ) {
@     if( 自作関数1 ) {          board[x][y]に石が置けるならひっくり返してみる
        ターンを次にする;
        色を変える;
A       val = blackturn( &board , depth - 1 );

B問題点  ここの処理がスタックを用いておらず出来ません。通常どのように行って居るのでしょうか?
        長々と見ずらく申し訳ないですが伝わって頂ければ幸いです

372 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 19:56:38 ]
石を返せることが分かってから返す際に石を置いた場所と返した場所の情報スタックに記録しておく
返した場所の代わりに方向とそれぞれの方向で返した数を記録してもいい

373 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 20:26:17 ]
>>372
ネット上からスタックの例を見て条件満たせるよう作ってみます。
レスどうもありがとうございます!

374 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 20:26:47 ]
もう世界一のプロが敗北してだいぶ経つんだし強さはもういらないだろ。
あとは人間との対局で統計データを取りながら
自動的にぎりぎりの強さで負けるような
ナチュラルな強さ調整機能をつけてくれ。



375 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 20:28:11 ]
黙れ門外漢

376 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 22:15:23 ]
>>375
お前のことか?

377 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 23:05:05 ]
>>374>>376だよ(笑)

378 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 23:56:00 ]
と門外漢が申しております

379 名前:デフォルトの名無しさん [2008/01/28(月) 00:25:11 ]
お前らこういう言い合い好きなんか

380 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 04:15:18 ]
見るのも仕掛けるのも受けてたつのも好きだ

381 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 04:33:45 ]
まぁそれくらいしか能が無いしな
がんばれ

382 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 06:23:57 ]
石を返す処理って1方向ずつじゃないとダメっぽいんだな・・・
糞コード全開だぜ・・・

383 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 06:53:01 ]
>>372の続きでスタックの質問なのですが
石を返す”場所”をスタックに書き込む処理というのは

Board[x][y]というBoardがあったとしますよね。
f5という入力の場所の記録を行う場合には
f5という数値を入れるのでしょうか?
スタックには       

             ← スタックポイントがここ
方向
石の数
場所
方向
石の数
場所(F5)       1番最初のデータ

という風に入れればいいのでしょうか?

384 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 10:14:42 ]
>>383
これ無視して下さい。一から作り直すことにします



385 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 22:37:11 ]
>>380
可能です。
以上。
はい、次。

386 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 23:05:43 ]
誤爆か?

387 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 08:51:01 ]
>>386
最近の流行

388 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 09:00:18 ]
誤爆か?

389 名前:デフォルトの名無しさん [2008/03/23(日) 01:42:36 ]
あげ

390 名前:デフォルトの名無しさん [2008/06/19(木) 01:43:37 ]
再帰使わないで囲碁プログラムできないか?



391 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 01:46:01 ]
できるよ

392 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 10:10:58 ]
つーか,囲碁でも将棋でも再帰は使わない方が普通だと思うが

393 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 10:14:20 ]
スレ違いなんだから話を引き伸ばすなよ



394 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 20:58:30 ]
アルファベータ検索とか再帰だろ



395 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 13:25:00 ]
概念的にはそうだが,実際は自分で管理してループにする方が普通
全データローカルスタックに取るわけにも行かないし

396 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 16:30:33 ]
>>394
×検索
○探索


397 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 03:03:57 ]
評価関数のパラメータに使う盤面の特徴量ってどんなのがありますか?
パターン、パリティ、クアッドパリティ、モビリティ、ポテンシャルモビリティ、他にあれば教えてください。
思いつきでもかまいませんので。


398 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 01:00:46 ]
思いつきとしては、安定度みたいなのがあっても良い気がする。

αβ探索で深読みすると浅読みで良手だったのが悪手になったりするでしょ?
これって、その局面を進めていくとそういう局面を発見するからだって考えがちだけど、
単純に考えれば、浅読みの評価値が間違っているとも言える訳で。
評価関数が、局面の善悪を出力するのなら、1手読みで十分な筈でしょ?

俺としては、深読みが有効なのは評価値にはランダムな誤差があって、
何段ものミニマックス探索がその誤差をフィルタリングする結果、
安定度の高い(評価誤差が少ない)局面を選択できるからだと思ってるんだよね。

今はパターンの重みを決める時とかは、結果的にそのパターンが現れた時の
最終的な石差の平均値に収束するように決めてるでしょ?
でも、実際にはそのパターンが現れた時に勝つこともあれば負けることもある。
勝てる局面で下手をして負けるってこともあるけど、
実はそうではなくて、そのパターンを含む局面は本質的に不安定なのかもしれない。
と、考えてみると安定度というパラメータが見えてくる。

パターンAは50%は大負けで50%は大勝だとすると
普通に学習させるとこのパターンは勝ち負けに影響しないと判断されて重みは0になる。
10%は僅差負けで90%は大勝のパターンBと100%僅差勝ちのパターンCでは、
10%は僅差で負けるパターンBの重みの方が大きくなるのが普通だよね?
それで良いんだろうか?ってこと。
これらのパターンが選択可能な時、より確実に勝ちたかったら、パターンCを選びたいよね?

安定度っていうのはそういうこと。
今の評価関数にはこういうのが入っていないと思う。


399 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 02:53:31 ]
>>398
評価関数が正確なら1手読みで十分だけれど、

逆に、
局面が最後まで読めるのなら
評価関数は石数を数えるだけで良いと考えると

読みの深さを増やすほど強くなりそうなことがわかる

だから、評価関数を正確にすることだけではなく
計算速度が速い評価関数が使われてるんだ。

>今はパターンの重みを決める時とかは、結果的にそのパターンが現れた時の
>最終的な石差の平均値に収束するように決めてるでしょ?

評価にMinimaxが使われているのだから、
評価関数のスコアも平均値ではなくて、
自分、相手が共に評価関数の決める最善手を指したときのスコアに
近づくようになってると思う。

だから

>パターンAは50%は大負けで50%は大勝だとすると
>普通に学習させるとこのパターンは勝ち負けに影響しないと判断されて重みは0になる。
>10%は僅差負けで90%は大勝のパターンBと100%僅差勝ちのパターンCでは、
>10%は僅差で負けるパターンBの重みの方が大きくなるのが普通だよね?

こんな風に勝率で評価関数を決めていないと思うんだが。

もし、そのやり方に沿って決めるなら
Minimax法が使えなさそう。

400 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 02:15:55 ]
>>399
評価関数が局面から一定の値を導出するのであれば(極端な話、ハッシュ関数でも)
AIとしての強弱はともかくMinimax法は使える。


401 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 20:50:29 ]
>Minimax法は使える
はぁ?

402 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 23:45:00 ]
ひぃ?

403 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 00:13:50 ]
ふぅ。

404 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 01:26:46 ]
へぇ・・・



405 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 02:06:45 ]
hint : static evaluation function, heuristic evaluation function


406 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 09:09:26 ]
Minimaxを使う目的を分かってない人が混ざってるようだ

407 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 13:31:15 ]
雑魚が混ざってきたか

408 名前:デフォルトの名無しさん [2008/08/11(月) 02:16:50 ]
slashdot.jp/article.pl?sid=08/08/09/2221200

409 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 09:37:27 ]
>勝つ可能性が一番高い動きを取り続けた。まるで機械のようだった

ワロタ

410 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 12:20:09 ]
ミニマックスとアルファベータの違いがわからん
>>366に枝狩りの処理を入れたらアルファベータ?

どうでもいいけど評価値得てないよ・・・ minとmaxをアホみたいに
引っくり返してるアホ関数だなそれはw

411 名前:デフォルトの名無しさん [2008/10/20(月) 02:17:59 ]
age

412 名前:デフォルトの名無しさん [2008/12/04(木) 20:42:21 ]
ほす

413 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 12:29:18 ]
読む->引き分けか勝ちが出る
優先順位に置く
完成

414 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 16:57:36 ]
>>374
>もう世界一のプロが敗北してだいぶ経つんだし強さはもういらないだろ。
勝ち切る手のDB出来ちゃったからな

>あとは人間との対局で統計データを取りながら
>自動的にぎりぎりの強さで負けるような
>ナチュラルな強さ調整機能をつけてくれ。
序盤20手:大負けしない手を打つ
中盤20手:引き分けか2手差で負けるくらいの手を打つ
終盤20手:全力で勝ちに行く

このくらいでナチュラルに強い打ち手になると思うけど



415 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 16:58:56 ]
2手差->2石差
すまんこ


416 名前:名無し mailto:(^_-) [2008/12/25(木) 01:19:00 ]
オセロ懐かしい
父親が森田オセロ(8bitパソコン)より強いヤツをめざして、ORや多次元尺度など色んな手法を試していたな。

417 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 15:13:51 ]
プログラム作成者の能力以上の強さにはならない件

418 名前:デフォルトの名無しさん [2008/12/26(金) 22:34:13 ]
関係ない書き込みばっかで本題が全く進行してねぇw

419 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 23:36:12 ]
down11.ddo.jp/uploader/download/1230647574.zip/attatch

420 名前:デフォルトの名無しさん [2008/12/31(水) 01:16:31 ]
>>419
NetBSD/MIPSだが、動かないぞ。

421 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 01:35:47 ]
ソースは無し?

422 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 08:00:33 ]
思考ルーチン以外のところは終わっているテンプレートオセロプログラムってあるの?
ないにしても、どういうテンプレートにしておけば組み込みやすいのだろうか?
データ構造とか、必要な関数とか、それらの関係性とか。
前に(学部でC++習ったときのプロジェクト)オセロ作ったことあるんだけど、
今見ると、この構成じゃ、思考ルーチンいれにくいなぁと思ったのであります。

423 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 12:13:57 ]
www.vector.co.jp/vpack/browse/pickup/pw4/pw004827.html

424 名前:デフォルトの名無しさん [2008/12/31(水) 12:42:09 ]
>>417
技術的にはそうだけど実際の強さは自分より強い物が作れるだろ
第一技術的に高度な物が強くなるとは限らないし



425 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 12:44:05 ]
チェスのチャンピオンに勝ったプログラムだって
プログラマがチャンピオンより強かったわけじゃないしな。

426 名前:424 [2008/12/31(水) 12:45:25 ]
例え話をすると素数を出すプログラムを作った人がその素数をそこまで数え上げられるわけじゃないだろ?
そういうこと

427 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 19:22:26 ]
神の一手に一番近いのはプログラムかもしれないな

428 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 22:56:49 ]
何を今更

429 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 00:34:42 ]
Googleの社員の個人情報がググれるみたいなもんか


430 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 20:27:48 ]
>>422
あらかじめ独立化することを考えておかないと、修正は難しいだろうね
どうせなら思考部分を別プロセスにすると、プログラム同士で対戦とか
簡単に出来て面白そう
Windowsだとoverhead大きいかな

431 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 21:08:14 ]
最後の行関係ない

432 名前:デフォルトの名無しさん [2009/01/06(火) 15:41:18 ]
>>422
チェスのChess Engine Communication Protocolみたいに規格を決めればいいんじゃねえの。
参照:www.tim-mann.org/xboard/engine-intf.html

433 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 16:19:31 ]
オセロで他のプログラムと対局するのは
GGSっていうサーバを介するのが一般的


434 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 16:57:04 ]
「神の一手は誰でも打てる。2手目以降の全てが平凡なのだ」 ――俺俺



435 名前:デフォルトの名無しさん [2009/01/14(水) 20:53:49 ]
第二法だが、コマンドを打つ。
光学的なコマンドを打つ。
光学的なコマンドを打つ。
物理段差という肉体計算の処理です。
この手の光線にきづかないように。
1+x+x+1+a+x+x+a+x+x+a+a+a+a+a+a+1+a+a+a+a+a+a+a+a+a+a+a+a+a+a
+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a
+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a
+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a
+a+a+a+a+a+a+a+a+a+a+a+a+a a 1

436 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 20:54:56 ]
>>453はこのスレッドのオセロの作者です。

437 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 20:56:06 ]
上記更新
>>453>>423のオセロの作者です。

438 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 20:57:09 ]
上記更新
>>453>>423のオセロの作者によるものです。

439 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 21:00:29 ]
上記更新
>>453>>422のオセロの作者によるのです。

440 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 21:01:47 ]
>>453>>422のオセロの作者によるものです。
上記更新

441 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 21:02:37 ]
脳が無くなった。

442 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 22:15:20 ]
>>453
おいおい、まじかよ。冗談じゃないぜ。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<112KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef