読者です 読者をやめる 読者になる 読者になる

paiza開発日誌

IT/Webエンジニア向け総合求人・学習サービス「paiza」(https://paiza.jp ギノ株式会社)の開発者が開発の事、プログラミングネタ、ITエンジニアの転職などについて書いています。

初心者向け・Javaの練習問題をたくさん解ける学習サイトと本9選

f:id:paiza:20170523140009j:plain
Photo by Ruth Hartnup
f:id:paiza:20140916135428p:plainこんにちは。谷口です。

先日paizaが行ったアンケートで、「好きなプログラミング言語」の2位(※社会人1位・学生3位)にJavaがランクインしました。
paiza.hatenablog.com

Javaは、1990年代前半にサン・マイクロシステムズ(2010年Oracleにより吸収合併)でジェームズ・ゴスリン氏、ビル・ジョイ氏らによって開発されて以降、長年世界中の幅広い開発分野で使用されています。Javaエンジニアの求人は、これまでは金融関係のシステム(ATM等)などの比較的大規模開発案件が中心でしたが、近年ではAndroidのネイティブアプリ開発現場等でもかなり増加しています。

Javaを習得できれば、Webサービスだけではなく組込み系やデスクトップアプリ等大小様々なシステムに活用することができます。JavaOSに依存せず、ライブラリも豊富なため、開発の幅が広く、有名なサービスではTwitterやEvenoteなどでも使われています。

paizaにも「もっとJavaの勉強がしたい」「Javaでもっといろいろな問題が解きたい」という声が多く寄せられていますので、今回はJavaの練習問題がたくさん解ける学習コンテンツを9件ご紹介します。

【目次】

Javaの問題がたくさん解ける学習コンテンツ

◆プログラミング問題

北ソフト工房 Java 練習問題集

f:id:paiza:20170523121409p:plain
Java用のほかに、C#C言語用の問題なども公開されているサイトです。文法や処理ごとに基礎的な問題がたくさん公開されているので、問題を解きながらJavaを学びたい方は重宝するかと思います。

エンジニアの入り口 【初心者向け】勉強になるJavaの演習問題まとめ

f:id:paiza:20170523121721p:plain
アルゴリズム編・構文編・知識編・オブジェクト指向編の4分野ごとに複数の問題が公開されていますので、たとえば「プログラミングの経験はあるけど、オブジェクト指向言語は使ったことないんだよな~」という場合なども効率よく学べるかと思います。

CodingBat

f:id:paiza:20150902150700p:plain
CodingBatでは、JavaPythonの問題をオンラインで練習することができます。海外のサービスで英語にしか対応していませんが、その場で回答コードを書けば結果を判定してくれますし、とにかくたくさん問題を解いてJavaを使う練習がしたい人にはぴったりだと思います。

paizaのスキルチェック問題


paizaでは、JavaはもちろんPHPRubyPython、C、C++C#JavaScriptなど多数の主要言語に対応したスキルチェック問題を公開しています。

プログラミング問題を解いた結果によりS・A・B・C・D・Eの6段階で自分のスキルのランクが分かります。問題はレベルごとに分かれており、初心者から上級者の方まで挑戦していただけますので、「自分のプログラミングスキルを客観的に知りたい」「とにかくたくさん問題が解きたい」という方は是非チャレンジしてみてください!!

ただ、スキルチェック問題は就職・転職活動におけるスキルレベル測定が目的となっており、プログラミング自体まったく未経験の方が挑戦するには少しハードルが高いかと思いますので、未経験者・初心者の方は、以下のpaizaラーニングコードガールこれくしょんから始めていただくのがよいかと思います。

paizaラーニング


オンラインでプログラミング学習ができる「paizaラーニング」には、JavaはもちろんPHPRubyPythonJavaScript、HTML/CSSSQL、などなど多数の言語から、Webアプリ開発入門、ITエンジニアのキャリア入門などのレッスンもございます。

paizaラーニング」では、動画レッスンを見て、その場でレッスン内容をプログラミングすることで理解を深め、その後に練習問題を解いて応用力をきたえることができます。また、わからない点は担当の現役エンジニアに質問をして、アドバイスをもらうこともできます。

コードガールこれくしょん


paizaが公開しているコードガールこれくしょん略してガルこれは、ナビゲーターと一緒にプログラミング問題を解き、「コードガール」を集めながらストーリーを進めていく、プログラミング学習ゲームコンテンツです。JavaはもちろんPHPRubyPython、C、C++C#JavaScriptに対応しています。

ゲーム内ではクエスト報酬やログインボーナス・ミッションクリア等の各種特典として手に入る「コイン」や「ダイヤ」を使って、ガチャでさまざまな「コードガール」を収集することができます。クエストで有利になる特殊スキルを発動させたり、「これくしょん」に入れてマイページに飾ったりと、コードガールをたくさん集めるほど楽しみ方が広がります。

◆選択問題

TECH Projin Java練習問題

f:id:paiza:20170523125413p:plain
Oracle主催のJavaスキル認定試験の勉強用練習問題が多数公開されています。資格に興味がない人でも問題を解くこと自体はJavaの勉強になりますし、問題が選択式なので気軽に挑戦できます。こちらのサイトは解答に簡単な解説もついていて、問題も最新のものがどんどん追加されているので、私もちょくちょく拝見しています。

はじめてのJava入門

f:id:paiza:20170523130231p:plain
こちらは項目別にわかれたJava問題集です。問題は選択問題か一問一答の記述問題で、Web上で採点してくれます。出題がランダムになっているため、何度か挑戦して完璧を目指すのもよいかと思います。回答欄を埋めないまま模範解答だけ見ようとして解答ボタンを押すと「ちゃんと答えてからね」のポップアップが出るところが好きです…。

◆書籍

◇Java8問題集 理解を深める500問

Java8問題集 理解を深める500問 (SCC Books 388)

Java8問題集 理解を深める500問 (SCC Books 388)

基礎的なコードの書き方の勉強が一通り終わって、問題をたくさん解いてみたい人、なかでも書籍を通して体系的に勉強したいという人はこちらがおすすめです。知識が問われる記述式の問題とプログラミング問題があわせて500問されています。

■まとめ

前述の通りJavaは開発の幅が非常に広いため、募集求人も多く、習得できればエンジニアとしての対応範囲も格段に広がるかと思います。ご興味のある方はぜひともJavaの学習を始めてみてください、そしてある程度の基礎が身につきましたら、ぜひpaizaでご自分のスキルをはかってみてくださいね。





paizaラーニング」では、今回の記事でご紹介したJavaやその他の人気言語を中心に、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。

また現在、普段有料公開しているHTML/CSSJavaScriptPHP、DB/SQL、Webアプリ開発入門(PHP+MySQL編)のレッスンを、期間限定で連続無料公開中ですのでぜひごらんください。

↓詳しくはこちら
paiza.jp

そして、paizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。
paiza.jp
スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。

ITプログラマ・エンジニア向け転職・就活・学習サービスのpaiza

未経験者がITエンジニアとして転職するために必要なたった一つの方法

f:id:paiza:20170522121636j:plain
Photo by Oregon State University
f:id:paiza:20140916135428p:plainこんにちは。谷口です。

最近「開発経験のない分野へ転職したい」(例えば業務系システム開発→ゲーム開発など)という方や、「開発業務自体が未経験だけど、ITエンジニアとして転職したい」という方が増えてきました。

そんな中で、paiza運営事務局に多く聞かれるのが

「経験のない分野への転職は、無理なのでしょうか?」

という質問です。

結論から言うと、無理ではありません。実際に、経験のない分野への転職に成功し、活躍しているエンジニアの方はたくさんいます。

ただし、誰でも簡単に未経験分野のエンジニアになれる…というわけではありません。

未経験OKだからといって、ただやる気をアピールできればエンジニアとして採用されると思っていませんか? そう思っている人は、応募するのを少し待ってください。もし、そのままのあなたが今応募をしても、内定をもらうのは恐らく無理です。

採用に至るには、企業に「未経験者だけど、この人になら業務を任せられそうだな」と思ってもらえなければいけないのですが、「転職活動がなかなかうまくいかない…」という人のお話を聞いていると「この人になら任せられそう」と企業に思われるようなポイントが、ほとんどありません。

では、どうすれば未経験分野へ転職できるのか。「この人になら任せられそう」と思ってもらえるのか。今回はこのテーマでお話ししていきます。

■どうすれば未経験分野へ転職できるのか?

f:id:paiza:20170522121937j:plain
Photo by Arden
まず、未経験者の採用面接で、企業側が重視しているポイントから見ていきましょう。

◆未経験者の面接で重視されるポイント

  • なぜその分野のエンジニアになりたいのか(熱意)
  • なぜその分野の中で、この企業を選んだのか(志望動機)

この辺りは、IT業界かどうかを問わず重視されるポイントですね。

未経験から目指すのであれば、当然何かしらの理由や希望があるかと思います。どうして転職に至ったのか、どうしてその分野がいいのか、応募先のどういうところがいいと思って応募したのか、などなど。面接で聞かれて答えに詰まってしまわないように、書き出して明確にしておきましょう。これは、IT業界やエンジニアに限らず必要なことです。

加えて、エンジニアとして未経験分野への転職を目指す場合は、次のポイントがかなり重要です。

・その分野のエンジニアになるために、どんな勉強をしているのか

転職活動がうまくいかない人の多くは、このアピールが圧倒的に不足しています。

「この分野に興味があります!この仕事がやりたいです!」とだけ言えれば採用してもらえるわけではありません。興味があるとか、やる気があるとか、言うだけなら誰でも言えます。

重要なのは、「やりたい」ことと「できる」ことは違うということです。「やりたい」アピールももちろん大切ではありますが、エンジニアとして未経験分野へ転職する際に必須なのが「できる」証拠としてのアウトプットです。

このアウトプットとは、具体的に言うと自分で手を動かして作った成果物や、自分で勉強している内容などについてのお話です。未経験からの転職を成功させた人は、ほとんどが面接でこの「できる」証拠をアウトプットしています

■未経験者に必要なアウトプットとは

f:id:paiza:20170522122425j:plain
Photo by IDM Südtirol - Alto Adige : ICT & Automation

◆経験がないなら自分から作る

一度、自分が採用する側だったら…という目線で考えてみてほしいのですが、企業が新卒以外でまったくの未経験者を技術専門職として採用したいと思うでしょうか。思わないですよね。できることなら同じような業務経験があって、すぐに即戦力として働いてくれそうな人を採用したいと思いますよね。未経験者だけど経験者に追いつけそうだ(もしくはすでに追い越している)と企業にアピールできなければ、経験者たちをさしおいて採用されるのは難しいです。

エンジニアであれば、独学で業務に必要な知識をある程度勉強できます。もちろんチームでの開発や業務としての開発でなければ学べない部分もあり、すべて独学でなんとかなるわけではありませんが、「本気でこの分野へ転職したい!」と考えている人は、自分でできる限りの勉強をしていますし、手を動かしてモノを作っています。そういう人だからこそ企業も評価してくれるのです。

ちなみにこういう話をすると、下記のような「やっていない理由」を並べてくる人もいますので、それに対する返答もお話ししておきます。

・「そんなこと言われても、未経験だから大したもの作れないもん…」

そもそも企業側も、業務未経験の人がベテランエンジニアと同じレベルの成果物を作れるとは思っていません。

ただ、自分では大したことがないと感じる成果物でも、自分で勉強して、手を動かしてモノを作ってみた経験がある人と、「興味はあります、やりたいとは思っています(やるとは言ってない)」みたいな人には雲泥の差があります。

「大したことない成果物しかできないのに、何がアピールできるの…」

自分で勉強していることや、自分で作った成果物があれば、

  • なぜこれを勉強しようと思ったのか、作ろうと思ったのか
  • この成果物を作るためにどんな勉強をしたか
  • 勉強したり手を動かしたりしていて、どんなところが楽しかったか、難しかったか

……などなど、経験がなくても技術について話せることが増えますし、何より
自分で勉強したり、モノを作ったりするぐらいの興味とやる気がある
というアピールになります。

「興味はあります(キリッ」だけで何の勉強もしてない応募者には、このアピールはできません。

たとえ思ったとおりに作れなかったとか、完成させられなかったとかいう経緯があっても、何度も言いますが何もしていない人よりはよほどアピールになります。

未経験者を採用した場合、企業はその人に対して、本当にたくさんの仕事を教え込まなければなりません。

そんな企業が「興味はあります(キリッ」だけで「受け身で自分から勉強する気がなさそう」な応募者を、わざわざ採用して教育したいとは思われませんよね。むしろ「この人には教えても無駄そう……」と思われるかもしれません。

逆に自分から勉強している人の場合は、アウトプットが「自分はまだスキル不足かもしれませんが、キャッチアップする気満々です!」という証明になり、企業にも「業務経験はないかもしれないけど、キャッチアップが早そうだから、教えれば大丈夫そう」と思ってもらえる可能性が上がります。

◆未経験者は何を勉強すべきか

ではどんな内容を勉強すればよいのかですが、「プログラミング自体が初心者だから、基礎から勉強したい」といった場合も、最近はコードの書き方などの基本的なところから独学で学べるコンテンツが増えていますので、まずは自分で手を動かしてみることが重要です。

◇プログラミング未経験者の場合


paizaラーニングは一回3分程度の動画を見ながらブラウザ上で演習問題を解き、すぐに実行して結果を見ることができます。未経験者でもブラウザさえあれば、環境構築不要で手を動かしながらプログラミングの基礎を習得できます

paizaラーニングでは、ただいま有料講座をそれぞれ期間限定で連続無料公開中です。
無料公開される講座と無料期間のスケジュールはこちら

◇プログラミング経験がある人の場合

たとえばRailsでサービスを作っている企業に入社したいのであれば、Railsを使った開発手法を学んだり、ゲーム開発がしたい人は自分でゲームを作ってみた……といった感じで、当然ですが、自分の進みたい分野についての勉強をするのが一番です。

Web開発における勉強がしたい方、動くものを作ってみたい方は、このブログで以前書いた記事も参考になるかと思います。
paiza.hatenablog.com

paiza.hatenablog.com


また、「成果物はいくつかあるけど、見せ方がわからない」人は、ポートフォリオページを作っておけば応募や面接でアピールをするときに役立ちます。paizaラーニング「ポートフォリオ制作」講座では、ポートフォリオページの作り方を解説しています。
paiza.jp

■まとめ

企業側は、どんなに意識が高いことを言っていても、自分からまったく手を動かせていないような応募者を採用したいとは思いません。

これはエンジニアに限ったことではありません。中途で専門職を目指そうと思ったとき、他の業界や職種の場合は、未経験者だと現実的に難しかったり、改めて学校に通う必要があったりする場合も多いかと思います。

逆に言えば、プログラミングや開発手法は業務経験がなくても独学で実践できるため、他業種からエンジニアへのキャリアチェンジはしやすいとも言えます。分野にもよりますが、本当に興味がある人なら未経験からの転職を目指すことが可能です。

未経験からの転職を成功させたい場合、まずは自分が進みたい方向性を明らかにした上で、そのために必要な知識や技術にはどんなものがあるのか、自分にはどの要素が足りていないのか、どんな勉強が必要なのかを知ることが重要です。


プログラミングが動画で学べる「paizaラーニング」では、普段有料公開しているHTML/CSSJavaScriptPHP、DB/SQL、Webアプリ開発入門(PHP+MySQL編)のレッスンを、期間限定で連続無料公開しております!

無料公開期間:HTML/CSS入門編


動画レッスン名無料期間
HTML/CSS入門編1いつでも無料
HTML/CSS入門編25/16(火)~5/18(木)まで無料
HTML/CSS入門編35/19(金)~5/22(月)まで無料

無料公開期間:JavaScript入門編


動画レッスン名無料期間
JavaScript入門1いつでも無料
JavaScript入門25/23(火)~5/25(木)まで無料

無料公開期間:PHP入門編


動画レッスン名無料期間
PHP入門15/26(金)~5/29(月)まで無料
PHP入門25/30(火)~6/1(木)まで無料
PHP入門36/2(金)~6/5(月)まで無料
PHP入門46/6(火)~6/8(木)まで無料
PHP入門56/9(金)~6/12(月)まで無料

無料公開期間:DB/SQL入門編


動画レッスン名無料期間
DB/SQL入門編16/13(火)~6/15(木)まで無料
DB/SQL入門編2いつでも無料

無料公開期間:Webアプリ開発入門 PHP+MySQL編


動画レッスン名無料期間
Webアプリ開発入門 PHP+MySQL編16/16(金)~6/19(月)まで無料



paizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。
paiza.jp
スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。

ITプログラマ・エンジニア向け転職・就活・学習サービスのpaiza

WebストラテジーゲームでJavaScriptが学べる「Empire of Code」の遊び方を大公開!

f:id:paiza:20170518164152j:plain
どうも、まさとらん(@0310lan)です。

今回は、基本的なプログラミングに慣れてきて、「次に何しようかな…?」と考えている人に最適なWebサービスをご紹介しようと思います!

ブラウザから遊べる「ストラテジーゲーム(戦略ゲーム)」なのですが、自軍の兵士たちを自分でプログラミングすることで、自由自在に操作することができるという異色のサービスになっています!

Empire of Code

f:id:paiza:20170518164238j:plain
プログラミング初心者向けではないのですが、PythonJavaScriptの基本的な文法を把握している人であれば誰でも楽しめますよ!

■「Empire of Code」の始め方!

それでは、実際に試しながら、どのようなサービスなのかを詳しく見ていきましょう!

まず最初に、サイトへアクセスして「START NEW GAME(ゲーム開始)」ボタンをクリックします。
f:id:paiza:20170518164257j:plain


すると、コミカルな漫画でストーリーが始まります。
f:id:paiza:20170518164307j:plain


そして、そのままゲームの「チュートリアル」に入ります。
f:id:paiza:20170518164319j:plain
初めての人でも、このチュートリアルを行うことで、一通りの基本的なゲームの遊び方が分かるようになっています。


チュートリアルの最後にチームの選択画面になり、「Python」か「JavaScript」どちらかのチームに入ることになります。
f:id:paiza:20170518164331j:plain
プログラムを作成する時に使う言語になるので、自分の得意なプログラミング言語を指定するといいでしょう。


チュートリアル終了後は、自軍の基地をパワーアップさせたり、敵軍に攻め込んだりしながら少しずつチームを強くしていくのが目的となります。
f:id:paiza:20170518164342j:plain


ちなみに、ゲームの進捗を保存するには無料の「ユーザー登録」が必要なので、画面上部のリンクから済ませておきましょう!
f:id:paiza:20170518164353j:plain

■兵士をプログラミングしよう!

それでは早速ですが、このゲーム最大の醍醐味である「兵士」たちをプログラミングしてバトルを始めてみましょう!

兵士をプログラミングするには、「Craft Pad」と呼ばれる施設を選択して、表示されるコードアイコンをクリックします。
f:id:paiza:20170518164414j:plain


すると、プログラム一覧が表示されるので、「Create new(新規作成)」を選択してファイル名を付けましょう。
f:id:paiza:20170518164424j:plain


こちらが、プログラムを作成するエディタになります!
f:id:paiza:20170518164435j:plain
基本的には、右側の「ドキュメント」を読みながら「コードエディタ」にプログラムを記述していき、「console.log()」などを使って画面下の「コンソールビュー」で確認していくという流れです。


今回は最初から作成していくので、上から3行目までは残してあとは削除しておきます。
f:id:paiza:20170518164447j:plain
この3行は、初期設定やゲーム情報を取得するためのインスタンスを作成している部分になるので、そのままにしておきましょう。


Empire of Code」のバトルにおいて、最終目標は相手の「コマンドセンター」を破壊することです。
f:id:paiza:20170518164459j:plain


そこでまずは、敵軍の「コマンドセンター」の情報を取得し、そこへ兵士たちを移動させて攻撃するというプログラムを作りましょう!

//コマンドセンターの情報を取得する
var center = client.askCenter();


//「ID」を取得し、兵士を攻撃に向かわせる
client.doAttack( center.id );

便利なメソッドがたくさん用意されているので、プログラム自体は簡単です。

敵軍のコマンドセンターの情報を取得するメソッドは「askCenter()」で、返り値としてオブジェクトを取得できます。

兵士を攻撃させるメソッドは「doAttack()」を使うのですが、引数に先ほど取得したオブジェクトにある「ID」を指定すればOKです!


そして、プログラムを記述したら、必ず「①Check」をクリックして「②Results」が成功するかどうかを確認しましょう!
f:id:paiza:20170518164538j:plain


注意が必要な点として、さきほど新規に作成したファイルが「Active」になっているかを確認しておきましょう!
f:id:paiza:20170518164549j:plain
これが「Active」になっていないと、自分の書いたコードは実行されないので要チェック!

そして、いざ敵軍に攻め込めば、プログラム通りに「コマンドセンター」を最初に攻撃してくれるわけです!
f:id:paiza:20170518164605g:plain
しかし、現状のプログラムだと、「コマンドセンターを攻撃する」という指示しか出していないので、敵の攻撃に対して無防備です。

そこで、もう少しプログラムを改良する必要があるでしょう。

■プログラムをバージョンアップしよう!

さて、現在のプログラムの問題点ですが、例えば敵側の「コマンドセンター」付近に防御設備の「銃器」があると、一方的に攻撃を受け続けてしまいます。
f:id:paiza:20170518164642j:plain
なぜなら、「コマンドセンターを攻撃する」というプログラムしか記述していないからですね。


このような場合、先に「防御設備(銃器)」を破壊してから「コマンドセンター」を攻撃するのが良いでしょう。

そこで、敵側の「防御設備」の情報を取得するメソッドが「askTowers()」です。

var enemy = client.askTowers();

このように記述すると、防御設備の情報が「配列のオブジェクト」として取得することができます。


そのため、次のように記述すれば防御設備を攻撃することができますね。

//敵側の防御設備の情報を取得する
var enemy = client.askTowers();


//1つ目の防御設備を攻撃する
client.doAttack( enemy[0].id );

しかし、ここで注意点が1つあります!


次のように記述すると、「防御設備」を破壊してから「コマンドセンター」を攻撃できるように思います。

var center = client.askCenter();
var enemy = client.askTowers();




client.doAttack( enemy[0].id ); //防御設備を攻撃
client.doAttack( center.id ); //コマンドセンターを攻撃

しかし、兵士たちは「最後に指示された行動しかできない」…という設計になっているのです。

つまり、上記のプログラムだと、最後に指示されている「コマンドセンターを攻撃する」という行動しかできないわけです。


そこで、「○○をしたら○○をする」という行動を指示できるメソッドがいくつか用意されており、今回は「whenItemDestroyed()」を使うことで解決します。

これは施設を破壊した後に、何らかの指示を出すことができるメソッドなので、「防御設備を破壊したらコマンドセンターを攻撃せよ!」…というプログラムを作成することができるわけですね。


再帰処理を使って次のようなプログラムを作ることが出来るでしょう。

var center = client.askCenter();


//関数「attack」を作成
function attack() {
    var enemy = client.askTowers();
    
    //防御設備の数が「0」かどうかを確認
    if( enemy.length ) {
        client.doAttack( enemy[0].id );
    }
    else {
        client.doAttack( center.id );
    }
    
    //防御設備を破壊したら、再度「attack関数」を呼び出す
    client.whenItemDestroyed( enemy[0].id ).then( attack );
}


attack();

「askTowers()」で存在する防御設備をすべて取得すると、配列のオブジェクトで返してくれるので、「length」を使って「0」になるまで破壊を続けるようにしています。

そして、破壊する度に「then()」で同じ関数を再度呼び出し、防御設備が無くなったら「コマンドセンター」を攻撃するという流れです。

このように記述しておけば、敵側の基地に銃器があっても先に破壊してくれるようになります!
f:id:paiza:20170518164804g:plain
ただし、敵側の基地の状態によっては、銃器を無視して先に他の設備を破壊した方が良いケースもあるし、特定の銃器だけを先に攻撃する場合もあるでしょう。

そのため、敵の状況によってプログラムもそれに最適化しながら戦いに挑まなければいけないわけです。

これこそが、「Empire of Code」の最も面白い部分であり、プログラミングの学習におすすめする理由です。

■施設のアップグレードについて!

自軍の基地は、さまざまな施設を設置できるのですが、アップグレードすることで性能がどんどん向上するようになっています。

面白いのはそのアップグレード方法で、これもプログラムを作成することで実行できるようになっているのです!


まず、各施設をクリックして表示される「コードアイコン」をクリックします。
f:id:paiza:20170518164855j:plain


すると、さまざまなアルゴリズムの問題が表示されるので、現在プレイができる問題をクリックしましょう。
f:id:paiza:20170518164908j:plain


先ほど兵士をプログラミングしたエディタと同じ画面になります。
f:id:paiza:20170518164918j:plain
左側のコードエディタで、右側に表示されているアルゴリズムの問題を解決するプログラムを記述します。


今回は、「2つの数値の最大値を返す」という関数を作る問題だったので、次のような簡単なプログラムを作りました。

function myMax(a, b) {


    var result = Math.max( a, b );
    return result;


}


そして、プログラムを実行し問題が無ければ「成功」となり、施設がアップグレードされるわけです!
f:id:paiza:20170518164948j:plain
このように、どんどん問題を解決していき、自軍の基地をパワーアップしていくとさらにゲームが楽しくなるでしょう。

paizaでもプログラミング×異世界転生ファンタジーRPGロジックサマナー~閃光の召喚プログラマ』公開中!


突然迷い込んだ異世界。
そこではプログラミングコードが『詠唱魔法』だった――
コード詠唱で召喚獣を解放せよ!

ロジックサマナー~閃光の召喚プログラマ』は、さまざまな難易度の封印(※プログラミング問題)を解くことで進める異世界ファンタジーRPGです。

主人公はひょんなことから異世界に迷い込んだITエンジニア。異世界では、なんとプログラミングしたコードが召喚獣を呼び出すための詠唱魔法だった!?

召喚魔法(※プログラミング)が使える主人公は急に世界を救う伝説の召喚士として盛大に歓迎されてしまい……

あなたのプログラミングスキルを駆使しながら、世界に平和を取り戻しましょう!

ゲームはメインシナリオ以外にも、高難度問題の解答スコアを競うランキングモードがあり、世界中のプレイヤーとプログラミングスキル対決ができます。また、プレイスタイルに応じた称号システムやキャラクター・アイテムのコレクションなども可能!

ロジックサマナー~閃光の召喚プログラマ』のリリースを記念して、最大1万円分のAmazonギフト券が当たるリリース記念キャンペーンを実施します。
期間内にゲーム内のTweetボタンからハッシュタグ「#コード詠唱」を付けてツイートした方の中から、抽選で1名様に1万円分、50名様に500円分のAmazonギフト券をプレゼントいたします!

paiza.jp

■まとめ

今回ご紹介した「Empire of Code」で、兵士たちをプログラミングしていくコツとして「ask、do、when」の3つのキーワードを意識してみてください。

「ask〜」で情報を取得し、「do〜」で行動し、「when〜」で複数の行動を連結するような感じをイメージすると良いでしょう。

まだベータ版のサービスですが、フォーラムが用意されているので分からないことがあれば、ユーザー同士で解決するようなスタイルが利用できます。

プログラミングに興味ある方は、ぜひ一度トライしてみてください!

<参考>




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

もちろん今回の記事で使用したJavaScriptやHTMLなど、言語ごとに基礎を学べる入門講座も好評公開中です!

↓詳しくはこちら
paiza.jp

そして、paizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。
paiza.jp
スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。

ITプログラマ・エンジニア向け転職・就活・学習サービスのpaiza

プログラミング入門講座|paizaラーニング

PHP入門編Ruby入門編Python入門編Java入門編JavaScript入門編C言語入門編C#入門編アルゴリズム入門編