• はてなブックマークに追加
  • Yahoo!ブックマークに登録
学生・社会人の枠を超え、競技プログラマの世界一が決定!
CODE VSが示すプログラマに
必要な戦略と問題解決能力
7月21日(日)、六本木「ColoR」で、アルゴリズム活用力とコーディング技術を競い合うプログラミングコンテスト「CODE VS 2.1」の決勝トーナメントが行われた。今回は学生だけではなく社会人も参加。予選を勝ち抜いた8名が熱い闘いを繰り広げた。
(取材・文/石川香苗子 総研スタッフ/馬場美由紀 撮影/佐藤 聡)作成日:13.08.08
<プログラミングバトル> 学生・社会人の競技プログラマの頂点を決めるCODE VS 2.1

 今大会のゲームは、「ぷよぷよ」や「テトリス」に代表される「落ちものパズル」で、前回と同じく、ランダムに落ちてくるブロックを消す「ブロック崩し」だ。タテ・ヨコ・ナナメのブロックに書かれた数字が合計30になると消え、多くのブロックを消すと、相手に黒い「お邪魔ブロック」を送って攻撃することができる。前回と異なるのは、大同時消し(たくさんのブロックを一度に消すこと)を行うと経験値が溜まり、レベルが上がる点だ。レベルに応じて、攻撃力も2倍、3倍にアップする。今回は、白熱した各トーナメントの内、いくつかをピックアップしてレポートする。

■今回のルール詳細は「CODE VS 2.1」サイトに掲載  http://codevswc.jp/jpn/rule.html





<参加者>決勝トーナメントに出場した予選ランキング上位8名
rito氏
予選1位:rito氏
「目標は打倒!tek1031さん」と、意気込むrito氏
ustimaw氏
予選2位:ustimaw氏
「賞金で洗濯機を買いたい」と宣言。「洗濯機さん」とあだ名がついたustimaw氏
ozy4dm氏
予選3位:ozy4dm氏
ベテランプログラマとして注目されていたozy4dm氏は、大阪から参加
kusano氏
予選4位:kusano氏
「CODE VS 2.0」では学生だったが、社会人になったのでまず1勝したいというkusano氏
mecha氏
予選5位:mecha氏
スマートフォン向けのソーシャルゲームを作っている社会人2年目のmecha氏
nosnosnos氏
予選6位:nosnosnos氏
nosnosnos氏は生粋の「CODE VSっ子」参加理由は「そこにCODE VSがあるから」
tek1031氏
予選7位:tek1031氏
前回「CODE VS 2.0」の優勝者tek1031氏。今回も優勝への自信を見せる
simanman氏
予選8位:simanman氏
沖縄から参戦!かりゆしウェアで登場したsimanman氏
<実況・解説チーム>
colun氏
システム工房コルンを運営し、第1回、第2回CODE VSで予選総合1位のcolun氏
田村哲也氏
「参加者同士のライバル関係も見どころの1つ」と実況のチームラボのCTO、田村哲也氏
高橋大輔氏
今回も熱い実況で会場を盛り上げるフリーアナウンサーの高橋大輔氏
相沢舞さん
参加者の心を和ませる
声優の相沢舞さん
<実況・解説> レベル上げor大攻撃?戦略と事前シミュレーションが勝敗を分ける
<準々決勝:予選第1位rito氏 VS 予選第8位simanman氏>

 準々決勝第1試合は、予選ランキング第1位のrito氏と、はるばる沖縄から来たという予選第8位のsimanman氏が対戦した。

 こつこつブロックを消してレベルを上げるrito氏の戦略に対し、simanman氏はレベルを上げず大量の同時消しを狙う戦略。ゲームを監修したcolun氏は、「simanman氏は一度に大量のお邪魔ブロックで攻撃できるので有利。700ほどのお邪魔ブロックを送られたら、フィールドがすべて埋め尽くされてしまう」と解説する。ここでsimanman氏が“大発火”を起こし、608に及ぶ大量のお邪魔ブロックを送り込んだ。さらに、立て続けに同時消しや連鎖を起こすも、勝利への決定打とはならず、レベル2になったrito氏がカウンターを仕掛けて圧勝した。


<準々決勝:前回優勝者tek1031氏 VS 予選2位ustimaw氏>


 準々決勝第4試合には、「CODE VS 2.0」チャンピオンのtek1031氏が登場。tek1031氏は今回も終始笑顔を絶やさず、「前回とは戦略を大きく変え、最も勝てる戦略を吟味した。今回も優勝を狙う」とビッグマウスで会場を盛り上げる。一方、今回初出場ながら予選2位通過、TopCoderのMarathon Matchでも活躍するustimaw氏は、「目の前のすごい闘いを見ているだけで圧倒された」と、弱気だ。

 tek1031氏、ustimaw氏、ともにすばやくレベルを上げて攻撃力を高める展開となり、開始早々、あっという間に175ターンまで進んだ。tek1031氏は555ターンまでレベルを上げ続ける戦略を取り、usimaw氏はレベル3になったら攻撃モードに転じる戦略。ここでレベル3となったustimaw氏が大同時消しを行い、1044ものお邪魔ブロックを一挙にtek1031氏へと送り込んだ。それでもtek1031氏は、「攻撃を受けたらカウンターをするように作ってある」と、笑顔を崩さない。しかし、ustimaw氏がさらに1118、1418と消しきれないほどのお邪魔ブロックを送り込んでそのまま勝利。さすがにtek1031氏の笑顔は消え、ディフェンディングチャンピオンが初戦で敗れる波乱の展開となった。

<準決勝第2試合:kusano氏 VS ustimaw氏>

 社会人としてただ一人準決勝に残ったkusano氏と、初戦でチャンピオンを破ったustimaw氏による準決勝第2試合。この試合では「制限時間」という予想外の敵に悩まされることになった。双方のソースコードを読んだcolun氏は「短期決戦ならレベル2で攻撃モードに突入するkusano氏が有利だが、長期戦ならustimaw氏が勝つだろう」と予想した。

 序盤、kusano氏は素早くレベルを2に上げ、攻撃モードに突入。ところが、攻撃を受けたustimaw氏はお邪魔ブロックをうまく生かしてカウンター攻撃を展開。その後、互いに発火とカウンターを繰り返す一進一退の攻防となる。

 ここで突然、kusano氏の画面に「Time limit:29:16」の文字が点灯し、場内がざわめいた。これはプログラムの計算処理時間のリミットを示すもの。本大会では計算処理時間が3時間までと決まっており、それを超えるとゲームオーバーになる。kusano氏は残り1分23秒で起死回生のお邪魔ブロックを950送ったが、文字どおり「時すでに遅し」。計算処理時間オーバーとなり、ustimaw氏が決勝戦進出となった。



<決勝:nosnosnos氏 VS ustimaw氏>

 いよいよ迎えた決勝戦は、学生同士の一騎打ちとなった。レベルを上げず序盤から大きな攻撃を仕掛けるnosnosnos氏と、レベルも攻撃力も上げ続けるustimaw氏。colun氏によれば、決勝戦のポイントは「nosnosnos氏が最初に大きな攻撃を仕掛けた時に、ustimaw氏がどう避けるか」だという。ここで早くもnosnosnos氏が最初の“大発火”を起こすが一発で仕留めることはできず、ustimaw氏は送られたお邪魔ブロックを難なく消してしまう。しばらく、互いに積んでは消し、お邪魔ブロックがくればカウンター攻撃を行うという状態が続いた。

 200ターンを超えたところでustimaw氏がようやくレベル3にアップ。準備万端と攻撃モードに突入し、積み上げたブロックを一気に大同時消し。圧倒的な攻撃力で848のお邪魔ブロックを送りこんだ。すると、お邪魔ブロックをさばききれなくなったnosnosnos氏はゲームオーバー。栄えある学生・社会人混成大会は、学生のustimaw氏が優勝者となった。

rito氏
simanman氏

 CODE VS責任者のリクルートキャリア兼ビズアイキューディレクターの中山好彦氏は、今回の総括をこう語っている。
「3回目の開催となる2.1は“世界大会”と銘を打ち、これまでのCODE VSとは違う、新たな挑戦としてスタートをしました。結果、日本人のみが決勝イベントに参加することになりましたが、実は登録者全体でみると日本人は約40%。残りの60%はインド、アメリカ、ロシアなど様々な国の方々が登録をしてくれていました。年末に開催予定の3.0は国内戦に戻す予定ですがまた、いつか世界大会に挑戦をしていきたいと考えています」

中山 好彦氏
リクルートキャリア兼ビズアイキューディレクター
中山 好彦氏
<トークセッション> 競技プログラミングを極めれば、カラオケでも高得点を採れる!?

 後半は、TopCoderなど世界的な競技プログラミング大会で毎年上位に食い込むchokudaiこと高橋直大氏(以下、chokudai氏)と、決勝戦の実況に続いてcolunこと今村安伸氏(以下、colun氏)も参加し、トークセッションが行われた。

 まず、競技プログラミングを極めるために何が役に立つかというテーマに対して、colun氏は「ゲームに熱中したことや中学受験で培った思考力、それに加えて、個人事業主として身に着けた問題解決能力」と、あらゆる経験が競技プログラミングに役立つと強調した。

 一方、chokudai氏は「むしろ競技プログラミング自体が、人生のさまざまな局面で役に立つ」という。それは、「日常生活のどんな問題も、問題設定さえうまくできればすべて競技プログラミングへ落とし込むことができ、スコアをつけてコンテストにできる」からだそう。colun氏も「たとえばカラオケで高得点を採るためにはどうすれば良いかまで、競技プログラミングの思考方法で考えられる」と同意した。

chokudai氏
アルゴリズマーchokudai(高橋直大)氏
colun氏
実況を担当したcolun(今村安伸)氏

プログラミング能力よりも、問題の探索方法や問題解決能力が社会で生きる

 ここで、企業のエンジニアもトークセッションに加わり、テーマは「競技プログラミングは仕事の役に立つのか」へと移った。

 4月からKLabに入社したshohei909氏は、「CODE VS 2.0」決勝戦に出場し、今回は協賛企業側として参加してくれた。同氏曰く、「CODE VS 2.0でデバッグにかなり時間をかけたことが、現場で業務を行う際に必要な観点を考えることに役立った」と、実践の場で競技プログラミングの経験が活かせると話した。

 ピクシブのWebエンジニア杉本氏は、「競技プログラミング経験者はデータの質と量を見る力に長けている。膨大な時間がかかる計算処理を一瞬で見抜ける」と、競技プログラミング経験者の強さを話す。チームラボのWebエンジニア山田氏も、「彼らは解決すべき問題に直面した時に、どんな方針でどう解けば良いかをすぐに考えつく」と同意する。

shohei909氏
KLab shohei909氏
杉本氏
ピクシブ 杉本氏
山田氏
チームラボ 山田氏

 競技プログラミング経験者に期待することとして、デジサーチアンドアドバタイジングの黒越誠治氏は「あいまいでわかりにくい人間の言葉や指示をプログラムに変換する力」といい、ワークスアプリケーションズの松山朋洋氏は「日々、“問題解決”を実践していることそのものであり、その思考性と解決力に期待している」と言う。

 さらに松山氏はイベント後に、「競技プログラミングに必要なのは、順番に考えて物事を解決していく力。私も最近、Google Code Jamに参加し始めましたが、その難しさを痛感しています。CODE VSではさまざまなアプローチで問題を解決できる多様な学生に出会えるため、非常に魅力的です」と語った。同社のゲストフェロー 井上誠一郎氏も、「好きなことに熱中して、一直線に突き進む姿勢が素晴らしかったです。僕も若い頃に一心不乱にプログラミングに打ち込んだ時期がありました。プログラマとして圧倒的な成長をしていくためには、そういう期間が必要です」と感想を述べていた。

黒越 誠治氏
デジサーチアンドアドバタイジング 
黒越 誠治氏
松山 朋洋氏
ワークスアプリケーションズ 
松山 朋洋氏
井上 誠一郎氏
ワークスアプリケーションズ 
ゲストフェロー 井上 誠一郎氏

 ドワンゴの清水俊博氏は「社会人になっても競技プログラミングを続けて、周りのエンジニアに刺激を与えて欲しい」と続けること自体を重視する。一方、リクルートホールディングスの田村博司氏は「アルゴリズムやデータに基づいて意思決定ができる点を評価する」という。
「これまでは日本国内で多くのサービスをリリースしていましたが、これからは海外でも多くのサービスを展開したいと考えています。国内ではユーザーの抱える課題をとらえてサービスに反映する企画力が強みでしたが、世界で使われるサービスには強みとなるアルゴリズム設計が重要になります。アルゴリズム設計の経験は非常に重要になるので、CODE VSの参加者と話をさせていただいたり、何に取り組んでいるのかを見せていただいたりすることで、皆さんの活躍の場も提供できたら嬉しいですね」(田村氏)

 ここで、司会の高橋大輔氏が「会社に入るために競技プログラミングを始めたという動機でもいいのか?」と質問すると、chokudai氏がすかさず、「そんな動機で勝てるような甘い世界ではない」と厳しい意見を述べた。一方、colun氏は、「就職のためでもいいから、初めてもらえたら好きになるかも知れない。好きになれば結果が出る」と意見が分かれた。

 トークセッションの最後に、colun氏は「仕事の現場で、競技プログラミング経験が生きているとわかって嬉しい」と述べ、chokudai氏は「今、まったくプログラムが書けない人も、ツイッターで@chokudaiにリプライを飛ばしてもらえたら、1人1人に僕が直接プログラミングを教えます!」と、熱い思いを語って締めくくった。

清水 俊博氏
ドワンゴ 清水 俊博氏
田村 博司氏
リクルートホールディングス 
田村 博司氏
<CODE VS 2.1を終えて> 上位入賞者が明かす勝利のポイントは?
ustimaw氏

優勝者 ustimaw氏

 今回は、時間をかけて相手の出方を研究したことが優勝につながりました。いきなり攻めてくるタイプや、じっくりレベルを上げてくるタイプなど、パラメータを変えていくつもプログラミングを書き、自分で書いたプログラム同士を対戦させたのが良かったと思います。決勝トーナメントで出てきた戦略パターンはすべて試しました。その中で、レベル3まで上げて、そこから攻撃する戦略が、一番強かったんです。自分がここまでこれるとは思っていなかったので、優勝できて良かったです。自信がつきました。

2位 nosnosnos氏

 2位になれると思っていなかったので、純粋に嬉しいです。相手の予想を裏切り、最初に大連鎖を組んでしまう戦略が勝因だったと思います。実は僕は大連鎖が大好きなんです。大連鎖は見ていて楽しいですし、目立ちますよね。僕はCODE VSが好きで、ほかのコンテストには出ていません。だからこそ次は優勝したい。今後は、ツイッターのデータを使った自然言語処理に取り組んでみたいと思っています。

nosnosnos氏
rito氏

3位 rito氏

 僕のプログラムは、すばやく、かつしっかり攻撃力をつけてから攻撃するのが特徴でした。勝因は対戦相手との相性が良かったことと、制限時間内で計算処理の終わるプログラムをつくったこと(笑)。来年からは就職してプログラミングを書く仕事をします。これも競技プログラミングに取り組んだおかげです。将来は日本で一番早いコードが書けるプログラマを目指したいですね。

  • はてなブックマークに追加
  • Yahoo!ブックマークに登録
あなたを求める企業がある!
まずはリクナビNEXTの「スカウト」でチャンスを掴もう!
スカウトに登録する

このレポートを読んだあなたにオススメします

大興奮!「落ちゲー」アルゴリズムの熱き戦い

学生プログラマ日本一は誰?「CODE VS」決勝戦に潜入

学生プログラマ日本一の座を賭けた「CODE VS 2.0」の決勝トーナメントが、1月19日、六本木・ニコファーレで開催…

学生プログラマ日本一は誰?「CODE VS」決勝戦に潜入

学生プログラマ日本一&世界に挑戦するアプリ開発コンテスト

CODE VS、Tech-Tokyo─決勝を制した学生ギークは誰?

日本一の学生プログラマを決める「CODE VS」、“学生生活×Android”“位置情報×Webアプリケーション”をテーマに開発…

CODE VS、Tech-Tokyo─決勝を制した学生ギークは誰?

CODE VS、Tech-Tokyo──学生イベント開催リポート <前哨戦>

学生GEEK集まれ!天下一武道会とシリコンバレー登竜門

パソコンとスマホがあれば、お金はほぼゼロ、人数も1人から3人程度でスマホアプリやウェブサービスを開発し、世界で販売できる時代。そ…

学生GEEK集まれ!天下一武道会とシリコンバレー登竜門

Pythonユーザー向けカンファレンス「PyCon JP 2012」レポート!

Perlハッカー小飼弾氏が語る、Pythonは傲慢な外国語!?

9月15日〜17日に開催され、480名を超える来場者を集めた「PyCon JP 2012」。中でも編集部が注目したのは…

Perlハッカー小飼弾氏が語る、Pythonは傲慢な外国語!?

ジゴロウ、猪子寿之、えふしん、柴田淳、山崎はるか…5人が語る

ドコモがオープン化!ギークが作りたいガラケーアプリ

12月6日からNTTドコモが「ドコモマーケット(iモード)」をスタートさせた。その大きな特徴は個人開発者が多様な機能を利用でき、…

ドコモがオープン化!ギークが作りたいガラケーアプリ

広める?深める?…あなたが目指したいのはどっちだ

自分に合った「キャリアアップ」2つの登り方

「キャリアアップしたい」と考えるのは、ビジネスパーソンとして当然のこと。しかし、どんなふうにキャリアアップしたいのか、…

自分に合った「キャリアアップ」2つの登り方

この記事どうだった?

あなたのメッセージがTech総研に載るかも

あなたの評価は?をクリック!(必須)

あなたのご意見お待ちしております

こちらもお答えください!(必須)

歳(半角数字)
(全角6文字まで)
  • RSS配信
  • twitter Tech総研公式アカウント
  • スカウト登録でオファーを待とう!
スマートグリッド、EV/HV、半導体、太陽電池、環境・エネルギー…電気・電子技術者向け特設サイト

PAGE TOP