paiza開発日誌paiza開発日誌IT/Webエンジニア向け総合求人・学習サービス「paiza」の開発者が、プログラミングやITエンジニアの転職などについて書いています。ITエンジニア向け総合求人・学習サービス「paiza」の開発者が、プログラミングやITエンジニアの転職などについて書いています。プログラミングTweetどうも、まさとらん(@0310lan)です。GAME(ゲーム開始)」ボタンをクリックします。すると、コミカルな漫画でストーリーが始まります。そのままゲームの「チュートリアル」に入ります。人でも、このチュートリアルを行うことで、一通りの基本的なゲームの遊び方が分かるようになっています。チュートリアルの最後にチームの選択画面になり、「Python」か「JavaScript」どちらかのチームに入ることになります。プログラムを作成する時に使う言語になるので、自分の得意なプログラミング言語を指定するといいでしょう。チュートリアル終了後は、自軍の基地をパワーアップさせたり、敵軍に攻め込んだりしながら少しずつチームを強くしていくのが目的となります。Pad」と呼ばれる施設を選択して、表示されるコードアイコンをクリックします。new(新規作成)」を選択してファイル名を付けましょう。こちらが、プログラムを作成するエディタになります!基本的には、右側の「ドキュメント」を読みながら「コードエディタ」にプログラムを記述していき、「console.log()」などを使って画面下の「コンソールビュー」で確認していくという流れです。今回は最初から作成していくので、上から3行目までは残してあとは削除しておきます。この3行は、初期設定やゲーム情報を取得するためのインスタンスを作成している部分になるので、そのままにしておきましょう。Code」のバトルにおいて、最終目標は相手の「コマンドセンター」を破壊することです。);便利なメソッドがたくさん用意されているので、プログラム自体は簡単です。敵軍のコマンドセンターの情報を取得するメソッドは「askCenter()」で、返り値としてオブジェクトを取得できます。兵士を攻撃させるメソッドは「doAttack()」を使うのですが、引数に先ほど取得したオブジェクトにある「ID」を指定すればOKです!そして、プログラムを記述したら、必ず「1Check」をクリックして「2Results」が成功するかどうかを確認しましょう!注意が必要な点として、さきほど新規に作成したファイルが「Active」になっているかを確認しておきましょう!これが「Active」になっていないと、自分の書いたコードは実行されないので要チェック!そして、いざ敵軍に攻め込めば、プログラム通りに「コマンドセンター」を最初に攻撃してくれるわけです!しかし、現状のプログラムだと、「コマンドセンターを攻撃する」という指示しか出していないので、敵の攻撃に対して無防備です。そこで、もう少しプログラムを改良する必要があるでしょう。■プログラムをバージョンアップしよう!さて、現在のプログラムの問題点ですが、例えば敵側の「コマンドセンター」付近に防御設備の「銃器」があると、一方的に攻撃を受け続けてしまいます。「コマンドセンターを攻撃する」というプログラムしか記述していないからですね。このような場合、先に「防御設備(銃器)」を破壊してから「コマンドセンター」を攻撃するのが良いでしょう。そこで、敵側の「防御設備」の情報を取得するメソッドが「askTowers()」です。client.askTowers();このように記述すると、防御設備の情報が「配列のオブジェクト」として取得することができます。そのため、次のように記述すれば防御設備を攻撃することができますね。);しかし、ここで注意点が1つあります!次のように記述すると、「防御設備」を破壊してから「コマンドセンター」を攻撃できるように思います。//コマンドセンターを攻撃しかし、兵士たちは「最後に指示された行動しかできない」...という設計になっているのです。上記のプログラムだと、最後に指示されている「コマンドセンターを攻撃する」という行動しかできないわけです。そこで、「○○をしたら○○をする」という行動を指示できるメソッドがいくつか用意されており、今回は「whenItemDestroyed()」を使うことで解決します。これは施設を破壊した後に、何らかの指示を出すことができるメソッドなので、「防御設備を破壊したらコマンドセンターを攻撃せよ!」...というプログラムを作成することができるわけですね。再帰処理を使って次のようなプログラムを作ることが出来るでしょう。);}attack();「askTowers()」で存在する防御設備をすべて取得すると、配列のオブジェクトで返してくれるので、「length」を使って「0」になるまで破壊を続けるようにしています。破壊する度に「then()」で同じ関数を再度呼び出し、防御設備が無くなったら「コマンドセンター」を攻撃するという流れです。このように記述しておけば、敵側の基地に銃器があっても先に破壊してくれるようになります!ただし、敵側の基地の状態によっては、銃器を無視して先に他の設備を破壊した方が良いケースもあるし、特定の銃器だけを先に攻撃する場合もあるでしょう。そのため、敵の状況によってプログラムもそれに最適化しながら戦いに挑まなければいけないわけです。Code」の最も面白い部分であり、プログラミングの学習におすすめする理由です。■施設のアップグレードについて!自軍の基地は、さまざまな施設を設置できるのですが、アップグレードすることで性能がどんどん向上するようになっています。面白いのはそのアップグレード方法で、これもプログラムを作成することで実行できるようになっているのです!まず、各施設をクリックして表示される「コードアイコン」をクリックします。すると、さまざまなアルゴリズムの問題が表示されるので、現在プレイができる問題をクリックしましょう。先ほど兵士をプログラミングしたエディタと同じ画面になります。左側のコードエディタで、右側に表示されているアルゴリズムの問題を解決するプログラムを記述します。今回は、「2つの数値の最大値を返す」という関数を作る問題だったので、次のような簡単なプログラムを作りました。result;}そして、プログラムを実行し問題が無ければ「成功」となり、施設がアップグレードされるわけです!このように、どんどん問題を解決していき、自軍の基地をパワーアップしていくとさらにゲームが楽しくなるでしょう。■paizaでもプログラミング×異世界転生ファンタジーRPG『ロジックサマナー~閃光の召喚プログラマ』公開中!突然迷い込んだ異世界。そこではプログラミングコードが『詠唱魔法』だった――コード詠唱で召喚獣を解放せよ!『ロジックサマナー~閃光の召喚プログラマ』は、さまざまな難易度の封印(※プログラミング問題)を解くことで進める異世界ファンタジーRPGです。主人公はひょんなことから異世界に迷い込んだITエンジニア。異世界では、なんとプログラミングしたコードが召喚獣を呼び出すための詠唱魔法だった!?召喚魔法(※プログラミング)が使える主人公は急に世界を救う伝説の召喚士として盛大に歓迎されてしまい......あなたのプログラミングスキルを駆使しながら、世界に平和を取り戻しましょう!ゲームはメインシナリオ以外にも、高難度問題の解答スコアを競うランキングモードがあり、世界中のプレイヤーとプログラミングスキル対決ができます。プレイスタイルに応じた称号システムやキャラクター・アイテムのコレクションなども可能!『ロジックサマナー~閃光の召喚プログラマ』のリリースを記念して、最大1万円分のAmazonギフト券が当たるリリース記念キャンペーンを実施します。Code」で、兵士たちをプログラミングしていくコツとして「ask、do、when」の3つのキーワードを意識してみてください。「ask〜」で情報を取得し、「do〜」で行動し、「when〜」で複数の行動を連結するような感じをイメージすると良いでしょう。ベータ版のサービスですが、フォーラムが用意されているので分からないことがあれば、ユーザー同士で解決するようなスタイルが利用できます。Code」公式サイト「paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数用意しております。今回の記事で使用したJavaScriptやHTMLなど、言語ごとに基礎を学べる入門講座も好評公開中です!そして、paizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。15:30Tweet関連記事2022-06-22完全無料!JavaScriptで独自コマンドをNotionに追加できる「Slashy」を使ってみた!どうも、まさとらん(@0310lan)です!今回は、ドキュメントサ...2022-04-13究極のローコード開発環境「Autocode」でNotionと連携するDiscordボットを開発してみ...どうも、まさとらん(@0310lan)です!今回は、わずかなプログ...2022-02-24JavaScriptで壮大なハッキング体験を実現するWebゲーム「Bitburner」で遊んでみた!どうも、まさとらん(@0310lan)です!今回は、ブラウザ上から...2020-01-18初心者でもシェルコマンド・スクリプトの使い方が学べる入門レッスンこんにちは。今回は、これからシェルに入門したい方...2019-08-26プログラミング初心者でも簡単・Linuxでコマンドを自作する方法もじゃ(@s10akir)です。記事内に記載している情報は、記事公開時点でのものとなります。reserved.引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。