<?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>AIリバーシ AIOTH</title><link>http://blogs.wankuma.com/valkyrie/category/1920.aspx</link><description>AIリバーシ AIOTH</description><managingEditor>鶏唐揚</managingEditor><dc:language>ja-JP</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>鶏唐揚</dc:creator><title>[AIOth/LINQ] トリアタマでのLINQ</title><link>http://blogs.wankuma.com/valkyrie/archive/2008/08/18/153366.aspx</link><pubDate>Mon, 18 Aug 2008 15:00:00 GMT</pubDate><guid>http://blogs.wankuma.com/valkyrie/archive/2008/08/18/153366.aspx</guid><wfw:comment>http://blogs.wankuma.com/valkyrie/comments/153366.aspx</wfw:comment><comments>http://blogs.wankuma.com/valkyrie/archive/2008/08/18/153366.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/valkyrie/comments/commentRss/153366.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/valkyrie/services/trackbacks/153366.aspx</trackback:ping><description>&lt;P&gt;トリアタマAIでは、設置可能かどうかというチェックにLINQ使ってます&lt;BR&gt;&lt;BR&gt;設置予定場所から右上方向を取得する例では以下の条件です&lt;BR&gt;&lt;BR&gt;・現在の盤面情報はFieldの一次元配列変数FieldState()&lt;BR&gt;・設置予定の位置はSTONEPOSITIONの変数SetPosition&lt;BR&gt;・盤面クラスFieldには以下のメンバを含む&lt;BR&gt;　→Short型のプロパティStone（石の状態）&lt;BR&gt;　→STONEPOSITION構造体のプロパティPosition（升目の位置）&lt;BR&gt;　→STONEPOSITION構造体にはShort型のX、Short型のYが所属&lt;BR&gt;
&lt;HR&gt;

&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;
Dim UpperRight = From n In FieldState _
                 Where n.Position.X &amp;gt; SetPosition.X _
                 And n.Position Y &amp;lt; SetPosition.Y _
                 And (n.Position.X + n.Position.Y) _
                      = (SetPosition.X + SetPosition.Y) _
                 Order By n.Position.X Ascending
&lt;/PRE&gt;
&lt;P&gt;
&lt;HR&gt;
これでUpperRightには、設置位置から順に右上方向への盤面情報が入ってきます。&lt;BR&gt;元々盤面情報の配列を二次元にしとけばLINQ使うまでもないかもですが、&lt;BR&gt;自力走査させるのが面倒だったのと勉強兼ねて。 
&lt;P&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/valkyrie/aggbug/153366.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>鶏唐揚</dc:creator><title>[AIOth] なんとなく完成？</title><link>http://blogs.wankuma.com/valkyrie/archive/2008/08/17/153304.aspx</link><pubDate>Sun, 17 Aug 2008 21:52:00 GMT</pubDate><guid>http://blogs.wankuma.com/valkyrie/archive/2008/08/17/153304.aspx</guid><wfw:comment>http://blogs.wankuma.com/valkyrie/comments/153304.aspx</wfw:comment><comments>http://blogs.wankuma.com/valkyrie/archive/2008/08/17/153304.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.wankuma.com/valkyrie/comments/commentRss/153304.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/valkyrie/services/trackbacks/153304.aspx</trackback:ping><description>&lt;P&gt;
描画周りがすごいテキトーなので遅い重い。アニメーションしないくせにｗ&lt;BR&gt;&lt;BR&gt;
&lt;A href="http://valkyrie.wankuma.com/blog_img/20080817_001/hc001.jpg" target=_blank&gt;&lt;IMG src="http://valkyrie.wankuma.com/blog_img/20080817_001/hc001_thumb.jpg" border=0&gt;&lt;/A&gt;&lt;BR&gt;
AIの選択。AIフォルダに入ってるDLLを検索し、さらに&lt;BR&gt;
インスタンス生成できるか・特定のメソッドがあるかを検証してからリストアップしています。&lt;BR&gt;&lt;BR&gt;
&lt;A href="http://valkyrie.wankuma.com/blog_img/20080817_001/hc002.jpg" target=_blank&gt;&lt;IMG src="http://valkyrie.wankuma.com/blog_img/20080817_001/hc002_thumb.jpg" border=0&gt;&lt;/A&gt;&lt;BR&gt;
AI側で特定の名前のメソッドを実装しておけば、ダイアログ表示も可能に&lt;BR&gt;
なるので設定等の機能拡張も可&lt;BR&gt;&lt;BR&gt;
&lt;A href="http://valkyrie.wankuma.com/blog_img/20080817_001/hc003.jpg" target=_blank&gt;&lt;IMG src="http://valkyrie.wankuma.com/blog_img/20080817_001/hc003_thumb.jpg" border=0&gt;&lt;/A&gt;&lt;BR&gt;
対戦中。よくある思考時間とか設置場所とかのログも出してみる。&lt;BR&gt;
はみ出てるけどｗ&lt;BR&gt;&lt;BR&gt;
&lt;BR&gt;
描画が遅いのをどーにかしたい&amp;#8230;
&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/valkyrie/aggbug/153304.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>鶏唐揚</dc:creator><title>[AIOth] AIプラグイン募集</title><link>http://blogs.wankuma.com/valkyrie/archive/2008/08/12/152746.aspx</link><pubDate>Tue, 12 Aug 2008 15:21:00 GMT</pubDate><guid>http://blogs.wankuma.com/valkyrie/archive/2008/08/12/152746.aspx</guid><wfw:comment>http://blogs.wankuma.com/valkyrie/comments/152746.aspx</wfw:comment><comments>http://blogs.wankuma.com/valkyrie/archive/2008/08/12/152746.aspx#Feedback</comments><slash:comments>22</slash:comments><wfw:commentRss>http://blogs.wankuma.com/valkyrie/comments/commentRss/152746.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/valkyrie/services/trackbacks/152746.aspx</trackback:ping><description>&lt;P&gt;
AIOthと書いてアイオスと無理やり読んでみる。&lt;BR&gt;&lt;BR&gt;
前のエントリでちらっと報告したAIリバーシのAIを作ってみたい人、&lt;BR&gt;
こちらのエントリにコメお願いします。&lt;BR&gt;
まだ本体はできてませんがAI仕様書をお送りします。&lt;BR&gt;&lt;BR&gt;
#まぁ最終的には公開するんで「今すぐやりたい！」って奇特な人はどうぞｗ&lt;BR&gt;
　また「今すぐ！」といっても送れるのは今日の夜～明日くらいになると思います。&lt;BR&gt;
　しかもざっくり作った感のある仕様書ｗ　本体はさらに今週末となるかも。&lt;BR&gt;
&lt;BR&gt;&lt;BR&gt;
AIプラグインはVB/C#で作れます。本体は.NET Framework3.5向けなので、&lt;BR&gt;
プラグインは一応.NET Framework 2.0以上なら動きそうかな&amp;#8230;まだ未確認&lt;BR&gt;
またC++/CLIも未確認。ていうか私にゃ無理ｗ&lt;BR&gt;
&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/valkyrie/aggbug/152746.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>鶏唐揚</dc:creator><title>[VS2008] AIOth</title><link>http://blogs.wankuma.com/valkyrie/archive/2008/08/10/152507.aspx</link><pubDate>Sun, 10 Aug 2008 23:14:00 GMT</pubDate><guid>http://blogs.wankuma.com/valkyrie/archive/2008/08/10/152507.aspx</guid><wfw:comment>http://blogs.wankuma.com/valkyrie/comments/152507.aspx</wfw:comment><comments>http://blogs.wankuma.com/valkyrie/archive/2008/08/10/152507.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/valkyrie/comments/commentRss/152507.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/valkyrie/services/trackbacks/152507.aspx</trackback:ping><description>&lt;P&gt;MISAO避け後回しにしてしまった&amp;#8230;&lt;BR&gt;&lt;BR&gt;さて今VB/C#でもそもそやっとります。&lt;BR&gt;MysticSLで挫折したリバーシなんぞを作ってます。&lt;BR&gt;正直何番煎じなのかわかりませんが、C#の勉強＆LINQの勉強ってことで、&lt;BR&gt;置ける場所だとか裏返せる石だとかをLINQで処理したり&lt;BR&gt;プラグインDLLをC#で作ってみたりと。&lt;BR&gt;&lt;BR&gt;AIをDLLで差し替え可能な感じにしようと考えてますので、&lt;BR&gt;本体完成時にはAI募集かけるかも。とりあえずコア部分はもう出来上がったので&lt;BR&gt;あとはしょっぼい画像つけてUI部分作ります。 &lt;BR&gt;&lt;BR&gt;#試しに、初期同梱予定のAI「トリアタマ」（置ける場所からランダムで置くだけｗ）と&lt;BR&gt;　対戦してみました。&lt;BR&gt;&lt;BR&gt;　&lt;FONT size=5&gt;負けました&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;　まぁ、「トリアタマ」AIは私が反映されてるってことでｗ &lt;BR&gt;&lt;BR&gt;
あと、このAI差し替えってのは1Player/2Playerどちらもできます。&lt;BR&gt;
じゃぁ人間どうすんの？ってことですが、実はそのためだけに盤面クリック時の&lt;BR&gt;
座標を受け取るメソッドをAI仕様に盛り込んでマス。&lt;BR&gt;
なので1P/2Pとも対人AIにすれば人間同士で、逆に1P/2Pとも通常のAIにすれば&lt;BR&gt;
各人の作ったAI同士のオート対戦が可能となる寸法。&lt;BR&gt;&lt;BR&gt;
入力受付の部分は対人戦のためだけに盛り込んだ仕様なので普通は使わないんですが、&lt;BR&gt;
何かしら裏技なりおもしろ機能なりのアイデアが出てくることを期待します（無茶&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/valkyrie/aggbug/152507.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>