codecombat-top

プログラミングの学習を、Webゲーム感覚で気軽に始められるサービス「CodeCombat」の攻略記事です。(無課金でも楽しめるステージのみを紹介しています…)

今回は、Part2ということで、キースガード編の「Kithgard Librarian」から最終面の「キスガードの門」までを1つずつ攻略していきます!

codecombat-dungeons-of-kithgard

恐ろしい扉

巨大な扉が道を塞いでいるので、攻撃を繰り返して破壊する必要があります。

そこで、「扉」を敵キャラとして「attack()」コマンドを利用します。

loop {
    this.attack("Door");
}

これでOK!


名前の知られた敵

ここから、情報の一時保管場所である「変数」を使ったコードに挑戦していきます。

このステージでは、敵キャラの名前を変数に入れておき、attack()コマンドで変数を再利用していくことになるでしょう。

var enemy1 = "Kratt";
var enemy2 = "Gert";
var enemy3 = "Ursa";

this.attack(enemy1);
this.attack(enemy1);
this.attack(enemy2);
this.attack(enemy2);
this.attack(enemy3);
this.attack(enemy3);

名前のマスター

このステージから、敵キャラの名前が分からない状況になります。

しかし、新しく覚えたちょっと長いコマンド「findNearestEnemy()」を利用することで、自動的に敵キャラの名前が得られるようになります。つまり、これを変数に入れることで、attack()コマンドで攻撃できるというわけです。

var enemy1 = this.findNearestEnemy();
this.attack(enemy1);
this.attack(enemy1);

var enemy2 = this.findNearestEnemy();
this.attack(enemy2);
this.attack(enemy2);

var enemy3 = this.findNearestEnemy();
this.attack(enemy3);
this.attack(enemy3);

少しずつ、プログラミングらしくなってきました…。


ちなみに、変数を使わなくても良いことに気づいた人は、将来エンジニアに向いているかもしれません

loop {
    this.attack(this.findNearestEnemy());
    this.attack(this.findNearestEnemy());
}

わずか4行でも、同じことが可能ですね。


雑魚なキス人

このステージも、敵キャラの名前を変数に入れて攻撃すれば良いでしょう。

var enemy1 = this.findNearestEnemy();
this.attack(enemy1);
this.attack(enemy1);

var enemy2 = this.findNearestEnemy();
this.attack(enemy2);
this.attack(enemy2);

this.moveRight();
this.moveDown();
this.moveRight();

今回も、変数を使わずにloopコマンドで出来そうですが、ジェムを取得しないといけないので、このままのコードにしておいた方が無難でしょう。


接近

このステージでは、弓を持った新しい敵キャラが現れます。

弓兵は、遠方から攻撃してきますが、1回の攻撃で倒せるので強引に近づけばあっさり倒せます。

this.moveRight();

var enemy1 = this.findNearestEnemy();
this.attack(enemy1);
this.attack(enemy1);

this.moveRight(2);

var enemy2 = this.findNearestEnemy();
this.attack(enemy2);

this.moveRight();

A Mayhem of Munchkins

大量の敵キャラが次々と向かってくるので、すべての敵を倒す必要があります。

しかし、コードは超簡単に組み立てられます。

loop {
    this.attack(this.findNearestEnemy());
}

このように、loopコマンドで繰り返し攻撃をするだけという内容…。


最後のキスメーズ

キースガード編も、いよいよ終盤です。

今まで覚えた内容を元に、ステージを攻略しましょう!

loop {
    this.moveRight();
    this.moveUp();
    this.attack(this.findNearestEnemy());
    this.attack(this.findNearestEnemy());
    this.moveRight();
    this.moveDown(2);
    this.moveUp();
}

ステージの構造把握と、loop、敵キャラ攻撃…と、いろいろな複合技になってますね。


キスガードの門

ついに、キースガード編の最終面です!

最後に、防御壁を作れる新コマンド「buildXY()」が使えるようになっています。これは、座標を指定すればそこへ防御壁を自動的に作れるようになります。

this.moveDown();
this.buildXY("fence", 36, 34);
this.buildXY("fence", 36, 31);
this.buildXY("fence", 36, 27);
this.moveRight(3);

座標は、マウスを任意の場所へ持って行くと表示されます。あとは、右方向へ移動して次の新しいステージへ向かいましょう!


「辺境の森林編Part1」に続く…

「CodeCombat攻略まとめ」はこちら!