【囲碁?】囲連星のAIを作ってみよう【連珠?】
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2006/08/03(木) 16:13:45ID:jCmv785lデフォルトのAIが弱いので今なら囲連星AIの第一人者になれる。
もし名人より強いAIを作成すればそのAIが名人位に。
詳しいことはソフトダウンロード後、ヘルプメニューを参考に。
作成方法:AI部分をプログラムしコンパイルしたものをファイルコピーすればOK
ソフトダウンロード:http://irensei.com/
0488447
2008/02/06(水) 18:40:55ID:HPOwrnYRAIにプレーさせようとすると具体的にどうなるのか教えていただけますか。
random vs randomも動かないですか?
一応、Aicpp vs Aicppだと黒が一手だけ指してinvalid moveになるのが仕様どおりの動作です。
0489Y
2008/02/06(水) 19:58:15ID:Dl695xKp↓のVC++2008のランタイムが入ってないのでは?
http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf
>>447さん
自分の環境では9路のAIは仕様どおりに動きました。
0490東陶基
2008/02/15(金) 00:24:50ID:kWGIwLmu相変わらず小さいですが掲載されてました。
ただ小さいのは囲連星のゲーム画面そのものが対局中の碁盤の画面しかないので
どうしようもないですけどね。
キャラクターとか作ってRPG風とかにすればもしかしたら・・・。
>>489
そうですね。ランタイム入ってませんでした。すいません。
0491447
2008/02/17(日) 17:26:22ID:lVgpuZPm絶望的に遅くて、あんまり強くない。一応それっぽい手は打つけど。
Yさんのプログラムは壮絶な工夫がされてるに違いない。
0492東陶基
2008/02/17(日) 17:56:52ID:rfwDCYcL今まで試された方も実用的なレベルまでいかなくてYさんのが出来た時には
正直自分も驚きましたね。
あとモンテカルロ(と言うよりは時間のかかるAI)の場合はPCによっても
速度が変わってくるので速いPCだけで試していると遅いPC持ってる人が
「全然遅いよ!」って言われるのでそこも注意が必要ですね。
Yさんのだと速い人だと一手2,3秒らしいですが遅いPCの人は30秒とか
かかるらしいです。ただ30秒かかるPCは普通の用途でも遅いと感じる事が
多いんでしょうけど。
0493Y
2008/02/18(月) 00:17:26ID:wlhjcsGc論文を読んでそのとおりに実装しただけで、
あんまりたいした工夫はしてません
ご存知かもしれませんが、MoGoやCrazyStoneの
論文を翻訳して公開して下さっている方がいます
もしまだ見てなければ、目を通して見ると良いと思います
http://www.geocities.jp/hideki_katoh/
囲連星にも囲碁のCGOSや将棋のfloodgateの
ようなものがあったら面白そうですね
今は参加者が少なくて成り立たないかも知れませんが…
0494447
2008/02/18(月) 20:12:28ID:wi+Meyt5がんばります。(TдT)。
0495東陶基
2008/02/27(水) 20:38:36ID:+ayULpRy今は直っているのでDL出来なかった人は再度試してみてください。
そういえばそろそろ名人戦やってみようかな。対局場閉じちゃったから人集まるか
不安ではありますが、もし誰かここ見てて参加したいと思ってる人がいたら手を上げてみてください。
数人いたら開催しようかな・・・。
0496東陶基
2008/02/27(水) 20:41:11ID:+ayULpRyレジストリを綺麗にしてくれるソフトとか、メモリを整理してくれるソフト、
CPUが暇な時に勝手にデフラグしてくれるやつや、果てはコーディック集まで。
囲連星が載ってる時以外はそういう本をあんまり買わないのでたまに読むと便利ですね。
0497447
2008/03/04(火) 21:47:46ID:RB345PkJ白でも黒でもほとんど勝てない。
19路なら勝てるけど。
囲連星でもこれぐらい強いのを作りたいところですね。
0498東陶基
2008/03/16(日) 13:35:11ID:OKk0hogZ当時は深く考えなかったから、せっかくならAI開発用とかってすれば良かったなと。
0499東陶基
2008/03/16(日) 13:37:39ID:OKk0hogZ9路だと19路より検索するパターンが少ないのでAIが19路よりは強くなるはずなんですよね。
多分Yさんのとかも同じロジックでも9路にカスタマイズすれば時間が早いなり同じ時間なら強いなり
すると思います。
0500Y
2008/03/24(月) 16:07:22ID:d5pAvHIKそれらしい打ち方をするようになったので公開してみます。
自分で打ったところ、うっかりミスをしなければ負けない
程度の強さでした。
思考時間が多少かかるので試していただける方は
本でも読みながら気長にやってみてください。
URL:http://www-2ch.net:8080/up/download/1206342283000125.Q78KG8
0501名前は開発中のものです。
2008/03/24(月) 17:50:27ID:2nQQGfNN0502447
2008/03/24(月) 19:17:15ID:x/ZiBdllこっちのAI作成は全然進んでません。(TдT)
AI強いです。結構やられます。
あと、*は+とかぶって見難いですw
せめて@とかに
そういえば、GUIもGTP準拠とかにすればみんな好きな言語で開発できるんですよね。
そっちのほうがいいのかなぁ。
0503Y
2008/03/24(月) 20:51:40ID:d5pAvHIK使って下さってありがとうございます。
人間に勝ち越せるようになるまでには、
まだまだ先が長そうですね。
>>502
>こっちのAI作成は全然進んでません。(TдT)
今は多少時間が取れるのですが、これから忙しくなりそうなので
しばらく開発が停滞してしまうかもしれしまそうです。
お互い地道にがんばりましょう!
>あと、*は+とかぶって見難いですw
>せめて@とかに
なるほど、自分でやってるとあまりわからないので、
指摘してくださって助かります。
黒は@に修正しておきます。
あと、個人的な意見ですが、Ruby拡張ライブラリよりは
GTPで通信する方が嬉しいです。
>>500にルールを書き忘れてました。
ルールは1線のみの7連禁止です。
0504東陶基
2008/03/25(火) 01:34:09ID:OHwpcpTI9路のプログラムありがとうございます。
なんとか勝てました。
確かに対人間だと微妙かもしれませんが
そもそも9路だと囲碁の要素が強いので対囲碁を知らない人間だと
もしかしたらかなり強いのかも知れないですね。
ちなみにこれもモンテカルロでしょうか?
となると環境によって時間が違ったりするのかな。
自分の環境だと1手が20秒弱くらいかな。体感なのでなんとも言えないですが。
>>502
GUIに関してはどうでしょうね。19路のみたくコンパイルしたAIを取り込む
と言うのももちろんありなんでしょうけどそのためには誰かがまずAIを取り込めるような
GUIを作らないといけないですからねぇ・・・ただ447さんの言われるようにどんな言語でも
最小限の労力で作れるようになるのが理想ですけどね。
0505東陶基
2008/03/25(火) 01:35:26ID:OHwpcpTIルールを今までHPで明記しわすれててすいません。
公式HPにも9路の有効範囲をルールに追加しときました。
0506Y
2008/03/25(火) 10:16:02ID:yDxumcP9>ちなみにこれもモンテカルロでしょうか?
>となると環境によって時間が違ったりするのかな。
はい、モンテカルロです。
どこでも同程度の強さになるように、一手あたりのシミュレーション回数を
同じにしているので環境によって時間は違うと思います。
0507447
2008/03/26(水) 19:39:47ID:Sa6G/n2e以下のファイルをDLしておなじフォルダにYさんのプログラムを置いてください。
http://www-2ch.net:8080/up/download/1206527187565943.IG14zh
ただ、ちょっとバグがあってIrensieGUI.exeを終了してもirensei_9.exeが
生きたままになってCPUを100%消費することがたまにあります。
すいませんがそのときはタスクマネージャでirensei_9.exeを殺してください。
デバッグにはもうちょっと時間が掛かりそうです。
0508東陶基
2008/03/27(木) 01:48:37ID:w94tKXJv確かにGUIあると使いやすいですねw
個人的にはYさんのコンピュータ勝率予想(?)みたいなのも
ちょっと興味ありました。
51%とかどうやって算出してるんだろう?って。
0509東陶基
2008/03/27(木) 02:08:40ID:w94tKXJvこれもしバグ取れて普通にプレイできるようになったら
Vectorとかで配布したらどうでしょうか?
結構十分なレベルだったりしてと思ったりします。
0510Y
2008/03/27(木) 13:36:56ID:5wYi5zoZまさかGUIで打てるようにして下さるとは思いませんでした。
GUIだと一目で盤面が理解できて良いですね。
>>東陶基さん
表示している勝率は、ランダムシミュレーションの結果
をそのまま表示しています。
まあ、ほとんど当てになりませんがw
0511447
2008/03/27(木) 22:36:33ID:9NYfj3YYYさんのAIがないと遊べない状態なので、
配布するなら一緒に配布しないと意味無いんですけど、
Yさんはその辺どうなんでしょう?
あと、いまさらですが、YさんのAIはともかくGUIはなんというかショボイから
あんまり派手にやるのはちょっと気が引けるというか。
アップローダに上げて2chで宣伝するくらいでいいのかなとも思ったり。
ところでYさんの9路AIはパスしたり投了したりしますか?
このまえ、GUIで打ってたら不正終了してしまったので、
ひょっとしたらパスか投了したのかなと思いました。
0512Y
2008/03/28(金) 01:39:01ID:o6omg+qs>ところでYさんの9路AIはパスしたり投了したりしますか?
バグが無ければ、AIはパスや投了はしないはずです。
0513東陶基
2008/03/28(金) 14:59:03ID:mDsBMoGV多分YさんのはGUIは暫定的に作ってるだけだと思うので
そこはいいんじゃないでしょうか。あくまでAIを確認するためのGUIだと思うので。
それと2chで宣伝するよりはVectorの方が地味でリスク少ないので
安心してくださいw
あと折角Yさんが待ち時間の割合?(10%・・・15%・・・みたいなの)をアウトプットしてくれてるので
447さんのGUIの方でそれを表示してもらえると使ってる人が時間がどれくらいなのか
わかりやすくて良いです。棒グラフみたいなのでもいいですが。
0514東陶基
2008/03/28(金) 15:06:46ID:mDsBMoGVいまだと右のAIを選択してnew gameボタンが左上なので
流れとしてどうかと。
それならボタン群はAI選択の下にあった方がいいかなと。
でそのボタンの下にCPUの思考時間バーみたいなのを表示というのが
一番わかりやすいかも。
あとコマンドプロンプトは非表示になったらいいかもGUIの画面だけ立ち上がるのが理想かな。
まぁこれらは個人的な感想なので無理ならいいですよ。
0515東陶基
2008/03/28(金) 15:13:22ID:mDsBMoGV1.ソフトを完成させる
2.HPを作る(1ページとかの簡単なので可、ただし連絡先のアドはつける)
3.ベクターに公開し、HPからリンクを貼る
と言った流れですね。2は雑誌掲載などの依頼が来るかも知れないので
(出来がよければ商品化とかも依頼は来る可能性はあります。なかなか実現は難しいですけどねw)
2.3.はこちらでやってもいいですが折角作ったのですからYさんや447さんで管理されたら
良いのかなと。雑誌掲載依頼とかベクターでのDL数のメールとか来ると作った人だと
ちょっと嬉しいもんだと思いますよ。
追記>>514
×個人的ボタンは → ○個人的にはボタンは
0516447
2008/03/28(金) 21:53:56ID:iU+CaPuhYさんのユーザインターフェースは普通CUIと呼ばれるものでGUIではないです。
この場合、しょぼいGUIといってるのはIrenseiGUI.exeのことです。
Vectorで配布されてるような囲碁関連のソフトと比べると明らかに見劣りするというか。
とりあえず、まだ完成までにはやることがあるし、ベクターで配布できるぐらいのものができたらそのとき考えましょう。
思考時間の表示やレイアウトの変更などはやってみます。
一応、出来るだけ多くの人に遊んで欲しいとは思っているので、がんばります。
0517名前は開発中のものです。
2008/03/28(金) 22:41:22ID:dWOI7A5Jちなみに俺のPC(セレロン北森2G)で一手に30秒くらいかかりますw
難易度と言うか時間設定みたいなのがあればうれしいかも
0518東陶基
2008/03/29(土) 01:40:33ID:9fcbO7Qiそうですね。確かに言われてみればCUIですね。
ただVectorでも個人が作ってるのはGUIそんなにすごくないのもありますよ。
あとGUIは結構すぐにぱっと見は良く出来ますし。
>>517
一手あたりの検索数を減らせばその分早くなるみたいですよ。
ただ今のAIの10分の1の検索数にした場合にどんな強さになるのかは
Yさんだけしかわからないですが。
0520東陶基
2008/03/29(土) 13:07:32ID:JtCEFsyB時間というよりは検索回数でいいかも。
5000回(弱い)・10000回(普通)・20000回(強い)みたいに。
回数は表示しなくて、弱い・普通・強いから選択みたいな。
もちろん激弱・最強とかも入れて5段階とか10段階とかにしてもいいと思う。
0521名前は開発中のものです。
2008/03/29(土) 13:18:52ID:j1oEtUCs0522447
2008/03/29(土) 18:38:20ID:9DnVCJgwすでに囲碁用の良いクライアントがたくさんあるんですよね。
クライアントが囲連星のルールを理解していたほうがいいことはいいんですけど、必須ではないし。
なんかGUIは作らなくてもいいような気がしてきましたw。
0523447
2008/03/29(土) 19:19:17ID:9DnVCJgwそれに長連とか7連が出来るときの自殺手とかあるし。
0524447
2008/03/29(土) 21:55:56ID:9DnVCJgw改行がないとRuby側で上手く情報を取得できないのです。
改行が無いと100%になるまで何も取得できないで、100%になってから全ての%がドバッと出てくるという感じです。
IO.flushとかも試してみたのですが駄目でした。
0525Y
2008/03/30(日) 00:45:56ID:oZ9Fjkmb始めは直接探索回数を指定してもらって
強い、普通、弱いの区別はしないつもりです
細かい事はAIがもうちょいマシになってから考えようと思います
>>521
9路の方では440さんのコードを使わせてもらってます
これがXORSHIFTですよね?多分
>>447さん
わかりました。%の表示は変更しておきます
0526東陶基
2008/03/30(日) 18:14:40ID:e+rNeAO7そうですね。まだそういう細かい調整をする段階ではないですよね。
逆に回数指定であればGUIの方から呼べそうですしね。
例)GUIの方で弱いを選べばAIに回数5000回というパラメータを送って実行
強いを選べば20000回をパラメータとして実行
みたいな方が融通は利きそうですね。
0527東陶基
2008/03/30(日) 18:20:13ID:e+rNeAO7・GUI→AI (探索回数・ユーザーの打った手)
・AI→GUI (AIの打った手・探索の%)
ってところですかね?
あと今だと打った手の正当性はどっちで判断してるんでしょうかね?
自殺手やすでに石がある場所への手のチェックなどです。
あと勝敗の判断はどうなんだろう。
まぁ今の状態でも普通にプレイ出来てるので両方でやってる事はあっても
両方ともやってないという事はないので問題はなさそうですけど。
0528名前は開発中のものです。
2008/03/30(日) 18:54:47ID:yz6E/aNO小さい画面でも遊べるから携帯やDSでもいける。
ルールも19路よりわかりやすいしパズル性も高い。
コンピュータゲームとしては19路より上では。
0529XORSHIFTの派生 精度・速度が違う
2008/03/30(日) 19:04:22ID:TX8QqB2kunsigned long xor32(){
static unsigned long y=2463534242;
y?=(y<<13);y=(y>>17);return (y?=(y<<5));}
unsigned long long xor64(){
static unsigned long long x=88172645463325252LL;
x?=(x<<13);x?=(x>>7);return(x?=(x<<17));}
unsigned long xor96(){
static unsigned long x=123456789,y=362436069,z=521288629;unsigned long t;
t=(x?(x<<20))?(y?(y>>11))?(z?(z<<27))?(w?(w>>6));x=y;y=z;z=w;return(w=t);}
unsigned long xor128(){
static unsigned long x=123456789,y=362436069,z=521288629,w=88675123;unsigned long t;
t=(x?(x<<11));x=y;y=z;z=w;return(w=(w?(w>>19))?(t?(t>>8)));}
unsigned long xor160(){
static unsigned long x=123456789,y=362436069,z=521288629,w=88675123,v=5783321;unsigned long t;
t=(x?(x>>7));x=y;y=z;z=w;w=v;return v=(v?(v>>6))?(t?(t>>13));}
unsigned long xor192(){
static unsigned long x=123456789,y=362436069,z=521288629,w=88675123,v=5783321,d=6615241;unsigned long t;
t=(x?(x>>2));x=y;y=z;z=w;w=v;v=(v?(v<<4))?(t?(t<<1));return(d+=362437)+v;}
こんな具合か
43 :42:2007/11/11(日) 19:16:33
コピペ丸張りで色々とおかしくなってることに気付く。
後悔はしていない。
0530447
2008/03/30(日) 23:24:20ID:IldVvNmGhttp://www-2ch.net:8080/up/download/1206886383510742.oHUDOP
コマンドプロンプトも非表示にしてみたんですが、
IO.popenでAIを起動するとコマンドプロンプトが開いてしまいます。
これを開かないように出来るかどうかはまだわかってません。
0531Y
2008/03/30(日) 23:33:23ID:2KJiXzs+XORSHIFTにも色々種類があるのですね。
精度が上がると速度が多少落ちるってことなのかな。
早速xor32を使わせてもらいます。
^が?に文字化けしてしまっているようですね。
あと、%の表示と、探索回数を修正したのでアップロードしました。
think.txtというファイルにシミュレーション回数を書いてください。
ファイルが見つからない場合、125000回になります。
http://www-2ch.net:8080/up/download/1206886440149113.n4OO2x
0532447
2008/03/31(月) 18:52:53ID:K8wAjTcS以下のファイルと>>530と>>531のを同じフォルダにおいてください。
http://www-2ch.net:8080/up/download/1206956556178240.q9fczr
あと、Vectorの囲碁関連のソフト見てみましたが、
確かに個人で作ってるものは、そんなにすごくないのもありますね。
あんまりビビら無くてもいいのかもしれませんね。
0533447
2008/04/01(火) 21:02:12ID:xHqE3byvYさんのAIはプレイヤー側のパスに対応してますでしょうか。
ルール上はパスできることになっているので、対応よろしくお願いします。
あと、コマンドプロンプトを出さなくする件ですが、プログラム板のRuby初心者スレッドで教えていただきました。
Cygwinのrun.exeを使うか、AIをGUIモードでコンパイルするとOKとのことです。
Cygwinのrun.exeで上手くいくことは確認しました。
AIをGUIモードでコンパイルするというのは簡単なのでしょうか?
もし簡単であれば、GUIモードでのコンパイルをお願いします。
面倒な作業が必要であればrun.exeを使いたいと思いますが、run.exeって再配布可能なんですよね?
0534東陶基
2008/04/01(火) 22:05:50ID:MMTpi4NN別にパスに関してはGUIからパスボタンを外すとかでいいですよ。
あえてAIの方まで修正して対応する必要はないので。
ルールを全部踏まえなくても支障がないものはソフトからは外して良いと思ってます。
テニスゲームでラケットが壊れて予備のラケットを用意とかしなくても良いのと
同じ感覚だと思ってもらえれば。
多分19路のソフトもパスには対応してないと思います。
0535Y
2008/04/01(火) 22:39:56ID:zk/l8Y+F出来次第アップロードします。
0536Y
2008/04/01(火) 22:56:33ID:zk/l8Y+Fパスに対応しました。
相手の打ち手が
-1 -1
の時にパスと判断します。
http://www-2ch.net:8080/up/download/1207057492005796.jmzcE3
0537447
2008/04/02(水) 20:49:04ID:gZvyD45Ghttp://www-2ch.net:8080/up/download/1207136247505268.KzM9Nb
あと、ちょっと気になったんですけど、もしかしてYさんのAIはこちらが同じ手をうてば、AIも毎回同じ手を打ちます?
0538Y
2008/04/02(水) 21:37:11ID:q1Iu1KJo乱数を初期化するの忘れてました。
それが原因で毎回同じ手を打っていたようです。
修正したAIです。
http://www-2ch.net:8080/up/download/1207139223165821.cDVCvj
0539東陶基
2008/04/03(木) 16:38:23ID:q5JvUg/2もうこれくらいであればバグ取りしたら十分公開して大丈夫なんじゃないかと思います。
あとはソフトの名前でも考えてください。
さっき探索回数を変更して試してみましたが折角なら447さんの方のGUIでコンボボックスとかで
弱い・普通・強いって感じで探索回数を投げれれば良いんですが、今テキストから読んでるから
GUIで対局時にそのファイルを書き換えてAIを起動するようにすればいいんでしょうかね。
ただとりあえず1.00バージョンは今のままでバグ取りとファイル名やソフト名を整理して
readmeつければ良いと思います。
0540東陶基
2008/04/03(木) 16:53:17ID:q5JvUg/2途中で終了するとプロセスは残っててCPUを使用し続けた状態になってる気が
しなくもないです。
どうすれば良いのかはわからないですが、ウィンドウ終了時とかのイベントで
AIを終了させないといけないのかな。
見当違いだったら忘れてください。
0541447
2008/04/03(木) 22:14:58ID:PhsqGseNそのAIを終了させる方法なんですが、popenで開いたプロセスを単にcloseすればいいのかと思ったんですが
そうすると「問題が発生したため、irensei_9.exeを終了します。ご不便をおかけして申し訳ありません。」
と言うダイアログが出てきてしまいます。
あとゲーム途中でnew gameを押してもおかしくなるようです。
まだまだ完成は遠いです。
0542Y
2008/04/03(木) 23:43:29ID:gmxHe00S面倒だと思うので、適切な探索回数を設定した3つのAIを
ai_strong, ai_normal, ai_weak
のようにしてGUIと一緒に配布するのが楽で良いんじゃないかと
思いますがどうでしょうか。
あと、
Process.kill("KILL", @io.pid)
のようにすると、問題無くAIを終了できるようでした。
ただ、Rubyのことはほとんどわからないので、
不適切な方法だったりするかもしれません。
AIが少し強くなったのでアップロードしました
http://www-2ch.net:8080/up/download/1207232550803324.V4Pg4d
良かったら試してみて下さい。
0543Y
2008/04/04(金) 11:11:21ID:TrRomni/>>542にあげたファイルを修正しました。
http://www-2ch.net:8080/up/download/1207274487131124.dInClh
0544447
2008/04/04(金) 20:22:16ID:bcGjLQEdAIを正常終了させるようにしました。
http://www-2ch.net:8080/up/download/1207307640752402.86SDGQ
ただし、まだ完璧では無い可能性もあるのでしばらくの間、
皆さんでいろいろ動かしてみてください。
もしAIが不正終了しましたら、報告お願いします。
すいませんが、ご協力お願いします。
一応GUI本体のソースも付けときます。
0545名前は開発中のものです。
2008/04/04(金) 20:53:19ID:bcGjLQEd盤や石に画像を使うとかでしょうか。
0546東陶基
2008/04/07(月) 21:06:50ID:1vbpdyH7そうですね。背景やボタンに画像でもいいですし、
盤と背景の色の組み合わせを変えるとかでもいいと思います。
ただ石や盤に画像はどうなんでしょうね。そこは普通の色で良いと思いますが
やってみないとわからないですね。
ただデザインは人それぞれだと思うので簡単と言うのは語弊があったかも知れません。
あと>>544でアップロードファイルを開けませんでしたと言うエラーになって
DL出来ないかも。
0547447
2008/04/09(水) 06:35:36ID:q2MrokfyついでにIrensei.rbも付けときました。
http://www-2ch.net:8080/up/download/1207690337835694.7m3wZj
0548名前は開発中のものです。
2008/04/09(水) 06:43:10ID:SE8IFXGS0549447
2008/04/09(水) 20:21:05ID:q2MrokfyAIを作るつもりなら強いAIを作るのはルール部分を作るよりもずっと大変なのであんまり意味無いかも。
それとも別の用途?
0550東陶基
2008/04/10(木) 22:05:49ID:b+qyfGnp理想だとは思いますが、今の段階ならルール部分だけ切り離して共有すると言うのも
ありなのかなと言う気はします。
まぁ447さんがAIのdllなりexeなりがあれば読み込めるGUIを作ってくれる日が来ることを
願ってと言うことでw
0551447
2008/04/10(木) 23:37:18ID:aOS5RN4b詰み、必勝形、シチョウとかのルーチンとかをみんなで持ち寄って
強いAIを作っていくというなら面白そうな気はします。
0552名前は開発中のものです。
2008/04/15(火) 06:26:32ID:1kY+3Eh3ルールをきちんと間違いなく作るのが大変です 最終的には誰が作ってもルールは同じになるので熟練者が作成してくれると便利です
0553447
2008/04/15(火) 21:02:50ID:dBCsvj9U0554447
2008/04/15(火) 21:56:37ID:dBCsvj9Uへたれですいません。
0555名前は開発中のものです。
2008/04/16(水) 08:00:43ID:f0/FtBAEおねがいします
0556447
2008/04/16(水) 18:19:29ID:acSBJ7Nlどうせならみんなで改良、拡張しやすく、かつみんなで手を入れても壊れにくい、
かつコンパクトで直行性のある、それでいて実行速度は速い、そんなコードがいいですよね。
(わかったようなことを言ってみる。)
どうすればそんなコードになりますかね?
Yさんや他の人にもご意見いただきたいです。
0557447
2008/04/16(水) 18:27:47ID:acSBJ7NlそのAIはメモリを馬鹿食いして困っているとします。
で、他の人がビット演算を駆使したメモリ使用量の少ない碁盤クラスを作成して
そのAIの碁盤クラスを差し替えたらメモリ使用量が下がってめでたしめでたし。
のようなストーリーを可能な限り少ない労力で達成できないものかとか、考えています。
0558名前は開発中のものです。
2008/04/16(水) 18:57:38ID:MgjETZYp0559名前は開発中のものです。
2008/04/16(水) 18:59:14ID:MgjETZYp0560447
2008/04/16(水) 19:19:00ID:acSBJ7Nlするんでしょうが、抽象クラスを使うと仮想関数呼び出しになってスピードダウンするんですよね。
テンプレートはスピードダウンしないけど、複雑怪奇になって手に負えなくなるという印象が。
まあ、これは私のスキルの問題でしょうけど。
この2つ以外で上手い方法ってありますかね。
いまのところテンプレートを駆使して頑張ってみようかと考えています。
0561名前は開発中のものです。
2008/04/16(水) 19:27:57ID:MgjETZYp囲連星だけなら 例えばboardというクラスを作って、hantei(x,y)で石が置けるかと詰みかを整数で返却すればいいのでは?
0562名前は開発中のものです。
2008/04/16(水) 19:54:21ID:acSBJ7Nl問題なのはboardクラスの実装をひとつに限定するのではなく、2つ3つとあったときに
(たとえば、スピードは速いけどメモリを食う実装とスピードは遅いけどメモリは少ない実装とか。)
いかに他のプログラムに変更を強いることなく差し替えられるようにするかってことです。
たとえばboardクラスの実装が
Board1,Board2,Board3とあったとして、
#define Board Board1
とかやってこのdefineを変更することで差し替えるのもひとつの手ですが、
なんとなくかっこ悪いというかもっと上手い方法がありそうな気がしてるのです。
0563名前は開発中のものです。
2008/04/16(水) 20:02:01ID:acSBJ7Nl他の部分をなるべく変更することなく出来るといいです。
0564名前は開発中のものです。
2008/04/16(水) 20:14:24ID:MgjETZYp後続の開発者は先人のの入出力と同じにすればクラス内でどんな処理していても関係ないですが
0565名前は開発中のものです。
2008/04/16(水) 20:28:43ID:acSBJ7Nlなんとなく気持ち悪いですがそれが最善の解決策ならばしかたないですね。
もっといい案知っているという人はいませんでしょうか。
0566東陶基
2008/04/16(水) 20:46:39ID:QBmnJOhL折角なのでとりあえずAI以外の部分のソースをどこかに公開するようにしますか?
適当にHP作ってファイルのDLやソースの公開をする程度で良いと思いますが。
それがあれば具体的にあそこがどうだ、ここがどうだと話しやすいと思うのですが。
0567名前は開発中のものです。
2008/04/16(水) 21:07:33ID:acSBJ7Nl最終的にはどこかに公開するようにしたいと思いますが。
コードを書く以前の基本設計で迷ってしまったので質問しました。
0568東陶基
2008/04/16(水) 21:10:07ID:QBmnJOhLとりあえずrubyのソースでも良いと思いますよ。
言語でどうこうという問題はそんなにないと思いますし、
逆にrubyの方がわかる人もいると思うので
とりあえず出来てるソースを公開するので良いのでは。
それとは別に概要みたいな説明があるといいですね。
0569名前は開発中のものです。
2008/04/16(水) 21:22:16ID:acSBJ7Nlとりあえず動くものを出すというならそんなに難しくないんですが、
せっかくならもうちょっと先を見据えたものを作りたいなと思いまして。
0570名前は開発中のものです。
2008/04/16(水) 21:41:29ID:acSBJ7Nlご意見は随時受付中。
0571名前は開発中のものです。
2008/04/16(水) 21:46:07ID:acSBJ7Nl0572東陶基
2008/04/17(木) 01:07:18ID:dUWIZdxGあ、すいません。
447さんだと思ってレスしてました。
>>571
はい、気長に待ってます。
何か必要な情報がありましたら気軽に聞いてください。
誰かが知ってるかもしれませんw
0573名前は開発中のものです。
2008/04/17(木) 15:22:49ID:xGNUWWEc違うヘッダを使う毎に別のフォルダを作ればいい。
*nix ならそのヘッダをシンボリックリンクにすればファイル名も同じでいい。
極端にスマートというわけでもないが、キモチ悪いというほどでもないと思うよ。
0574名前は開発中のものです。
2008/04/17(木) 15:46:52ID:1Q17DnmX0576名前は開発中のものです。
2008/04/18(金) 11:36:23ID:EknzEEy6すでに消えてしまっているようです
だれかお持ちではないでしょうか
また、囲連星協会の方でアップローダーをご用意いただけると嬉しいです
0577447
2008/04/18(金) 20:03:39ID:vj6JGiSx>>569=>>447です。
IDを見ていただければわかると思います。
話がかみ合って無いですか?
>>573
了解です。
>>574
当分変更しないかもしれませんが、誰かにいいアイディアが沸いて変更したくなったときに、
そのための作業が面倒くさいとその人は諦めてしまうかもしれません。
そうするといいアイディアが人知れず死んでいくことになります。
それはたった一回のことでも大きな損失になるかもしれません。(大げさ?)
とにかく下げれるハードルはなるべく下げておくほうが後々いいことあると思います。
>>575
今のところ連の情報はBoardクラスには含めないつもりです。
一つ一つのクラスはなるべく必要最小限の機能しか持たせなくして、独立して扱えるようにするつもりです。
そのほうが取り回しがよいと思うので。
一応以下のような構想です。
Point 座標を表すクラス。
Board 局面を表すクラス。9x9のマスのどこにどの石がおかれているか、劫の情報、手番の情報を持つ。
PointSet 座標の集合のクラス。
StoneSet 連のクラス。連に含まれる石の座標の集合とその連の隣接点の座標の集合の情報をもつ。
Game ゲームを管理するクラス。囲連星のルールに従って着手したり、勝敗の判定をする。
もし連の情報とBoardの情報を持ったクラスを作りたければ
BoardとStoneSetを使ってそれらをもった新しいクラスを作ることは可能です。
0578Y
2008/04/19(土) 01:29:28ID:iiK1YGD1多分>>543と多分同一のものをあげときました。
http://www-2ch.net:8080/up/download/1208535840197938.M9PcLj
>>577
なるほど、わかりました。
0579名前は開発中のものです。
2008/04/19(土) 03:00:38ID:tZVNWLtBありがとうございます
でもエラーで起動できませんでした
なにかライブラリとか必要ですか?
0580東陶基
2008/04/19(土) 09:58:57ID:wuZsEwfZとりあえず公式HPとは別に囲連星のAIコミュニティサイトみたいなのを作りましょうか。
そこにこのスレでUPしてもらったファイルをそのサイトからDL出来るようにすればいいかなと。
0582名前は開発中のものです。
2008/04/19(土) 11:07:57ID:tZVNWLtB>>469からGUIを落として同じフォルダに入れて起動しましたがAIが出てきません
特別な操作が必要ですか?
0583447
2008/04/19(土) 11:47:43ID:bybo7FLQGUIを再アップしました。
http://www-2ch.net:8080/up/download/1208573058915527.9QsKxs
このファイルとYさんのAIを同じフォルダに入れて、IrenseiGUI.exeを実行してください。
それにしてもファイルが流れるのはやいですね…
0584名前は開発中のものです。
2008/04/19(土) 12:17:59ID:Nxclwo9Lこういうファイルのやりとりにはあまり良くないんじゃないですか?
以前使ってたうpろだ.orgか
会長さんが新しく用意してくださるコミュニティサイトの方が
たぶんいいでしょうね
0585東陶基
2008/04/19(土) 12:23:24ID:wuZsEwfZhttp://ai.irensei.com/
今度から保存しておいた方がよさそうなファイルをUPした場合は
その旨をレスに書いておいてください。
0586名前は開発中のものです。
2008/04/19(土) 12:59:40ID:tZVNWLtBありがとうございます
無事起動できました
9路盤だと狭いのでだいぶ感覚が変わりますね
囲連星というより囲碁みたいです
0587名前は開発中のものです。
2008/04/19(土) 13:03:48ID:tZVNWLtB1線で7連を作った場合は勝ちにならないのでしょうか?
それでも本家と違って、1線の石を含む7連はOKなのですよね?
そのへんのルールの細かい部分が良く分かりませんでした・・・
■ このスレッドは過去ログ倉庫に格納されています