//プロジェクトの説明
//例:このページは、~をするプロジェクトのページです。
*目次 [#laf54afd]
#contents
*目的と期間と達成目標 [#b29c3af8]
//目的と期間を記入すること 
''目的'':CEDEC2013 AI CHALLENGEに参加して賢いAIをつくろう~
''期間'':CEDEC2013 が終わるまで~
''達成目標'':決勝ラウンド進出~

|''達成度''|''内容''|
|ミニマムサクセス|予選ラウンド参加|
|フルサクセス|決勝ラウンド進出|
|アドバンスドサクセス|上位入賞|

*CEDEC2013 AI CHALLENGE [#v24c4107]

CEDEC(http://cedec.cesa.or.jp/2013/)の一企画として開催されるAIコンペション。~
陣取りゲームを題材に優秀なAIを競う。
ルールなど詳細は http://www.ai-comp.net/cedec2013/index.html 参照で。

決勝進出すると''タダ''でCEDECチケットがもらえる!

* 予選提出ページ [#y8a8cb48]
http://ai-comp.ddo.jp/

*スケジュール/活動実績 [#ybdd723e]

|月日|CEDECスケジュール|活動実績と予定|
|7/20||プロジェクト発足/試作AIによる実行と検討|
|7/21|AIプログラム提出開始||
|~|本体がvar1.0.4に版上げ。|バグ取りと攻撃塔の修正が入る|
|7/27||[[2013年調布祭AI対戦]]プロジェクト内で第2回作戦会議。課題がいっぱい|
|8/03|var1.0.6に版上げ。|[[2013年調布祭AI対戦]]プロジェクト内で第3回作戦会議。締め切り延びたよ!|
|8/04|var1.0.7が来てました。||
|8/08|var1.0.8にあがってました。||
|8/09|%%予選用プログラム締切%%|16日になりました|
|8/10|%%予選結果発表%%|20日になりました|
|8/16|予選用プログラム締切||
|~|予選結果発表|くずみさんもへんてこくんも決勝にいけた!|
|8/22|決勝用プログラム締切|予選より賢いプログラムつくりたい|
|8/23|決勝|CEDEC行ってきた|
内容は随時追加予定。

*結果 [#h0da4858]

|name|予選|決勝|
|久住|7/11位|準決勝敗退(4/6位?)|
|henteko|8/11位|準決勝敗退(6/6位?)|

*メンバー [#j10b97db]
//メンバーを記入すること
//プロジェクトリーダーは名前の頭に○をつけて下さいな
//HNのとこがペンネームになってたけどこれってHNだよな
|''学科''|''本名''|''HN''|
|M1I|○大泉 良介|[[久住 涼]]|
|4K|今井 健太|[[henteko]]|

*AIのアルゴリズム、特徴など [#pecdb098]

**久住(fireflower) [#i7d23e5a]
花火をイメージに円形に陣を広げる策戦
7/20->27で名前を「fool Fireflower」から「fireflower」に変更~
まだまだ賢くないので、foolはつけとくべきだったかもしれない。

***課題 [#f19e697a]

-建築をもっと積極的に
-同じ場所(基地)をロボットが行ったりきたりしている

**henteko(henteko) [#db68dc0d]

***課題(と思われる場所) [#o7ba1322]
-積極的に戦いに挑むので、ロボットを消費しがち
-右上など、占領のアルゴリズムに偏りがありそう

**共通の課題 [#s6a56c92]

-内陸(周囲が自陣に囲まれている占領地)にいるロボットが多い
-
-

*作戦会議室(仮) [#fda87c01]
- 参謀本部とかのほうがよかった?&br;最初の名前入力に5000msもの時間が与えられてるので、有効活用すべき。 -- [[久住 涼]] &new{2013-07-21 (日) 15:10:48};
- ぶっちゃけ5sもかける処理書けるかって問題もありそう -- [[henteko]] &new{2013-07-22 (月) 16:16:13};
- http://tech-tokyo.com/?p=4147 -- [[henteko]] &new{2013-07-22 (月) 16:19:37};
- ルールとか違うけど、マップとか似てるしこのゲームの解説サイトとかなんか参考になるところあるかも -- [[henteko]] &new{2013-07-22 (月) 16:20:26};
- 5000ms全部使う必要はないけど、初期配置から考えることはあるかもしれない -- [[久住 涼]] &new{2013-07-27 (土) 22:42:36};

#comment

*実験 [#d40fdd1f]
**20130803 [#s6af8b2a]
Player 1 (henteko) Score: 96~
Player 2 (RK) Score: 73~
Player 3 (SampleInternalManipu) Score: 14~
~
Player 1 (henteko) Score: 101~
Player 2 (RK) Score: 67~
Player 3 (SampleInternalManipu) Score: 14~
~
Player 1 (henteko) Score: 70~
Player 2 (RK) Score: 68~
Player 3 (SampleInternalManipu) Score: 43~
~
Player 1 (henteko) Score: 37~
Player 2 (RK) Score: 100~
Player 3 (SampleInternalManipu) Score: 12~
~
Player 1 (henteko) Score: 100~
Player 2 (RK) Score: 68~
Player 3 (SampleInternalManipu) Score: 30~
~
Player 1 (henteko) Score: 88~
Player 2 (RK) Score: 57~
Player 3 (SampleInternalManipu) Score: 38~
~
Player 1 (henteko) Score: 51~
Player 2 (RK) Score: 51~
Player 3 (SampleInternalManipu) Score: 38~
~
Player 1 (henteko) Score: 93~
Player 2 (RK) Score: 82~
Player 3 (SampleInternalManipu) Score: 29~
~
Player 1 (henteko) Score: 90~
Player 2 (RK) Score: 68~
Player 3 (SampleInternalManipu) Score: 28~
~
Player 1 (henteko) Score: 111~
Player 2 (RK) Score: 47~
Player 3 (SampleInternalManipu) Score: 36~

**20130726 [#ud072a8f]
***1回目 [#k5c3ca6b]
Player 1 (henteko) Score: 100~
Player 2 (Fool Fireflower) Score: 10~
Player 3 (SampleInternalManipu) Score: 36~
***2回目 [#z25347fb]
Player 1 (henteko) Score: 101~
Player 2 (Fool Fireflower) Score: 13~
Player 3 (SampleInternalManipu) Score: 45~
***3回目 [#e8b38c43]
Player 1 (henteko) Score: 100~
Player 2 (Fool Fireflower) Score: 4~
Player 3 (SampleInternalManipu) Score: 21~
***4回目 [#l4e79fe3]
Player 1 (henteko) Score: 100~
Player 2 (Fool Fireflower) Score: 27~
Player 3 (SampleInternalManipu) Score: 40~
***5回目 [#n9ff0311]
Player 1 (henteko) Score: 60~
Player 2 (Fool Fireflower) Score: 50~
Player 3 (SampleInternalManipu) Score: 19~
***6回目 [#y04f74ce]
Player 1 (henteko) Score: 100~
Player 2 (Fool Fireflower) Score: 4~
Player 3 (SampleInternalManipu) Score: 18~
***7回目 [#se58cf53]
Player 1 (henteko) Score: 102~
Player 2 (Fool Fireflower) Score: 8~
Player 3 (SampleInternalManipu) Score: 32~
***8回目 [#v8b57f55]
Player 1 (henteko) Score: 46~
Player 2 (Fool Fireflower) Score: 45~
Player 3 (SampleInternalManipu) Score: 41~
***9回目 [#vb8c0309]
Player 1 (henteko) Score: 101~
Player 2 (Fool Fireflower) Score: 14~
Player 3 (SampleInternalManipu) Score: 26~
***10回目 [#c915ecf2]
Player 1 (henteko) Score: 101~
Player 2 (Fool Fireflower) Score: 27~
Player 3 (SampleInternalManipu) Score: 14~

*Tips [#j7505277]

**その座標が存在するかどうか(Author:久住) [#d309926b]
Terraformingでは、「-6<=x,y<=6」の中の座標を使うが、存在しない座標もある。[(6,6)など]~
実は、x+yの絶対値が6以内の座標のみが使われている。そこで、以下のような座標判定関数を用いると、余計なコードや出力をしないで済むようになる。

 // language : C++
 #include <stdlib.h>
 bool isPoint(const int x, const int y)
 {
   if(abs(x+y) > 6 || abs(x) > 6 || abs(y) > 6)
     return false;
       return true;
 }

応用として、ある座標(x,y)から、別の座標(x1,y1)までの最短距離は、~
abs(dx=x-x1)とabs(dy=y-y1)、abs(dx+dy)のmaxで求められる。

**周囲○マスの調べ方(Author:久住) [#k3851f46]
マス目が六角形なので、あるマスの周囲を調べるのが難しい。~
周囲1マスなら何とかなるが、2マス以上を調べるのは骨が折れる。~
しかし以下の法則を使うと、この調査がぐっと楽になる。

 6方位に対し、ある方向にN回進んだ場所(a)と、(a)から120度回転した方向にn回進んだ場所(1<=n<=N)をそれぞれ調べると、中心からN歩で到達する範囲を調べられる

例として、2歩の場所を調べるとする。~
[ul-ul]と、[ul-ul-r]の2箇所を調べる。(ulの120度回転した方向はr)~
これを6方向それぞれについてやると、2歩でいける12マスを調べることができる~
サンプルソースは汚いので略。


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS