全2645文字
PR

 1960校、5675人がエントリーした日本最大級の全国高校対抗eスポーツ大会「STAGE:0 eSPORTS High-School Championship(通称:STAGE:0)」。2021年8月15日に終了した2021年度大会において、STAGE:0は大会史上初めての競技プログラミングコンテストを開催した。

 STAGE:0広報担当者は「eスポーツには教育的な価値が理解されづらいという課題がある。多くの高度IT人材を生み出してきた競技プログラミングを取り入れることで、今までeスポーツを見てこなかった層にも関心を持ってもらいたい」とその狙いを語る。

 STAGE:0は独自の競技プログラミングコンテストを主催するAtCoder(東京・新宿)との協業で「STAGE:0 競技プログラミング高校生大会 powered by AtCoder」を開催。高校生は1人で問題を解く「個人」または同じ学校に在籍する2~3人を1組とする「チーム」のどちらかでコンテストに参加する。チーム部門で1位の成績を収めた灘高等学校「KMB76」チームは、所属する3人がそれぞれ別の拠点から参加し、チャットでコミュニケーションを取りながら問題に取り組んだ。

 コンテストには107組177人の高校生がエントリーした。AtCoderの高橋直大社長によると、参加者は科学オリンピックの常連校などの生徒が多く、競技人口の属性には大きな偏りがあるという。「学生のうちに競技プログラミングに出会うことができる環境はまだまだ限られている。一方、ゲームというものを知らない学生はほとんどいない。eスポーツの仲間入りをすることで、競技プログラミングの認知度を上げられる」(高橋社長)と期待を寄せる。

 競技プログラミングはいわゆる「コーディング」の能力を競うものではない。参加者は出題に対し、どのようなアルゴリズムを組み立てれば解けるのか、一度作ったものをどのように変えればさらに成果が上がるのか、といった視点で論理を組み立てる。求められるのは「実現したいものを正確に形にする能力」や、問題を解くための「工夫を思いつく」、いわゆる考える能力だ。実際にチーム部門で2位に入賞した渋谷教育学園幕張高等学校「Marathon of Legend」チームは競技プログラミングの面白さを「初見では解けるわけがないと思った問題でも、ものすごく考えて工夫を重ねれば解ける瞬間が訪れる」点だと語る。

 コンテストで出された問題は「巡回セールスマン問題」を発展させたものだ。巡回セールスマン問題とは「全ての都市を一度ずつ巡り出発地に戻る巡回路のうちで、移動時間が最も短くなる巡回路を求める」形式の問題だ。今回は屋根の上に全方位カメラを取り付けたパトカーが街を巡回するという設定で、カメラは現在位置から上下左右の直線上にある道路全体を一度に見渡すことができるとした。

 参加者には地図が与えられ、スタート地点から上下左右に移動して全ての地点を見て帰ってくるルートのうち、移動時間が最も少ないものを求めるためのプログラムを作成する。地図は100種類程度存在するため、サンプルとして表示された地図のみで最短ルートを見つければいいわけではない。「まだ訪れていないマスがあれば、今いるマスからそのマスに移動する。なければ、来たマスに帰る」というように考え方を整理し、汎用的に適用できるプログラムにする必要がある。

出題された地図の例。現在地において視界に入っているマスが黄色。全てのマスを黄色にする最短ルートを目指す
出題された地図の例。現在地において視界に入っているマスが黄色。全てのマスを黄色にする最短ルートを目指す
(出所:AtCoder)

 各マスにはそのマスに移動するためにかかる時間を表す数字が表記されている。現在地において視界に入っているマスは黄色で表示され、全てのマスを黄色にする最短ルートを目指す。コンピューターが行う採点では、移動時間を表す数字や黄色にできたマスの数などからスコアを計算する。参加者は自分が提出した回答の点数を確認しながら、4時間の制限時間内で自らが作ったプログラムの改善を続ける。

 「コンピューターが即時に採点しフィードバックをする」という採点形式も競技プログラミングの特徴の1つだ。高橋社長は「競技プログラミングでは採点に人が介入せず主観が入ることがない。明確な基準でコンピューターが採点しているので、勝ちにも負けにも納得感がある」と話し、入賞した高校生からも「自分の今の実力がはっきりと分かる点が魅力の1つ」という意見が挙がった。