[過去ログ] 【囲碁?】囲連星のAIを作ってみよう【連珠?】 (799レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
447(50): 2008/01/05(土)11:18 ID:t/bMff4b(2/4) AAS
Ruby/tkで9路の本体作ってみました。
外部リンク[php]:www.uploda.net
とりあえず、IrenseiGUI.rbを実行してみてください。
コメントやドキュメントは全然書いて無いですが需要がありそうだったらぼちぼち書いて見ます。
rubyとtkl/tkのインストールはこの辺
外部リンク[html]:www4.ocn.ne.jp
456: 447 2008/01/06(日)09:00 ID:xl70frxU(1/2) AAS
447です。
Yさん、exe化ありがとうございます。
ぜひアップしてください。
よろしくお願いします。
463: 447 2008/01/06(日)19:20 ID:xl70frxU(2/2) AAS
Yさん、アップロードありがとうございます。
>>461
一応、AIはC/C++などでもかけますが、その場合Ruby拡張ライブラリという形式にしてやる必要があります。
SWIGとか調べてみてください。
>>462
了解です。実装してみます。
あと、9路だとパスもできないとまずいですね。
465(2): Y 2008/01/07(月)03:17 ID:P/lAoHc7(1) AAS
>>464
自分でAIを変更できるように修正しました。
外部リンク[html]:www11.axfc.net
パスはirenseiです。
>>447さん
この修正のために、IrenseiGUI.rbの14行目の
require ai
省4
466: 447 2008/01/07(月)08:14 ID:HOZiCfP8(1/2) AAS
>>465
447です。
ソース変更は自由に行ってくださって結構です。
467: 447 2008/01/07(月)22:14 ID:HOZiCfP8(2/2) AAS
447です。
ちょっと修正したのでアップします。
外部リンク[php]:www.uploda.net
変更点
1.最終着手をわかるようにした。
2.パスに対応。
3.リストボックスの上に先手、後手を表示
省5
469(1): 447 2008/01/08(火)23:40 ID:/VcEwGwK(1) AAS
447です。
exe化に成功したっぽいのでアップします。
外部リンク[php]:gamdev.org
囲連星で検索してください。
皆さんの環境でも動作するか動かしてみてください。
よろしくお願いします。
リストボックスの件はもうちょっと待ってください。
473: 447 2008/01/09(水)19:10 ID:oVDwlVq9(1) AAS
447です。
もちろんAIは作ります。
完成したら配布するつもりですが配布方法とかまではまだ考えて無いです。
リンクも大歓迎ですが、ちゃんと完成するかどうか?まあ、気長に地道にやっていきます。
あと、私以外の方にもAI作成してほしいと思っているので、
当面はソースにコメント入れたりドキュメントを書いたりしようと思います。
特にC/C++でAIを作る方法は結構難しそうなのでドキュメントが必要だと思っています。
475: 447 2008/01/10(木)23:58 ID:ezZj7kjF(1) AAS
447です。
ちょっと仕事が忙しくなりそうです。
しばらくの間、囲連星の開発はペースダウン(ストップ?)すると思いますがご勘弁を。
477(2): 447 2008/01/20(日)18:46 ID:Vrmd9fTv(1) AAS
447です。
C++でAIを作ってみようと思ったのですが、どうもその場合VC++6.0が必要になるみたいです。
(RubyそのものをコンパイルしたコンパイラとAIをコンパイルするコンパイラは同じでなくてはいけない。)
困りました。VC++6.0はもう販売終了してしまっています。
RubyのほうをVC.netでコンパイルするという荒業もあるみたいですが…
何かよい回避策を知ってる方いらっしゃらないでしょうか。
480: 447 2008/01/22(火)00:14 ID:glJ36pWp(1) AAS
>>478-479
レスありがとうございます。
参考にさせていただきます。
ちょっと時間掛かりそうですが、がんばります。
あとAIのインターフェースについてなんですが、19路だとイニシャライズやファイナライズ、デバッグ機能がありますね。
デバッグ機能はともかく、イニシャライズ、ファイナライズは無いとまずいでしょうか?
483: 447 2008/01/29(火)19:52 ID:nYm1lhmU(1) AAS
447です。
仕事のほうですが、暇になりそうですw。
VC++2008でAIがコンパイルできたようなのでいったんアップします。
といってもAIの内容は左上から右下に向かって斜めに打つだけです。
aicpp.dllというのがVC++で作ったAIです。
すいませんが皆さんの環境でも動作するか試してみてください。
ご協力お願いします。
省3
484: 447 2008/01/30(水)23:03 ID:J8Li6yDh(1) AAS
447です。
ダウンロードされた方は動いたとか動かなかったとか、なにかレスしていただけるとありがたいです。
488: 447 2008/02/06(水)18:40 ID:HPOwrnYR(1) AAS
>>487
AIにプレーさせようとすると具体的にどうなるのか教えていただけますか。
random vs randomも動かないですか?
一応、Aicpp vs Aicppだと黒が一手だけ指してinvalid moveになるのが仕様どおりの動作です。
489(1): Y 2008/02/06(水)19:58 ID:Dl695xKp(1) AAS
>>487
↓のVC++2008のランタイムが入ってないのでは?
外部リンク[aspx]:www.microsoft.com
>>447さん
自分の環境では9路のAIは仕様どおりに動きました。
491(1): 447 2008/02/17(日)17:26 ID:lVgpuZPm(1) AAS
とりあえず、実装が簡単そうなのでモンテカルロとやらを試してみたが、遅い。
絶望的に遅くて、あんまり強くない。一応それっぽい手は打つけど。
Yさんのプログラムは壮絶な工夫がされてるに違いない。
494: 447 2008/02/18(月)20:12 ID:wi+Meyt5(1) AAS
これを理解するのは相当しんどそうですね。
がんばります。(TдT)。
497(1): 447 2008/03/04(火)21:47 ID:RB345PkJ(1) AAS
気分転換に9路のMOGOやってみたがあまりの強さにびっくりした。
白でも黒でもほとんど勝てない。
19路なら勝てるけど。
囲連星でもこれぐらい強いのを作りたいところですね。
502(2): 447 2008/03/24(月)19:17 ID:x/ZiBdll(1) AAS
先をこされてしまいましたか。
こっちのAI作成は全然進んでません。(TдT)
AI強いです。結構やられます。
あと、*は+とかぶって見難いですw
せめて@とかに
そういえば、GUIもGTP準拠とかにすればみんな好きな言語で開発できるんですよね。
そっちのほうがいいのかなぁ。
507: 447 2008/03/26(水)19:39 ID:Sa6G/n2e(1) AAS
Yさんの9路AIをGUIで遊べるようにしました。
以下のファイルをDLしておなじフォルダにYさんのプログラムを置いてください。
外部リンク:www-2ch.net:8080
ただ、ちょっとバグがあってIrensieGUI.exeを終了してもirensei_9.exeが
生きたままになってCPUを100%消費することがたまにあります。
すいませんがそのときはタスクマネージャでirensei_9.exeを殺してください。
デバッグにはもうちょっと時間が掛かりそうです。
510: Y 2008/03/27(木)13:36 ID:5wYi5zoZ(1) AAS
>>447さん
まさかGUIで打てるようにして下さるとは思いませんでした。
GUIだと一目で盤面が理解できて良いですね。
>>東陶基さん
表示している勝率は、ランダムシミュレーションの結果
をそのまま表示しています。
まあ、ほとんど当てになりませんがw
511(1): 447 2008/03/27(木)22:36 ID:9NYfj3YY(1) AAS
Vectorで配布ですか。
YさんのAIがないと遊べない状態なので、
配布するなら一緒に配布しないと意味無いんですけど、
Yさんはその辺どうなんでしょう?
あと、いまさらですが、YさんのAIはともかくGUIはなんというかショボイから
あんまり派手にやるのはちょっと気が引けるというか。
アップローダに上げて2chで宣伝するくらいでいいのかなとも思ったり。
省3
516(1): 447 2008/03/28(金)21:53 ID:iU+CaPuh(1) AAS
>>513-515
Yさんのユーザインターフェースは普通CUIと呼ばれるものでGUIではないです。
この場合、しょぼいGUIといってるのはIrenseiGUI.exeのことです。
Vectorで配布されてるような囲碁関連のソフトと比べると明らかに見劣りするというか。
とりあえず、まだ完成までにはやることがあるし、ベクターで配布できるぐらいのものができたらそのとき考えましょう。
思考時間の表示やレイアウトの変更などはやってみます。
一応、出来るだけ多くの人に遊んで欲しいとは思っているので、がんばります。
522: 447 2008/03/29(土)18:38 ID:9DnVCJgw(1/3) AAS
思ったんですけど、GTP対応のAIなら私がGUI作らなくても、
すでに囲碁用の良いクライアントがたくさんあるんですよね。
クライアントが囲連星のルールを理解していたほうがいいことはいいんですけど、必須ではないし。
なんかGUIは作らなくてもいいような気がしてきましたw。
523: 447 2008/03/29(土)19:19 ID:9DnVCJgw(2/3) AAS
あ〜でも、囲連星を知らない人がプレーするときはやっぱりクライアントがルール知らなきゃだめかな。
それに長連とか7連が出来るときの自殺手とかあるし。
524: 447 2008/03/29(土)21:55 ID:9DnVCJgw(3/3) AAS
Yさんにお願いがあるんですが、思考時間の%の表示なんですけど一回%を表示するたびに改行しれくれませんか。
改行がないとRuby側で上手く情報を取得できないのです。
改行が無いと100%になるまで何も取得できないで、100%になってから全ての%がドバッと出てくるという感じです。
IO.flushとかも試してみたのですが駄目でした。
525(1): Y 2008/03/30(日)00:45 ID:oZ9Fjkmb(1) AAS
>>東陶基さん
始めは直接探索回数を指定してもらって
強い、普通、弱いの区別はしないつもりです
細かい事はAIがもうちょいマシになってから考えようと思います
>>521
9路の方では440さんのコードを使わせてもらってます
これがXORSHIFTですよね?多分
省2
530(1): 447 2008/03/30(日)23:24 ID:IldVvNmG(1) AAS
レイアウトを変えて、試験的に思考時間の表示の機能を追加してみました。
外部リンク:www-2ch.net:8080
コマンドプロンプトも非表示にしてみたんですが、
IO.popenでAIを起動するとコマンドプロンプトが開いてしまいます。
これを開かないように出来るかどうかはまだわかってません。
532: 447 2008/03/31(月)18:52 ID:K8wAjTcS(1) AAS
>>531のAIに対応しました。
以下のファイルと>>530と>>531のを同じフォルダにおいてください。
外部リンク:www-2ch.net:8080
あと、Vectorの囲碁関連のソフト見てみましたが、
確かに個人で作ってるものは、そんなにすごくないのもありますね。
あんまりビビら無くてもいいのかもしれませんね。
533(1): 447 2008/04/01(火)21:02 ID:xHqE3byv(1) AAS
>>447です。
YさんのAIはプレイヤー側のパスに対応してますでしょうか。
ルール上はパスできることになっているので、対応よろしくお願いします。
あと、コマンドプロンプトを出さなくする件ですが、プログラム板のRuby初心者スレッドで教えていただきました。
Cygwinのrun.exeを使うか、AIをGUIモードでコンパイルするとOKとのことです。
Cygwinのrun.exeで上手くいくことは確認しました。
AIをGUIモードでコンパイルするというのは簡単なのでしょうか?
省2
537: 447 2008/04/02(水)20:49 ID:gZvyD45G(1) AAS
>>536のパスに対応しました。
外部リンク:www-2ch.net:8080
あと、ちょっと気になったんですけど、もしかしてYさんのAIはこちらが同じ手をうてば、AIも毎回同じ手を打ちます?
538: Y 2008/04/02(水)21:37 ID:q1Iu1KJo(1) AAS
>>447さん
乱数を初期化するの忘れてました。
それが原因で毎回同じ手を打っていたようです。
修正したAIです。
外部リンク:www-2ch.net:8080
541: 447 2008/04/03(木)22:14 ID:PhsqGseN(1) AAS
そうなんですよね。AIのプロセスが生き残ってしまうんです。
そのAIを終了させる方法なんですが、popenで開いたプロセスを単にcloseすればいいのかと思ったんですが
そうすると「問題が発生したため、irensei_9.exeを終了します。ご不便をおかけして申し訳ありません。」
と言うダイアログが出てきてしまいます。
あとゲーム途中でnew gameを押してもおかしくなるようです。
まだまだ完成は遠いです。
544(2): 447 2008/04/04(金)20:22 ID:bcGjLQEd(1/2) AAS
Yさんありがとうございます。
AIを正常終了させるようにしました。
外部リンク:www-2ch.net:8080
ただし、まだ完璧では無い可能性もあるのでしばらくの間、
皆さんでいろいろ動かしてみてください。
もしAIが不正終了しましたら、報告お願いします。
すいませんが、ご協力お願いします。
省1
547: 447 2008/04/09(水)06:35 ID:q2Mrokfy(1/2) AAS
再アップしました。
ついでにIrensei.rbも付けときました。
外部リンク:www-2ch.net:8080
549: 447 2008/04/09(水)20:21 ID:q2Mrokfy(2/2) AAS
>>548
AIを作るつもりなら強いAIを作るのはルール部分を作るよりもずっと大変なのであんまり意味無いかも。
それとも別の用途?
551: 447 2008/04/10(木)23:37 ID:aOS5RN4b(1) AAS
ルールだけなら共有してもあんまり面白く無いけど、
詰み、必勝形、シチョウとかのルーチンとかをみんなで持ち寄って
強いAIを作っていくというなら面白そうな気はします。
553: 447 2008/04/15(火)21:02 ID:dBCsvj9U(1/2) AAS
C++でテンプレート(STLとか)使っていいなら書いてみるけど、正直Cはあんまり好きじゃないのでCは勘弁してください。
554: 447 2008/04/15(火)21:56 ID:dBCsvj9U(2/2) AAS
RubyとかになれちゃうとCでリンクリストとか自分で実装するのしんどいですw。
へたれですいません。
556: 447 2008/04/16(水)18:19 ID:acSBJ7Nl(1/10) AAS
単に動くものを作るなら一応作れるんですけど、
どうせならみんなで改良、拡張しやすく、かつみんなで手を入れても壊れにくい、
かつコンパクトで直行性のある、それでいて実行速度は速い、そんなコードがいいですよね。
(わかったようなことを言ってみる。)
どうすればそんなコードになりますかね?
Yさんや他の人にもご意見いただきたいです。
557: 447 2008/04/16(水)18:27 ID:acSBJ7Nl(2/10) AAS
たとえば平凡な碁盤クラスがあって、それを使ったAIがあったとしますよね。
そのAIはメモリを馬鹿食いして困っているとします。
で、他の人がビット演算を駆使したメモリ使用量の少ない碁盤クラスを作成して
そのAIの碁盤クラスを差し替えたらメモリ使用量が下がってめでたしめでたし。
のようなストーリーを可能な限り少ない労力で達成できないものかとか、考えています。
560: 447 2008/04/16(水)19:19 ID:acSBJ7Nl(3/10) AAS
データ構造とアルゴリズムを分離するというとテンプレートを使ったり抽象クラスを使ったり
するんでしょうが、抽象クラスを使うと仮想関数呼び出しになってスピードダウンするんですよね。
テンプレートはスピードダウンしないけど、複雑怪奇になって手に負えなくなるという印象が。
まあ、これは私のスキルの問題でしょうけど。
この2つ以外で上手い方法ってありますかね。
いまのところテンプレートを駆使して頑張ってみようかと考えています。
577(1): 447 2008/04/18(金)20:03 ID:vj6JGiSx(1) AAS
>>572
>>569=>>447です。
IDを見ていただければわかると思います。
話がかみ合って無いですか?
>>573
了解です。
>>574
省17
583(1): 447 2008/04/19(土)11:47 ID:bybo7FLQ(1/3) AAS
447です。
GUIを再アップしました。
外部リンク:www-2ch.net:8080
このファイルとYさんのAIを同じフォルダに入れて、IrenseiGUI.exeを実行してください。
それにしてもファイルが流れるのはやいですね…
590: 447 2008/04/19(土)16:22 ID:bybo7FLQ(2/3) AAS
>>589
初めは19路のAI作ってたんですけど、あんまり強くならなかったです。>>383参照。
で、9路なら19路より簡単に強いAIが作れるだろうと思ったんですけど、
意外にそうでもない。もしかしたら同じくらい難しいかもしれません。
あとは詰め囲連星のソフトなんか作れるとおもしろいかなと思っていますが、
それはもしやるとしても当分先ですね。(たぶんやらない。)
593(1): 447 2008/04/19(土)22:35 ID:bybo7FLQ(3/3) AAS
19路のルールなら本家のソースがあるのでそちらを使うといいと思います。
603(1): 447 2008/04/21(月)23:39 ID:CIuKF2oH(1) AAS
一応ルールのコーディングは終わりました。
これからテストです。
今後の事を考えるとやっつけのテストじゃなくて、
使いまわしの利くテストを書いたほうがいいんですよね…
囲連星もちゃんと産業になれば面白いんでしょうけどね。
なにをやるにも会長の持ち出しってワケにも行かないだろうし。
609: 447 2008/04/25(金)21:49 ID:PdEP2I8H(1) AAS
9路のルールのソースを一旦アップします。
外部リンク:www-2ch.net:8080
すいません。
あんまりテストしてません。とりあえず動かしてみてください。
バグがあったら報告or可能ならソースを修正お願いします。
Mainというディレクトリにmakefileが入ってますのでmakeしてください。
makefileのことはあんまり知らないので出来がよくないかも
省6
617(1): 447 2008/06/15(日)20:39 ID:2kcLN95s(1) AAS
>>615
ai_Y.rbのファイル名を変える場合にはai_Y.rbの5行目の
module Ai_Y
のところをファイル名にあわせてください。
ファイル名はaiで始まる必要があり、
moduleのところはAiで始まる必要があります。
モジュール名に日本語は使えないので、(Y氏考案)は現状、無理です。
619: 447 2008/06/16(月)21:43 ID:xloIcLFP(1) AAS
>>618
そうですね。
よろしくお願いします。
Yさんの同意も>>512で取れてますし。
682: 447 2008/10/12(日)22:35 ID:9JJBpUm3(1) AAS
興味ありますね。
是非、公開してください。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.035s