ITmedia ガジェット 過去記事一覧
検索
Special

ヒロイン 「このコードが書けたら、一緒に海に行ってもいいよ」 ──異色の“初恋×プログラミング”ゲームを体験してみた

ドキドキの高校生活を楽しみながら、プログラミングについて学べます。

PC用表示
PR
【PR】 paiza 初恋プログラミング研究会

お〜〜い!!

【PR】 paiza 初恋プログラミング研究会

お〜〜〜い!!!

【PR】 paiza 初恋プログラミング研究会

おぉ〜〜〜ぅい!!!!!

【PR】 paiza 初恋プログラミング研究会

 逆光の中、失礼します。Webフロントエンドエンジニアのリックェです。

 ITエンジニアに特化した転職・就活サービスを展開する企業のpaizaさんが、プログラミングのコードを書いてストーリーを進めるゲームを公開したので、今日はそれをプレイしてレビューします。ゲームのタイトルは『初恋プログラミング研究会』

 今はゲームの舞台である “汐音島(しおねじま)” に来ています!

どういうゲームなの?

【PR】 paiza 初恋プログラミング研究会

 主人公とヒロイン、部員が2人だけのプログラミング研究会に所属し、ドキドキの高校生活を送りつつプログラミング問題を解き進めていくストーリーです。スイートなビジュアルに反して、プログラミングパートは硬派で実際に自分でエディタにコードを打ち込みます。

 対応言語は、Python、Java、PHP、JavaScript、C++、C#、C、Rubyなどなど。好きな言語でチャレンジできます。

舞台

 まず、舞台設定が素晴らしいので、ゲーマーとして特記しておきます。

【PR】 paiza 初恋プログラミング研究会

 瀬戸内海に浮かぶ離島!!

 理解(ワカ)ってるね! そうなんです。そうなんですよ!! テックがテーマの学園生活なら、舞台設定のセオリーって2択なんですよ!

 ひとつが「学園都市」。もうひとつが「瀬戸内海の離島」です。

 これはコンセンサス取れてると思ってます。海や空の自然物とメモリー空間のギャップが世界を広げるから、また地域の特産であるレモンやオレンジなどの柑橘類が青春を想起させるからですね。ちなみに、学園都市の場合はモノレールで学生寮と学園を結ぶ必要があります! paizaさん、次回作でもぜひ!

登場人物

【PR】 paiza 初恋プログラミング研究会

 そして、お待ちかねのヒロインをご紹介。彼女が橘(たちばな) まりか です。

 名前〜!!

 こちらも理解ってますねぇ〜!! い〜い命名だ!

 優しさと可憐さの中に、芯の強さを持ち合わせたヒロイン、それが 橘 まりかでしょう? 僕くらいのスーパープログラマーになると、名前だけでピンと来ますわ。

 え? 「名前なんて適当でいいでしょ」なんて思っていたらミステイクですよ! プログラマーなら命名の重要性は知っているはず。たとえば、ヒロインの名前が func() とかだったら一緒に海行かないでしょ?

エピソード1

 すみません、設定資料で盛り上がっちゃった。ここからはゲーム内の各エピソードを紹介していきますね!

 エピソードは3つあります。

【PR】 paiza 初恋プログラミング研究会

 エピソード1は4択問題です。肩慣らしですね! 正解を選んで、進めましょう。

【PR】 paiza 初恋プログラミング研究会

 エピソード1は入学してすぐ、プログラミング研究会に入るきっかけが描かれます。いわゆる前日譚なんですね。正解するとエピローグが見られるので、問題を解いてストーリーを進めてください!

エピソード2

【PR】 paiza 初恋プログラミング研究会

 エピソード2は、2年生に進級して少し仲良くなった頃のストーリーです。お待ちかねの海イベントと、お待ちかねのコーディングがありますよ!

 ここからは、実際にコードを記述して解答するパートが始まります。

 「この問題解けたら……一緒に海に行ってもいいよ。」 だあ?

 甘くて、酸っぱくて、不器用な初恋の始まりだぜ!

解いてみよう

【PR】 paiza 初恋プログラミング研究会

 問題文になると、途端にビジネスライクなものだからびっくりしちゃった。でも、これを解けば、橘との待ち合わせ場所がわかります。一緒に解いていってみましょう。

 問題文からわかる要件は、

  • SUNSETに続く後ろ3文字が目的の語句
  • 後ろが3文字未満のときは、足りない分を先頭に戻って読む
【PR】 paiza 初恋プログラミング研究会

 ふむふむ、一見すると、条件分岐が必要そうなことが書いてあるけれど、後ろに3文字あってもなくても、先頭部分を後ろに持ってきてから、3文字分を読めば良いから実は分岐は不要ですね。条件の整理、大事。

【PR】 paiza 初恋プログラミング研究会

 さらに、 SUNSETという文字列自体を区切り記号とみなして、splitで配列に分割すると、SUNSETが消えるため、読み取り位置を調べる必要もなく、配列を入れ替えて文字列の先頭、3文字分を読むだけになります。

【PR】 paiza 初恋プログラミング研究会

 橘、ごめん……。悪いけど俺、プログラミング初めてじゃないんだ……。

【PR】 paiza 初恋プログラミング研究会

 余力があるので、出力がアクロバティックになるように追記して、待ち合わせ場所をgetしましょう!

【PR】 paiza 初恋プログラミング研究会

 このテスト文字列に対してプログラムを走らせると……

【PR】 paiza 初恋プログラミング研究会
【PR】 paiza 初恋プログラミング研究会
【PR】 paiza 初恋プログラミング研究会
【PR】 paiza 初恋プログラミング研究会

 待ち合わせ場所は、浅草寺だ〜〜!!!!

【PR】 paiza 初恋プログラミング研究会

 到着〜!!! 人が多くて、橘を見つけるのは大変そうだ〜〜!!

【PR】 paiza 初恋プログラミング研究会

 正解できなくても何度でも再挑戦してみてください。難しいと感じたら、paizaのプログラミング学習ページで勉強してから挑戦してみるのも良さそうです。

 あれ〜浅草寺?? おかしいな〜〜……。

エピソード3

【PR】 paiza 初恋プログラミング研究会

 待ち合わせ場所は “sea” でした。 難しいね、プログラミングって。

【PR】 paiza 初恋プログラミング研究会

 浅草寺から隅田川を下って、汐音島へ来ました。

【PR】 paiza 初恋プログラミング研究会

 エピソード3は、海で見つけた巻き貝からの問題です。

【PR】 paiza 初恋プログラミング研究会

 巻き貝やひまわりなど、自然界の繰り返しのパターンにフィボナッチ数列の増加を見出せることがあります。最適なエネルギー効率や資源利用を追求した結果、このようなパターンが現れるのだと考えられています。

 フィボナッチ数列を数式で表すとシンプルで、前項と現在の項から次項が決まります。

 数列の一般化 f(n) = f(n-1) + f(n-2)ができれば第一段階はクリアです。

【PR】 paiza 初恋プログラミング研究会

 ここからは一般化した数列を、プログラムとして書けるかが問われます。

 これは再帰関数を使うと良く、再帰関数にはループからの離脱構造が必須になります。この辺はプログラマーの勘所で、今回はフィボナッチ数列の初項と第二項の returnを工夫すると再帰関数が作れそうです。

 この問題は、ループによる引数の再代入などの理解が求められ、工夫の余地も存分にある良問だと思います!

【PR】 paiza 初恋プログラミング研究会

 ……などと、自分の知識のように解説していますが、ここまでの知識の全ては、自然の観察から得たものです。砂紋、斜陽、自身の影、海風、海鳥、潮騒、波の周期、ゆらぎ、砂粒の数、巻き貝、海辺の生物……

【PR】 paiza 初恋プログラミング研究会

 まぐろ、えんがわ、サーモン、鯛、サラダ巻き、トロタク……そういった万物からプログラマーは学ぶことができます!

ランキング問題

【PR】 paiza 初恋プログラミング研究会

 エピソード問題だけでは満足しないギークなみなさんには、ランキング問題が待っています。その問題がこちら!

【PR】 paiza 初恋プログラミング研究会

 正解するとバレンタインデーらしいイベントが発生する予感がしますが、ランキング問題は手ごわいですね。どこから、どう崩していくか、ぱっと見では判断がつきません。

 さらにランキング問題は、解くだけでなく、できるだけ短いコードを書いてランキング上位を目指すことも目的になります。

【PR】 paiza 初恋プログラミング研究会

 ちょっと挑戦してみましょう。

 まず、必要なことが2つありそうですね。勝利条件の整理と……

【PR】 paiza 初恋プログラミング研究会

 どのように盤面の情報を保持するか、ですね。

【PR】 paiza 初恋プログラミング研究会

 5×5のマス目なので、○と×の情報を2次元配列で持つのが良さそうに見えるんですが、

【PR】 paiza 初恋プログラミング研究会

 勝利条件に関わってくるのは○と×だけなので、空きマスの情報は持たずに、石の位置情報を持つように……

【PR】 paiza 初恋プログラミング研究会

 みなさんも、ぜひ渾身のコーディングでランキング上位を目指してみてください!

 基本問題の紹介は以上になります。

まとめ

 ここからはゲーム全体についてまとめていきます。

エディタは使いやすい

 まず、プログラミングのゲームであれば、開発体験が心地よいものであってほしいですよね。その良し悪しを左右するのがコードエディタです。

 エディタはこんな感じ。

【PR】 paiza 初恋プログラミング研究会

 コードハイライター(コードを色分けする機能)もついていて、普段使っているエディタと遜色ありません。書きかけのコードを波にさらわれる心配もないので、存分に没頭してください。

難易度はやさしめ

 エピソード問題の難易度はやさしめです。しかしながら、自分で組み立てる力はしっかり要求される良問です。プログラミングビギナーは挑戦する価値あり!

 エピソード問題をクリアしたみなさんは、ぜひランキング問題へ。アプローチの仕方が何通りも思い浮かぶ歯ごたえのある設問です。そしてエピソード問題も解いてしまった猛者の方々は、次に紹介するpaizaコラボ問題にも挑戦してみてください。

paizaコラボ問題

【PR】 paiza 初恋プログラミング研究会

 最後に、paizaコラボ問題の紹介です。

 paizaコラボ問題は、「paiza ラーニング プログラミングスキルチェック」 からの出張問題です。

 こちらもコードを記述して解答する問題です。paizaコラボ問題に正解すると、paizaの本体サイト内でも正式にランクが認められ、バッジが取得できます。

 paiza内ではスキルランクが E、 D、 C、 B、 A、 Sランクと分けられていて、コラボ問題をクリアするとDランクのバッジがgetできます。

【PR】 paiza 初恋プログラミング研究会

 Dランク以上の問題もいっぱいあるので、腕試ししたいプログラマーのみなさんは、他の問題にも挑戦してみると良いでしょう。

 それでは、『初恋プログラミング研究会』のレビューは以上です!

 みなさんも遊んでみてください! 汐音島でお会いしましょう!

【PR】 paiza 初恋プログラミング研究会
【PR】 paiza 初恋プログラミング研究会
【PR】 paiza 初恋プログラミング研究会
【PR】 paiza 初恋プログラミング研究会
【PR】 paiza 初恋プログラミング研究会

Copyright © ITmedia, Inc. All Rights Reserved.


提供:paiza株式会社
アイティメディア営業企画/制作:ねとらぼ編集部/掲載内容有効期限:2024年4月8日

ページトップに戻る