본문 바로가기

* Wargame

코드컴뱃(codecombat) 풀이



페이스북에 떠돌아다니는 코드컴뱃이라는 게임을 해보았습니다.

옛날에도 많이 떠돌았던 것 같은데 그때는 바빠서 못했었고, 지금에서야 해보게되네요!

코드컴뱃(codecombat) 풀이라고 하기엔 너무나 미흡하고 부족하지만 참고가 되었으면 좋겠네요~!

가장 어려웠던 부분하고 까다로웠던 부분을 총정리식으로 해보네요.. 그리고 javascript 코드로 싸운다는것도 신기했던 부분이었다.


Beginner campaign :: Taunt the Guards


이번 문제는 농락하는 가이드편이다.


this.moveRight();

this.bustDownDoor(); //문 부수기


// Delete the "//" in front of each line below.

this.moveRight();

this.say("Hey there!");

this.moveLeft();

this.moveLeft();

this.say("Attack!");


// Now get Phoebe to follow through the dungeon.

this.moveRight();

this.say("Follow me.");  // 기본적인 입력사항

this.moveRight();

this.moveRight();

this.moveUp();

this.moveRight();

this.say("Hey there!");

this.moveDown(); // 다운상태에서 어택을 하라고하면 오크들이 따라오지 않는 버그?!

this.say("Attack!");

this.say("Attack!");

this.say("Follow me."); // 공격후 안따라오길래 넣었습니다.

this.moveRight(); 

this.moveUp();

this.moveRight();


Beginner campaign :: Break the prison


7명의 병사를 구출해야하는데 적들은 탈출시키지않는 문제였다.


// Write this isFriend(name) spell to tell friend from foe.

// Return true for friends' names, false for ogres' names.

if(name === "William"||name==="Lucas"||name==="Marcus"||name==="Robert"||name==="Gordon") // 이름 부분에서 구원할 병사이름을 모두 적었다.

 return true;

    

if(name ==="Krogg") // else if 가 안되길래 이렇게하였다.

    return jump;  // <-- Start here; Krogg is not a friend! 리턴 false 가 안되고, 계속 문을 뿌수길래  jump로 넣어서 점프를 시켰다.



high level random select :: hunter triplets


이리저리 움직이는 적들을 오토타켓으로 하고 자동공격하는 문제였다.


 // This spell runs once per frame.

var enemy = this.getNearestEnemy(); //근처에 있는 적 공격

if (!enemy) return; // 만약 적이 아니면 반환

this.say("Die, " + enemy.id + "!"); // 말하다 '죽이다 적의 아이디!' 

this.setTarget(enemy); // 근처 타겟(적)

this.distanceTo(enemy) // 거리(적)

attackrange; // 공격거리

if(this.distanceTo(enemy) < this.attackRange) // 거리(적) < 공격거리 일 경우 

    this.setAction("attack"); // 선택하여 공격한다. 

    else this.setAction("move"); // 아닐경우 그 장소로 이동을 한다.

// Charge!


high level random select :: emphasis on aim


화살타워는 적들만 골라서 쏘게하는 문제였다.


// The following runs whenever the tower needs

// something to do.


var unit = this.getNearestCombatant(); //근처적과 싸운다.

if (unit && unit.team ==="ogres") { // 유닛과 유닛팀이 ogres = 오크인 경우

    this.say('Perish, ' + unit.id + ' of the ' + unit.team); // 유닛아이디 of the 유닛팀 을 말한다.


        this.attack(unit); // 유닛을 공격한다.

}

else {

    this.say('All clear.'); // 아닐경우 all clear 하다고 말한다.

}


// This tower is too bloodthirsty! 

// Have it check the unit's team before opening fire.

// There are three teams: "ogres", "allies", and "humans".

// If you need help, press Guide at the top.



sword loop


근처있는 적을 자동공격을 하여 8명의 적을 무찔러야하는 문제였다.


// Kill all the ogres.

this.moveDown();

// Now you don't have to write it 5 times. Amazing! Isn't it?

for (var i = 0; i < 6; ++i) {  // Edit the code here. // 6번 반복  

    this.moveRight(); // 오른쪽으로 움직인다.

    this.attackNearbyEnemy(); // 근처적 공격

}


this.moveXY(159,60); // 물약 좌표위치

this.moveXY(160,45); // 적의 위치

this.attackNearbyEnemy(); // 근처적 공격 반복

this.moveXY(183,60);

this.moveXY(184,45);

this.attackNearbyEnemy();

this.moveXY(206,60);

this.moveXY(207,45);

this.attackNearbyEnemy();


// Kill the other ogres.

// Take care of your health also.

// Use a for-loop and you'll kill them all in just a few more lines.


'* Wargame' 카테고리의 다른 글

웹관련 워게임 도움되는 부분  (0) 2012.08.27
wargame.kr 가입문제  (0) 2012.02.21