paiza times

paizaがお届けする、テック・キャリア・マネジメント領域における「今必要な情報」を届けるWebメディア

logo

paizaがお届けする、テック・キャリア・マネジメント領域の「今必要な情報」を届けるWebメディア

【解答例つき】新作ゲーム『エンジニア騎士とクエリの魔女』でPythonとSQLを学んでみた!

20220817191016

paizaは本日、新作プログラミングゲーム『エンジニア騎士とクエリの魔女』をリリースしました!

今回は、paizaユーザーの皆さまに「どんなキャラクターがよいか」「どんな世界観がよいか」など、全3回の投票を通して答えていただいた結果が反映されています。(投票結果はこちらから)

また、初めてSQLの問題を出題しており、プログラミングを学びたい方はもちろん、SQLを身に着けたい方にもおすすめのゲームとなっています。ゲーム内にはさまざまな難易度の問題があるので、初学者の方から腕に覚えがある方まで楽しめます。

本記事では、実際にプレイしながら*1自分のスキルを腕試ししつつ、分からない問題が出てきたときの対処法も合わせてお伝えしていきます。

一部問題は解答例を掲載しますので、参考にしてみてください。

問題を解いて装備アイテムを集めよう

ゲームを始める

まずは『エンジニア騎士とクエリの魔女』のトップページからpaizaに会員登録※(無料)をします。すでに会員の方はログインしていただき、ニックネームがない方はここで登録をお願いします。

※paizaはエンジニア就職・転職サービスも運営しているため、登録時に関連している項目の質問がありますが、ゲームプレイ時には利用されません。

[GAME START]ボタンを押すとプロローグムービーが流れます。このあとも何度かムービーが流れますが、チュートリアルの役目もありますので見てみてください。上部メニューの「遊び方」でも操作説明しています。

マイページを確認する

マイページから冒険(プログラミング問題挑戦)画面に進んだり、装備を変更したりできます。試練(ミッション)の確認もこちらからおこないます。

ページ下部では問題を解く言語を選択できるようになっています。

Java, PHP, Ruby, Python2, Python3, Perl, C, C++, C#, JavaScript, Objective-C, Scala, Go, Swift, Kotlinから選べますので、ご自分が得意な言語や新しく学びたい言語を選んで挑戦してみてください。

装備を変更する

剣士(男性キャラクター)と魔法使い(女性キャラクター)の着せ替えも楽しめます。最初は着せ替えられるアイテムが少ないので、アイテム選択画面に書かれているミッションをクリアして増やしていきましょう。

たとえば、スキルチェックで問題を解いて提出をすると、「眼帯」が手に入ります。このようにpaizaのサービスと連携したミッションもあります。


マップから冒険に出る

いよいよQUEST MAPを開いて冒険に出ます!

マップ上では、プログラミング問題とSQL問題とが色で区別されています。マップ上のS・A・B・C・Dのアルファベットは、paizaのスキルチェックの難易度と対応していますので、まずはDのプログラミング問題から解いてみたいと思います。(スキルチェックの難易度について詳しくはこちら

プログラミング問題(Dランク相当)を解く

いくつかあるうちの「原初の村(D)」を選択しました。

問題はこのように表示されます。Dの問題は問題文は短いですが、条件などは見落としがないようしっかり読みましょう!

今回はPython3で解くことにしました。ブラウザ上でコードを書いて実行、提出前動作確認をして大丈夫そうであればコードを提出します。

テストケースを通すため、剣士が戦っています……がんばれ……!

無事クリアしました!

(参考)標準入力・標準出力

プログラミング問題を解く際は、与えられる値を取得する標準入力、結果を出力する標準出力を理解する必要があります。(参考ページ:標準入力・出力とはなんですか?

たとえば、上記でPython3を選択した際、デフォルトでコードが入っています。これが一番単純な標準入力・出力のコードになります。

# 変数:input_lineに標準入力から取得した値を格納
input_line = input()

# input_lineの値を標準出力
print(input_line)

1つの値だけが渡される場合はこのまま使えばうまくいきますが、複数の値が改行、半角スペース区切りやカンマ(,)区切りで与えられることもあります。問題に合わせて対応できるようにしておくとよいでしょう。

SQL問題(Cランク相当)を解く

さて、次はSQLの問題を解いてみます。今度はCの問題を選んでみました。

SQLもブラウザ上で書いて実行ができるので、環境構築などは不要です。データベース(DB)はインストールもですが、新規に作成してデータを用意するのが手間なので助かります…。

SQLの問題は文章だけでなく、テーブル情報やテーブル間の関係が図示されているので分かりやすいですね。

普段単純なSELECT文くらいは書いていますが、複数のテーブルをくっつけてデータを取得するようなことはほとんどないので書き方を調べてみました。

このように問題を解くことはもちろんですが、解くために何を知らないといけないか、どうやって調べるかの力もつくことが大きいと思います。書いたらすぐに実行して試せますし、問題は時間制限なく何度でも解き直せるので自分のペースで進められます。

動作確認をして大丈夫そうだったので提出してみましょう!

無事にクリアして新しい装備をゲットできました。新しいアイテムも手に入ったのであとで装備を変更してみます。

ちなみに、SQLの問題に限りませんが解き方・コードの書き方はひとつではないので、上記のコードだけが正解というわけではありません。「もっと効率よくコードを書くにはどうすればいいか?」といったことを考えながら解いてみるとより力がつくと思います。

問題につまづいてしまったら

さきほどの問題画面を見ていただいた方はお気づきかと思いますが、問題によってはpaizaラーニングの学習講座へのリンクがあるため、分からない場合はそれを見てから挑戦することができます。(リンク先は有料講座の場合もあります)

paizaラーニングでは、主要プログラミング言語の基礎文法から一部発展的な内容までしっかり身につけられる「体験編」「入門編」の講座を多数公開しています。

新・SQL入門編」は、SQLをはじめて学ぶ方が基本的な文法を習得できる学習講座になっています。

新・SQL入門編講座

また、ゲーム内の問題を解く際は、記述の仕方や関数の使い方などをインターネットや書籍などで調べたり人に聞いたりしても構いません。

装備を変更する

いくつか新しい装備が集まったので着せ替えをしてみましょう!

まずは魔法使いから。既存の装備も色の変更ができますので試してみてください。

結構雰囲気が変わりましたね。金髪碧眼しか勝たん。

つづいて剣士のほうですが……

眼帯と邪気を放っている武器のせいで若干(?)厨二感が……!

このように着せ替えも楽しいので、ぜひミッションをすべてクリアしてアイテムをゲットしてください。

C・Dランク相当の問題解答例

さきほど2問解いてみましたが、冒険から挑戦できるC・Dランク相当の問題(計7問)のPython3の解答コード例を公開します!

解き方が分からなかった問題や解けたけどもっと効率的なコードを知りたいといった方はぜひ参考にしてみてください。もちろんクリアできるコードの書き方はひとつではありませんので一例としてごらんください。

問題文・条件などはマップから各問題ページへ遷移してご確認ください。

プログラミング問題

D:原初の村
n = int(input())
print("hello"*n)
D:氷の城
n = int(input())
if n <= 0:
    print("freeze")
else:
    print(n)
C:火山島
n = int(input())
s,m,l = map(int,input().split())
ans = 0
for i in range(n):
    o = input()
    if o == "S":
        ans += s
    elif o == "M":
        ans += m
    elif o == "L":
        ans += l
    elif o == "SS":
        ans += s//2
    else:
        ans += l*2
print(ans)

ループ処理(for文)・分岐処理(if文)を理解していれば解ける問題となっています。また、Cランク相当の問題は四則演算の書き方も知っておく必要があります。

paizaラーニングのPython3の学習講座(無料)でいうと、以下のレッスンを学習するとよいでしょう。

SQL問題

D:魔法使いの街
SELECT id, name FROM Hell;
D:果ての平原
SELECT id, name, str FROM Hell
ORDER BY str DESC
LIMIT 5;
C:砂漠のオアシス
SELECT id, name, cost FROM Hell
WHERE cost <= 10
ORDER BY cost ASC;
C:禁断の洞窟
SELECT Hell.id, Hell.name, Element.name AS element FROM Hell
JOIN Element ON Hell.element_id = Element.id
WHERE Element.name = 'Earth';

SQLの問題はヒントとなる学習講座を問題ページで紹介していますので、そちらも参考にしてみてください。

C・Dの問題をすべて解くとマップはこのようになります。(緑色のアイコンがクリア済です)

B以上は難度が高くなっていくので、初学者の方は「レベルアップ問題集」を使って練習問題をたくさん解いてからチャレンジしてみるのもおすすめです。解答例・解説のある問題も多数ご用意しています。

後日、S・A・Bランク相当の問題の解説も公開しますのでお楽しみに!

paizaのエンタメコンテンツご紹介

paizaでは、他にもエンタメ系コンテンツを多数公開しています!

たとえば、ファンタジー世界を冒険しながらプログラミングの基本を学べる『コードクロニクル』、近未来のアポカリプスな世界観を楽しめる『エンジニアが死滅シタ世界』などが人気です。

また、先日公開した『IT謎解き』はプログラミング問題とはひと味違ったおもしろさがあります。

20220812233128

楽しくプログラミングを学びたい、プログラミングの息抜きにプログラミングをしたい…というときにはぜひご活用ください。

まとめ

paizaがリリースした新作プログラミングゲーム『エンジニア騎士とクエリの魔女』をプレイしてみた感想をお伝えしてきました。

遊んでいる感覚でプログラミングを学べて楽しいですし、新しく学んだり復習したりするきっかけにもなるなと感じました。

プログラミングに興味はあったけどまだやったことがない方、なかなか勉強が続かないと悩んでいる方、そして難度の高い問題を解きたい腕試し派の方も…皆さんぜひ遊んでみてください!


paiza特別お題キャンペーン「ゲームでプログラミング力を試してみよう」

paiza×はてなブログ特別お題キャンペーン「私がハマったゲームたち」「ゲームでプログラミング力を試してみよう」
by paiza





paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。

詳しくはこちら

paizaラーニング

そしてpaizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。

スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。

*1:本記事内の画像は、開発中のものも含まれます。

paizaのおすすめコンテンツ

PPG proken プログラミングゲーム「初恋 プログラミング研究会〜海に行こうよ〜」 PPG Bingo プログラミングゲーム「コードレビューBINGO!!」
paiza転職 paiza新卒 EN:TRY paizaラーニング 記事内に記載している情報は、記事公開時点でのものとなります。 Copyright Paiza, Inc, All rights reserved.