[過去ログ] 【囲碁?】囲連星のAIを作ってみよう【連珠?】 (799レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
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つ以外で上手い方法ってありますかね。
いまのところテンプレートを駆使して頑張ってみようかと考えています。
562: 2008/04/16(水)19:54 ID:acSBJ7Nl(4/10) AAS
さすがに将棋やオセロまでやるつもりは無いです。囲連星だけを考えています。
問題なのはboardクラスの実装をひとつに限定するのではなく、2つ3つとあったときに
(たとえば、スピードは速いけどメモリを食う実装とスピードは遅いけどメモリは少ない実装とか。)
いかに他のプログラムに変更を強いることなく差し替えられるようにするかってことです。
たとえばboardクラスの実装が
Board1,Board2,Board3とあったとして、
#define Board Board1
省2
563: 2008/04/16(水)20:02 ID:acSBJ7Nl(5/10) AAS
あと、データのほうの差し替えだけでなくアルゴリズムの差し替えも
他の部分をなるべく変更することなく出来るといいです。
565(1): 2008/04/16(水)20:28 ID:acSBJ7Nl(6/10) AAS
ヘッダファイルを取り替えるというのは実装を差し替えるたびにファイルをリネームするということですか。
なんとなく気持ち悪いですがそれが最善の解決策ならばしかたないですね。
もっといい案知っているという人はいませんでしょうか。
567(1): 2008/04/16(水)21:07 ID:acSBJ7Nl(7/10) AAS
すいません。まだコードは一行も書いてませんw。
最終的にはどこかに公開するようにしたいと思いますが。
コードを書く以前の基本設計で迷ってしまったので質問しました。
569(2): 2008/04/16(水)21:22 ID:acSBJ7Nl(8/10) AAS
いや、そうではなくて。
とりあえず動くものを出すというならそんなに難しくないんですが、
せっかくならもうちょっと先を見据えたものを作りたいなと思いまして。
570(1): 2008/04/16(水)21:41 ID:acSBJ7Nl(9/10) AAS
あんまり悩んでもしょうがないのでぼちぼちコーディング開始します。
ご意見は随時受付中。
571(1): 2008/04/16(水)21:46 ID:acSBJ7Nl(10/10) AAS
あ、いっときますけど結構時間かかるとおもうので気長に待っててください。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.026s