CEDEC CHALLENGE ゲームAI プログラミングコンテスト 2013 in CEDEC
-
Upload
kazunori-sakamoto -
Category
Technology
-
view
958 -
download
1
description
Transcript of CEDEC CHALLENGE ゲームAI プログラミングコンテスト 2013 in CEDEC
CEDEC CHALLENGE ゲームAI プログラミングコンテスト
2013 in CEDEC
国立情報学研究所 坂本一憲
東京工業大学 細野裕章
早稲田大学 小林純一
はじめに
参加者の皆様 来場者の皆様
ご参加ありがとうございます
2013/08/25 2
プログラミングコンテストブーム
• 1. 与えられた問題を短時間・正確に解く
– ACM-ICPC 国際大学対抗プログラミングコンテスト
– Google Code Jam,Facebook Hacker Cup
• 2. 与えられた条件に対して最も良いコード
– Code Golf(サイズ),IOCCC(コードの汚さ)
• 3. 人工知能(AI)を記述してゲーム上で対戦
– ACM-ICPC JavaChallenge,Samurai Coding
– CODE VS,その他囲碁や将棋などのAI対戦
–本コンテスト! (CEDEC CHALLENGE)
2013/08/25 3
一般的なコンテストの目的
リクルーティング
2013/08/25 4
我々のコンテストの目的
ゲームとプログラミング 両方の楽しさを伝える
2013/08/25 5
我々のコンテストの目的
強敵との交流 (社会人 X 学生)
2013/08/25 6
と も
過去に開催したコンテスト
• これまでのコンテスト(主催/協力)
– ACM JavaChallenge 2009, 2010, 2012, 2013
–早稲田楽天プログラミングコンテスト 2010
– Waseda X GREE Samurai Coding 2011
–情報処理学会 SamurAI Coding 2012, 2013
2013/08/25 7
今回のコンテストの特徴
• JavaChallenge 2012をベースに作り直し
• インターネット上での投稿受付と対戦
– http://www.ai-comp.net/cedec2013/
• 使用可能な言語への制限がほぼ0
– C, C++, C#, D, Java, Ruby, Python, Haskell, JavaScript, PHP, Scala, …
–ゲーム本体はScalaでOSSとして開発 2013/08/25 8
9 23-Aug-13
ゲーム概要
• ゲームの目的
– 所有、建造には勝利点が与えられる
–ゲーム終了時の勝利点により順位を決定
• ゲームの流れ
– 毎ターン2つの行動のどちらかを選択
• ロボットを移動しマスを所有
• 所有しているマスに基地を建造
9
10 23-Aug-13
初期配置の例
10
11 23-Aug-13
移動
• 毎ターン、開拓地、基地のロボットを1マスずつ動かすことができる
• 荒地にロボットを進めると開拓地に変化
• 他プレイヤーのロボットが存在すると戦闘
–単純に数が多いプレイヤーのロボットが勝利
–次のスライドで戦闘ルールを説明
11
12 23-Aug-13
移動に伴う戦闘
12
0
3
8
5
5
5
8
5
3
2 5
3
13 23-Aug-13
建造
• 建造可能な条件
– 建造したい土地がプレイヤーの開拓地である
– 周囲に「資源」が一定数存在する
– 「ロボット」が一定数存在する
• 建造
– 「ロボット」を一定数消費する
– 開拓地マスから基地マスに変化する
– 建造はターンに一度だけ行える
13
14 23-Aug-13
地形の一覧
14
地形の種類 所有マスからの移動
マスへの進入
所有マスに建造
荒野 — ○ —
開拓地 ○ ○ ○(橋以外)
基地 ○ 所有する基地のみ
×
穴 × ○ 橋のみ
15 23-Aug-13
建物の一覧 1/3
ロボット製造機 (Initial)
–毎ターンロボット5体を生成 (建造不可)
小型ロボット製造機 (Robot Maker)
–毎ターンロボット1体を生成
15
攻撃塔(Attack Tower)
–図の位置の相手ロボットを
毎ターン2体減らす
16 23-Aug-13
建物の一覧 2/3
掘削機 (Excavator)
–隣接マスの資源が1増える
橋 (Bridge)
–穴に建造できる
16
17 23-Aug-13
建物の一覧3/3
家 (House)
–特に効果を持たない
街 (Town)
–周囲1マスの自分の開拓地を家に変更する
–建設時に資源の数に応じた勝利点を獲得する。
17
18 23-Aug-13
コンテストルール
• 準決勝
– 2試合実施して、順位(1,2,3)の合計が小さいチームの勝利
–順位が決まらない場合は追加で1試合実施
• 決勝
– 1位を2回取るチームが現れるまで試合を実施
18
結果発表
• 準決勝グループA
– 2試合で1位が決勝進出、2位と3位が敗者復活
2013/08/25 19
予選 順位
チーム名 プレイヤー名(AI名) 言語
1 Wall_Cult Wall_Cult Java
3 B_head B_head:Colonize C#
4 R.Kuzumi Terraforming Researcher C++
結果発表
• 第1試合:準決勝グループA第1試合
– 2試合で1位が決勝進出、2位と3位が敗者復活
2013/08/25 20
結果発表
• 準決勝グループA第1試合
– 2試合で1位が決勝進出、2位と3位が敗者復活
2013/08/25 21
チーム名
第1試合 得点 順位
Wall_Cult 24 3
B_head 102 1
R.Kuzumi 65 2
結果発表
• 第2試合:準決勝グループA第2試合
– 2試合で1位が決勝進出、2位と3位が敗者復活
2013/08/25 22
結果発表
• 準決勝グループA第2試合
– 2試合で1位が決勝進出、2位と3位が敗者復活
2013/08/25 23
チーム名 第1試合 第2試合 順位 合計 得点 順位 得点 順位
Wall_Cult 24 3 100 1 4
B_head 102 1 61 3 4
R.Kuzumi 65 2 98 2 4
結果発表
追加試合!!!
2013/08/25 24
結果発表
• 第3試合:準決勝グループA第3試合
– 3試合で1位が決勝進出、2位と3位が敗者復活
2013/08/25 25
結果発表
• 準決勝グループA第3試合
– 3試合で1位が決勝進出、2位と3位が敗者復活
2013/08/25 26
チーム名 第1試合 第2試合 第3試合 順位 合計 得点 順位 得点 順位 得点 順位
Wall_Cult 24 3 100 1 100 1 5
B_head 102 1 61 3 37 3 7
R.Kuzumi 65 2 98 2 52 2 6
• 準決勝グループA結果
– 3試合で1位が決勝進出、2位と3位が敗者復活
結果発表
順位 チーム名
1 Wall_Cult →決勝へ
2 R.Kuzumi →敗者復活へ
3 B_head →敗者復活へ
2013/08/25 27
結果発表
• 準決勝グループB
– 2試合で1位が決勝進出、2位が敗者復活
2013/08/25 28
予選 順位
チーム名 プレイヤー名(AI名) 言語
2 todo takatora todo takatora C++
5 henteko henteko Ruby
6 ROCK ROCK C#
結果発表
• 第4試合:準決勝グループB第1試合
– 2試合で1位が決勝進出、2位が敗者復活
2013/08/25 29
結果発表
• 準決勝グループB第1試合
– 2試合で1位が決勝進出、2位が敗者復活
2013/08/25 30
チーム名
第1試合 得点 順位
todo takatora 100 1
henteko 39 3
ROCK 60 2
結果発表
• 第5試合:準決勝グループB第2試合
– 2試合で1位が決勝進出、2位が敗者復活
2013/08/25 31
結果発表
• 準決勝グループB第2試合
– 2試合で1位が決勝進出、2位が敗者復活
2013/08/25 32
チーム名 第1試合 第1試合 順位 合計 得点 順位 得点 順位
todo takatora 100 1 100 1 2
henteko 39 3 28 3 6
ROCK 60 2 56 2 4
結果発表
順位 チーム名
1 todo takatora →決勝へ
2 ROCK →敗者復活へ
3 henteko →敗退
2013/08/25 33
• 準決勝グループB結果
– 2試合で1位が決勝進出、2位が敗者復活
結果発表
• 敗者復活戦
– 2試合で1位のチームが決勝進出
2013/08/25 34
予選 順位
チーム名 プレイヤー名(AI名) 備考
4 R.Kuzumi Terraforming Researcher グループA2位
6 ROCK ROCK グループB2位
3 B_head B_head:Colonize グループA3位
結果発表
• 第6試合:敗者復活戦第1試合
– 2試合で1位のチームが決勝進出
2013/08/25 35
結果発表
• 敗者復活戦第1試合
– 2試合で1位のチームが決勝進出
2013/08/25 36
チーム名
第1試合 得点 順位
R.Kuzumi 76 2
ROCK 19 3
B_head 85 1
結果発表
• 第7試合:敗者復活戦第2試合
– 2試合で1位のチームが決勝進出
2013/08/25 37
結果発表
• 敗者復活戦第2試合
– 2試合で1位のチームが決勝進出
2013/08/25 38
チーム名 第1試合 第1試合 順位 合計 得点 順位 得点 順位
R.Kuzumi 76 2 57 2 4
ROCK 19 3 35 3 6
B_head 85 1 58 1 2
• 敗者復活戦 結果
• 2試合で1位のチームが決勝進出
結果発表
順位 チーム名
1 B_head →決勝へ
2 R.Kuzumi →敗退
3 ROCK →敗退
2013/08/25 39
結果発表
• 決勝戦
–先に1位を2回取ったチームの優勝!
2013/08/25 40
予選 順位
チーム名 プレイヤー名(AI名) 備考
1 Wall_Cult Wall_Cult グループA1位
2 todo takatora todo takatora グループB1位
3 B_head B_head:Colonize 敗者復活戦1位
結果発表
• 第8試合:決勝戦第1試合
–先に1位を2回取ったチームの優勝!
2013/08/25 41
結果発表
• 決勝戦第1試合
–先に1位を2回取ったチームの優勝!
2013/08/25 42
チーム名
第1試合 勝数 得点 順位
Wall_Cult 34 3 0
todo takatora 100 1 1
B_head 74 2 0
結果発表
• 第9試合:決勝戦第2試合
–先に1位を2回取ったチームの優勝!
2013/08/25 43
結果発表
• 決勝戦第2試合
–先に1位を2回取ったチームの優勝!
2013/08/25 44
チーム名
第1試合 第2試合 勝数 得点 順位 得点 順位
Wall_Cult 34 3 101 1 1
todo takatora 100 1 65 2 1
B_head 74 2 58 3 0
結果発表
• 第10試合:決勝戦第3試合
–先に1位を2回取ったチームの優勝!
2013/08/25 45
結果発表
• 決勝戦第3試合
–先に1位を2回取ったチームの優勝!
2013/08/25 46
チーム名
第1試合 第2試合 第3試合 勝数 得点 順位 得点 順位 得点 順位
Wall_Cult 34 3 101 1 50 3 1
todo takatora 100 1 65 2 100 1 2
B_head 74 2 58 3 80 2 0
• 優勝は
チームです!
おめでとうございます!
2013/08/25 47
todo takatora
おわりに
ゲームとプログラミング は楽しい!
2013/08/25 48