|
|
学生プログラマ日本一の座を賭けた「CODE VS 2.0」の決勝トーナメントが、1月19日、六本木・ニコファーレで開催された。この日、出場したのは予選を勝ち抜いた学生8名。その知略と技術を駆使した激戦の模様をレポートしよう。
(取材・文/川畑英毅 総研スタッフ/宮みゆき 撮影/佐藤 聡)作成日:13.02.08
|
昨年の第一回、「CODE VS(コードバーサス)」に続いて今年も行われた、学生プログラマの頂点を決める戦い。勝負は1対1形式。ごくごく簡単に言ってしまうと、同じゲーム上で、事前に組んできたプログラムを走らせ、勝敗を決するというもの。実際に対戦が進行している間は、観客だけでなく、プログラマ本人たちも、基本的には勝負の行方をただ眺めているしかない。ステージに上がる以前に、やるべきことはすべて終わっているわけだ。
「そんな、ただプログラムが走るのを眺めているだけのものが面白いの?」という疑問を抱く人もいるかもしれない。
――いや、ここで白状しておくが、実はこうして書いている記者自身、始まるまではそう思っていた。……しかし! これが掛け値なしに面白い。とにかく“熱い”のだ。
それぞれ事前に組んだアルゴリズム通り、ただ淡々とゲームを進めていくのかと思いきや、「相手の攻撃をどう受け、どう返すか」という要素が加わってくることによって、まさに丁々発止、プログラム自身が“生きて”、そこで考えて行動しているかのような、白熱のバトルが展開される。
「CODE VS 2.0」の概要と、競技のレギュレーションを説明しよう。「CODE VS 2.0」は、プログラミングに関する優れた技術を持つ学生を発掘することを主眼に、チームラボ、ピクシブ、ビズアイキュー、リクルートキャリアの4社によるCODE VS事務局を主催者に、IT系企業13社の協賛、ほかメディアパートナー、イベントパートナーの手によって開催された。
参加資格は日本在住の学生および既卒3年以内の未就業者で、ここで言う学生は大学・大学院生や専門学校生に限らず、中・高生でも参加可。また、予選に限っては一般社会人の参加も認められている。
これまでの予選、そして決勝トーナメントに共通して使われる課題は、このCODE VS専用に開発された特定のゲーム。そのゲームをよりよくプレイするアルゴリズムを組み立て、それを実現するプログラムを書いた者が勝ち、というわけだ。
そして今回のテーマは「落ちゲー(落ち物パズル)」。フィールドに次々落ちてくるブロックを上手に積み、フィールドの上限を越えないよう決められた法則にしたがって消していくというもので、元祖の「テトリス」、大ヒット作の「ぷよぷよ」などが代表的な存在である。
特に今回のお題は、消去が連鎖すればするほどスコアが上がり、対戦プレイではその連鎖の度合いに従って、相手にお邪魔ブロックを送り込める。ただし、ブロック一つひとつに数字が書き込まれ、直線に並んだブロックの数字の合計がぴったり指定の数になると消えるという、より数学的なルールになっているのが、いかにもプログラミング競技用らしいと言えるかもしれない。
予選期間は、2012年12月1日から、2013年1月7日まで。ネットを通じて参加したのは全国から約500名。その中から、成績上位の8名が選抜され、この日の決勝トーナメントに進んだ。
一方で、同じゲームを課題としながらも、予選と決勝トーナメントでは大きな違いが一つあった。予選は純粋にスコアを競う「1pプレイ」だったのに対し、決勝は対戦プレイだということである。自然、「勝つための戦術、戦略」も変わってくるはず。さて、実際の戦いの様子は――。
フリーアナウンサー
高橋 大輔さん |
チームラボ株式会社
取締役CTO 田村 哲也さん |
予選総合一位
社会人代表 colunさん |
テックハニー“きゃんち”こと
喜屋武 ちあきさん |
全国から予選を勝ち抜いて、ここニコファーレにたどり着いたのは、
予選第1位
hirosegolf氏 |
予選2位
shohei909氏 |
予選3位
nosnosnos氏 |
予選4位
p8vNdUrvO1uO42xW氏 |
予選第5位
tek1031氏 |
予選6位
nabe氏 |
予選7位
kusano氏 |
予選8位
altocolony氏 |
の各氏(すべてハンドルネーム)。司会はフリーアナウンサーの高橋大輔氏に、アシスタントは我らがテックハニー“きゃんち”こと喜屋武ちあきさん。さらに実況解説に、社会人で予選に参加し最高スコアをたたき出したcolun氏、およびこの競技用のゲーム開発を担当したチームラボ株式会社の田村哲也氏。
ちなみに会場のニコファーレは、左右の壁面もLEDディスプレイのパネルで覆われ、試合のゲーム画面はステージ背面および、この左右壁面にも映し出される。また会場の様子はニコニコ生放送(ニコ生)でもライブ中継され、そこに付けられた視聴者からのコメントは会場の正面+左右壁面ディスプレイにも流れる仕組みだ。なお、イベント終了後の情報では、ニコ生のこの中継の視聴者数はおよそ4万人。公式放送では破格の数だったという。
まずはcolun氏より、ハイスコアを狙う鍵となる連鎖の中でも特に大型の「システム連鎖」の配列解説があり、それから実際の対戦が開始された。
第1回戦は、予選第1位のhirosegolf氏と、予選第8位のaltocolony氏。予選順位から見れば決勝進出者の最上位と最下位、極端に差のある組み合わせだが、
「自信がないけれど、ぜひ勝ちたいです」(hirosegolf氏)
「勝ち残れただけでも奇跡だと思ってます」(altocolony氏)
と、試合前のコメントは2人揃って謙虚なもの。
試合運びは、フィールド中央に大連鎖を組もうとしているhirosegolf氏に対し、altocolony氏はこまめな連鎖で「お邪魔ブロック」を送り込む戦術。そのaltocolony氏の戦術が効を奏し、hirosegolf氏のプログラムは、フィールド左右に想定した「ゴミ捨て場」だけではお邪魔ブロックに対処できなくなり、ついに中盤の480ターン台で、「ポイントを稼ぐ場」であるはずの中央領域をお邪魔ブロックでカバーされてしまう事態に。こうなってしまうと、もう対処不能。ブロックがみるみる積み上がって、ゲームオーバーとなった。
プログラムが意思を持って相手を追い詰めていくかのようなこの展開に、観客席からは悲鳴まじりのどよめきも。
「まさか、あそこまでお邪魔ブロックが次々に来るとは思いませんでした。作戦負けです」とは、試合後のhirosegolf氏の言葉。
予選の順位を覆す“大波乱”の幕開けとなったが、それは同時に「対戦形式の決勝は、予選とはまるで別物」を大きく印象付けるものでもあった。
第2試合は、予選6位のnabe氏、予選3位のnosnosnos氏という組み合わせ。そしてこれはまた、第1試合とはまったく違う様相の、なおかつドラマチックとしか言いようのない展開となったのである。
「エラー落ちだけはしないように頑張って欲しいです」(nabe氏)
「始まるまでは自信があったんですが、さっきの試合(第1回戦)を見て不安になってきました」(nosnosnos氏)
というのが、試合前のコメント。
さて、最初は静かに始まったこの試合。nabe氏のフィールドは、右端をゴミ捨て場にし、そして左側で大連鎖を狙う構え。nosnosnos氏も大連鎖狙いだが、こちらは中央を組み場に、左右をゴミ捨て場にする形。「2人とも、1発KO狙いですね」という解説コメントにもあるように、お互い、相手の様子を伺いつつも、自分の“理想形”をフィールドにつくっていく。もちろんその間も、いつ、どちらで連鎖の“大噴火”が起きるのかと、観客の緊迫感もじわりじわりと盛り上がってくる。
客席の「来た!」の叫びとともに、最初に仕掛けたのがnabe氏。796ターン目、フィールド左の大きな山でついに連鎖の“発火”が起こった。78連鎖という見事な大連鎖だ。そして対戦モードでは、連鎖が生むのはスコアだけではない。連鎖が大きいほど、より多数のお邪魔ブロックを相手に送り込めるのだ。nosnosnos氏のフィールドに次々に落ちてくる、まさに塊としか言いようのないお邪魔ブロック。しかしnosnosnos氏は、これを耐えきった!
実は「両者一発KO狙いか?」との観測に、「1000ターン(最終ターン)発火を狙ってます」と答えていたnosnosnos氏。このゲーム、連鎖の数が同じでも、ターンが後になればなるほど、スコアが膨らんでいく仕組み。そのための1000ターン発火狙いだが、実際、最後のブロックが落ちたその時、nosnosnos氏の画面では、一発逆転の大噴火が! 客席を包む大歓声。そしてスコアは、「京」の単位を突破し、nosnosnos氏が第2試合を勝ち抜いた。
続く第3試合は、予選4位のp8vNdUrvO1uO42xW氏(以下p氏)と、予選5位のtek1031氏。
「予選の時よりもレベルアップしたプログラムを見せられれば」と言うp氏に対して、「緊張しちゃって……」と言いながらも「優勝したい」とストレートに、かつ終始にこやかに抱負をアピールするtek1031氏。
試合運びは、無理に大連鎖は狙わず、10回台後半から20回台、多くて30回程度の連鎖を小まめに起こし、相手にお邪魔ブロックを送り続けるtek1031氏のプログラムが、p氏のそれをじわじわと追い詰めていく感じ。中盤には、「いまpさん側で全ブロックが起爆しても、tekさん側は死なない」というほどの差がつき、tek1031氏が勝利した。
1回戦最後の第4試合は、予選7位のkusano氏と、予選2位のshohei909氏。
「自信はないんですが、何もしないで終わるのは嫌。一回は連鎖して欲しい」と語るkusano氏に対し、「いままでの試合を見て、自信が出てきた」と、shohei909氏は不敵なコメント。
試合前コメント通り、大きな連鎖の構築に持って行こうとするkusano氏に対して、shohei909氏は27連鎖、25連鎖、57連鎖など、中規模の連鎖をしばしば発火させ、お邪魔ブロックの塊を送りつけるという試合運び。すでに200ターン前後で、「kusanoさんは、なかなか希望が見えない感じになってきた」という解説コメントが出てくる具合に。結局、shohei909氏優勢のまま、kusano氏側はブロックがフィールド上端に達しゲームオーバー。
「大きな連鎖がつくれず負けたのが残念です。(最終ターンの)1000ターンまで行って、最終的には点数勝負になるかと思っていたんですが、読みが外れました」というのが、kusano氏の敗者の弁。
そのコメントを裏付けるように、これまでの1回戦4試合のうち、1000ターンまで行ったのは第2試合のみ。ほか3試合は、どれも「お邪魔ブロック」による相手側ゲームオーバーの形となった。
準決勝第1試合はaltocolony氏対nosnosnos氏。唯一、大連鎖で勝ち上がってきたnosnosnos氏だが、お互い大連鎖狙いだった1回戦と違い、お邪魔ブロックを着実に送りつけてくるタイプの対戦相手はやはり不利。
「(ゴミ置き場にしている)両側とも目一杯積んでしまい、真ん中にお邪魔ブロックを置かざるを得なくなってしまうとnosnosnos氏はヤバイ。けれどこの調子だと、400ターンくらいにはそうなってしまいそう」
そんな解説のcolun氏のコメント通り、中盤前にしてnosnosnos氏は絶体絶命の状況に陥り、残念ながらゲームオーバーとなった。しかし、1回戦で劇的な逆転勝利を見せてくれたnosnosnos氏には、この試合後にも大きな拍手が送られた。
準決勝第2試合はtek1031氏とshohei909氏。1回戦の試合運びを見てもわかるように、戦術的には似通ったタイプ同士の戦いだけに、接戦が予想される対戦だ。
「えっと……頑張ります」(tek1031氏)
「tekさんとは熱い戦いになるので、(じっくり)見守りたいと思います」(shohei909氏)
序盤から緊迫した試合運びとなった。これまで終始笑顔でアピールしてきたtek1031氏だが、「初めてtekさんの顔から笑顔が消えましたよ?」と言われる事態に。
実際には、先の試合と同じく、tek1031氏側の画面では22連鎖−12連鎖−16連鎖−31連鎖と、小中規模の連鎖が頻繁に起きているのだが、shohei909氏側もそこそこの連鎖を返し、お邪魔ブロックが相殺されるためになかなか有効打にならない。あるいは、お邪魔ブロックが混じった山で、それをかいくぐるように連鎖が起きて危機を回避していく。そのたびに起きる拍手とどよめき。
最終的にはtek1031氏が押し切って勝利をモノにしたが、「何度も勝ったと思ったんですけれど、その度に押し返されて……。『やった』と思ってもガッカリの繰り返しで、本当に疲れました」と語る大接戦。スクリーンは両者の健闘を称える「88888……(パチパチパチの拍手)」のコメントで埋め尽くされた。
そして、ついに迎えた決勝戦。対戦はaltocolony氏と、つい先ほど、接戦を制したtek1031氏。altocolony氏は予選8位からの大躍進となった。
「(ここまで来たら)見守るだけです」(altocolony氏)
「頑張って下さい」(tek1031氏)
自分が決勝に進出したのに「頑張って下さい」は奇妙に感じるかもしれないが、もちろん、実際に“戦う”のは、すでに自分の手を離れたプログラム。本人は見守るしかないのだから、むしろ素直なコメントと言えそう。
さて、これもまた、準決勝第2試合と似て、比較的近いタイプ同士の決戦。お互い、中小規模の連鎖を起こし、お邪魔ブロックを送る、「ボクシングで言えば体力を消耗させるジャブの応酬」といったところだろうか。
特にこの試合では、これまで片側に綺麗にお邪魔ブロックを積んでいたtek1031氏の画面が、若干乱れ気味になっていたのが気になるところ。とはいえ、まだ2桁ターンの段階から、20回台、30回台の連鎖を起こし、やはり押し気味に試合を進めるtek1031氏。しかしaltocolony氏も粘る!
tek1031氏が連鎖を起こし、altocolony氏にお邪魔ブロックを送りつけると、即座にaltocolony氏でも連鎖を起こして反撃するという、知らない人が見たら、負けず嫌いのプレイヤーが意思を持って、そこでコントローラーを握っているんじゃないかとしか思えないような応酬が続く。その度に、観客席からもニコ生コメントからも賛嘆の声が。
「心臓に悪いです」と語るtek1031氏に対し、「いや、もうそろそろヤバイです……」とaltocolony氏がちょっと諦め気味のコメントを出したのは400ターンが過ぎたころ。
結局、tek1031氏が押し切り、473ターンで決着となった。
「すぐ消え去ってしまうかと思ったのに、準優勝までできてよかった」と、altocolony氏。
「まさか勝てるとは思わなかったのでうれしいです。いやあ、笑っちゃいますよねー。賞金は……新しいPCを買おうかなと思います」と、こちらはニコニコ顔を取り戻したtek1031氏。
事前に組んだプログラム同士の戦いでありながら、まさに手に汗握る大熱戦。観客からは惜しみない拍手が送られた。
|
優勝者 tek1031さん
事前の情報が少なかったこともあって、勝てる自信はありませんでした。けれど、その分心掛けたのは、柔軟にアルゴリズムを組むこと。(予選での勝利の鍵だった)システム連鎖は、ハイスコアは出せますけど融通が利かない。決勝は“相手”がいることで外乱要因が入ってくる。どれだけ邪魔がくるかわからない。こうと決まった戦略を立てちゃうと、それ以外の出方をされた時に受けられなくなっちゃうんで、ある程度、相手がどう出てきても受けることができるように組みました。それがよかったのかなと思います。 |
グリー株式会社 Director Grobal Talent Recruting and Development
鈴木 修氏 どうやってライバルに打ち勝つのか、状況を適切に分析した上で即座にアイデアを出して形にしていく過程がまさにアジャイル、プログラミングの面白さが凝縮された試合だったと思います。見ているだけでこの面白さは体験できないので、我こそはというエンジニアには積極的に参加してほしいですね。 |
|
|
チームラボ株式会社 取締役CTO 田村 哲也氏
今回のCODE VS2.0は、内容は既存のゲームに近いものでしたが、連鎖の要素、逆転の可能性、幅広い戦術と、見どころの多いものだったと思います。特にこの決勝は、予選と違って対戦形式になったこと、それによって必要になった戦術の変化がポイントになったと思います。もちろんそのこと自体は予想しやすいと思うのですが、どのあたりにバランスを置くかが難しい。その点でtek1031さんは絶妙だったかな、と思います。 |
株式会社ドワンゴ
プラットフォーム事業本部第三企画開発部 セクションマネージャ 細川 泰平氏 高度なアルゴリズムと技術――人間がその場でやっているかのような感覚でしたね。ゲーム・ルールのセッティングもよかったと思います。まさに「死力を尽くした戦い」という感じでした。 |
|
|
株式会社スクウェア・エニックス CTO 橋本 善久氏
優勝したtek1031さんはキャラ勝ちしていたところもありましたね(笑)。やはりプログラムに表したバランス感覚が勝利のポイントだったと思います。しかし、準決勝のshohei909さんの「もうダメだ」からの反撃も魅せられたし、バランス型には結局勝てなかったけどnosnosnosさんの大連鎖もすごかった。ある種、「美学の戦い」でもあったと思います。 |
ヤフー株式会社 CMO室 継岩 直充氏
自分でも、観戦であそこまで熱くなるとは思いませんでした。思った以上に、決勝に進出したみなさんのアルゴリズムがバラけていましたね。予選を見ていた感じでは、上位に行くほど強く、決勝でも上位ランカーの圧勝かとも思っていたのですが、そうはならなかった。これだけの技術の人が出てくるとは、すごい世の中だなあと思います。 |
|
|
KLab株式会社 開発制作本部 稲田氏
私はKLabでゲーム開発のプロジェクトを担当しています。競技プログラミングの技術スキルは、実際のプロジェクトでも役立ちます。例えば、カードゲームでユーザーが持っているカードから最適なデッキを自動的に編成する技術に活かせたりします。弊社ではデッキ編成スキルを競う社内プログラミング大会が行われているくらいですから(笑)。 |
テックハニー“きゃんち”こと 喜屋武 ちあきさん
まさか、事前に組んだプログラム同士の戦いが、こんなに熱いものになるなんて思いませんでした! これって、ポケモンの戦いに似ていますよね。「お前に任せた! 行け!」って。実際にプログラムが生き物みたいに攻めたり守ったり。まさに格闘技。こんな競技があるんですね。本当に感動しました。 |
|
|
株式会社ビズアイキュー プロデューサー 中山 好彦氏
試合が終わって懇親会になっても、学生のみなさんも企業のみなさんほとんど帰らず、懇親会場のロビーはぎっしり。こうした技術の勝負では、ロボットコンテスト、通称「ロボコン」が有名です。プログラミングの分野でも、ロボコン同様、見ても楽しいイベントができないか――というのが我々の目標だったのですが、大成功だったと思います。ただしこれは就職イベントでもあり、その点では学生と企業の交流をもっと深めることが課題かなと思います。 |
尚、決勝戦の後は懇親会が行われたが、その途中で、優勝者のtek1031氏と、この日解説を務めたcolun氏との間でのエキジビジョン・マッチも行われた。先述のように、colun氏は社会人で予選に参加、最高スコアを記録。その実績がモノを言うか……と思われた試合だったが、勝負は400ターン余りでtek1031氏の勝利。システム連鎖への未練を残すcolun氏のプログラムに対し、対戦に特化し「柔軟に相手に合わせる」tek1031氏の戦術勝ちとなった。
このレポートに関連する企業情報です
2004年2月に、ソーシャル・ネットワーキング・サービス (SNS) 「GREE」を公開、日本だけでなく米国・欧州などグローバル展開を進め、世界で億単位のユーザー数を目指すソーシャルメディア事業をはじめ、ソーシャルアプリケーション事業、プラットフォーム事業、広告・アドネットワーク事業等を展開しています。続きを見る
このレポートを読んだあなたにオススメします
学生プログラマ日本一&世界に挑戦するアプリ開発コンテスト
CODE VS、Tech-Tokyo─決勝を制した学生ギークは誰?
日本一の学生プログラマを決める「CODE VS」、“学生生活×Android”“位置情報×Webアプリケーション”をテーマに開発…
学生・社会人の枠を超え、競技プログラマの世界一が決定!
CODE VSが示すプログラマに必要な戦略と問題解決能力
7月21日(日)、六本木「ColoR」で、アルゴリズム活用力とコーディング技術を競い合うプログラミングコンテスト「CO…
CODE VS、Tech-Tokyo──学生イベント開催リポート <前哨戦>
学生GEEK集まれ!天下一武道会とシリコンバレー登竜門
パソコンとスマホがあれば、お金はほぼゼロ、人数も1人から3人程度でスマホアプリやウェブサービスを開発し、世界で販売できる時代。そ…
テックハニー“きゃんち”の突撃☆会社訪問
学生も活躍!iPhoneアプリ開発で世界に挑む
なぜかガレージのついたユニークな職場に足を踏み入れると、そこには学生をはじめ、若さと好奇心旺盛なエンジニアたちが生き生きと開発し…
Pythonユーザー向けカンファレンス「PyCon JP 2012」レポート!
Perlハッカー小飼弾氏が語る、Pythonは傲慢な外国語!?
9月15日〜17日に開催され、480名を超える来場者を集めた「PyCon JP 2012」。中でも編集部が注目したのは…
応募者は「イケた!」と思ったのに……なぜ不採用?
スキルが高い人材でも「NG」を出した人事の証言
求人の募集要項にあるスキルは満たしていたのに、なぜか結果は不採用。そんな経験をした人も多いのでは? では、採用に至らな…
あなたのメッセージがTech総研に載るかも