您的位置:首页 > 编程语言

codecombat之Sarven沙漠1-12关代码分享

2015-08-28 12:17 519 查看
codecombat中国游戏网址:http://www.codecombat.cn/

所有代码为javascript代码分享

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1、沙丘

// 收集硬币,忽略砂耗牛和树榴。和投掷者,食人魔战斗。

loop {

enemy = this.findNearestEnemy();

item = this.findNearestItem();

flag = this.findFlag();

if (flag) {

this.pickUpFlag(flag);

}

if (enemy) {

if (enemy.type == "sand-yak" || enemy.type == "burl") {

// 别和砂耗牛,树榴打!赶紧收集硬币。

if (item) {

// 收集钱币。

var itemp = item.pos ;

var x = itemp.x ;

var y = itemp.y ;

this.moveXY(x, y);

}

}

// 但如果敌人的类型是『投掷者』或者『食人魔』,攻击他们

else {

if (this.isReady("cleave")) {

this.cleave(enemy);

}

if (this.isReady("bash")) {

this.bash(enemy);

}

else {

this.attack(enemy);

}

}

} else if (item) {

// 收集钱币。

var itempos = item.pos ;

var x1 = itempos.x ;

var y1 = itempos.y ;

this.moveXY(x1, y1);

}

}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

2、强壮的沙牦牛

// 当牦牛靠近时向右移动10米来躲避

// 躲避4头牦牛完成此关

loop {

// 使用 if 仅仅当牦牛少于10米距离的时候。

var enemy = this.findNearestEnemy();

var distance = this.distanceTo(enemy);

if (distance < 10) {

var x = this.pos.x + 10;

var y = this.pos.y;

this.moveXY(x, y);

}

// 向右移动加上你当前的 X 坐标

// 使用的灵石来感知 this.pos.

}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

3、绿洲

// 向绿洲移动

// but move left to avoid nearby yaks.

loop {

var enemy = this.findNearestEnemy();

if (enemy && this.distanceTo(enemy) < 10) {

// 通过在你的X坐标上减去10来移动到左边

var x =this.pos.x - 10 ;

var y =this.pos.y ;

this.moveXY(x, y);

} else {

// 通过在你的X坐标上加上10来移动到右边

var x1 = this.pos.x + 10 ;

var y1 = this.pos.y ;

this.moveXY(x1, y1);

}

}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

4、萨文路

// 到达绿洲。小心新的敌人:食人魔侦察兵!

// 通过添加你当前的X位置和Y位置以向上向右走

loop {

// 攻击任何你看到的敌人,或者一直向上向右走

var enemy = this.findNearestEnemy();

if (enemy) {

if (this.isReady("cleave")) {

this.cleave(enemy);

}

if (this.isReady("bash")) {

this.bash(enemy);

}

else {

this.attack(enemy);

}

}

else {

var x = this.pos.x + 10;

var y = this.pos.y + 10;

this.moveXY(x, y);

}

}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

5、Sarven 的距离

// 每次向下移动10米,来走到绿洲。

// 在每个食人魔左边20米的位置建造栅栏。

loop {

enemy = this.findNearestEnemy();

if (enemy) {

// 在敌人左边建造20个单位的栅栏。

var buildpos = enemy.pos ;

var x = buildpos.x - 20 ;

var y = buildpos.y ;

this.buildXY("fence", x, y);

} else {

// 每次向下移动10个单位。

var mypos = this.pos ;

var myx = mypos.x ;

var myy = mypos.y - 10;

this.moveXY(myx, myy);

}

}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

6、雷蹄

// 到达绿洲,

// 用栅栏引导砂牦牛到你去的地方

loop {

var yak = this.findNearestEnemy();

if (yak) {

// 如果它的 y 值大于你的,那么耗牛在你前面

// 如果耗牛在你前面,在它后面10米建立一个栅栏

var x = yak.pos.x ;

var y = yak.pos.y ;

if (yak.pos.y > this.pos.y) {

y -= 10 ;

this.buildXY("fence", x, y);

}

// 如果耗牛在你后面,在它前面10m 建立一个栅栏

else {

y += 10 ;

this.buildXY("fence", x, y);

}

} else {

// 向右移动10走向绿洲

this.moveXY(this.pos.x + 10, this.pos.y);

}

}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

7、医疗注意

// 向救助者求救,当你的生命低于1/3的时候

loop {

var currentHealth = this.health;

var healingThreshold = this.maxHealth / 3;

var enemy = this.findNearestEnemy();

// 如果你当前的健康值少于下限,

// 移动到治疗点说『heal me』

// 否则的话,攻击。你需要战斗的更狠点!

if (currentHealth < healingThreshold) {

this.moveXY(65, 46);

this.say("『heal me』");

}

else {

if (this.isReady("bash")) {

this.bash(enemy);

}

if (this.isReady("cleave")) {

this.cleave(enemy);

}

else {

this.attack(enemy);

}

}

}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

8、大量牦牛受惊事件

// 通过挡住野兽们来的路来保护村庄。

// 移动到更近的红色 X 位置

// 建造一个栅栏

this.moveXY(70, 26);

this.moveXY(55, 17);

this.moveXY(12, 30);

this.moveXY(31, 51);

this.buildXY("fence", 38, 53);

this.moveXY(14, 29);

this.moveXY(71, 27);

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

9、扫雷

// 让农民和他们的拯救者通过雷区。

// 移动金币,触发火焰陷阱。

// The mines are randomized, so use findItems.

// 向后移动十米,然后喊『heal』 如果你的生命值低了。

loop {

var items = this.findNearestItem();

if (items) {

var item = items.pos;

var x = item.x ;

var y = item.y ;

this.moveXY(x, y);

}

if (this.health < this.maxHealth / 2) {

this.moveXY(this.pos.x - 10, this.pos.y);

this.say("heal");

}

}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

10、Sarven 哨兵

// 使用不同的颜色旗子来执行不同的任务。

loop {

var flagGreen = this.findFlag("green");

var flagBlack = this.findFlag("black");

var flagViolet = this.findFlag("violet");

// 如果是绿色旗子,就建立一个栅栏。

if (flagGreen) {

var flagpos = flagGreen.pos;

var x = flagpos.x ;

var y = flagpos.y ;

this.pickUpFlag(flagGreen);

this.buildXY("fence", x, y);

}

// 如果是黑色旗子,就建立一个火焰陷阱

if (flagBlack) {

var flagpos1 = flagBlack.pos;

var x1 = flagpos1.x ;

var y1 = flagpos1.y ;

this.pickUpFlag(flagBlack);

this.buildXY("fire-trap", x1, y1);

}

// 如果是紫罗兰色的旗子,就移动到目标位置。

if (flagViolet) {

this.pickUpFlag(flagViolet);

}

// 记住要捡起旗子,在你都完成之后!

}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

11、节约时间

// 使用你的新技能来选择你要做什么 this.now()

loop {

// 如果是头十秒,进攻。

var enemy =this.findNearestEnemy();

if (this.now() < 10) {

if (enemy) {

if (this.isReady("cleave")) {

this.cleave(enemy);

}

else {

this.attack(enemy);

}

}

}

else if (this.now() < 30) {

var item = this.findNearestItem();

var x = item.pos.x ;

var y = item.pos.y ;

this.moveXY(x, y);

}

// 否则的话,如果是前30秒,收集金币。

// 后30秒,加入救助。

else if (enemy) {

if (this.isReady("bash")) {

this.bash(enemy);

}

if (this.isReady("cleave")) {

this.cleave(enemy);

}

else {

this.attack(enemy);

}

}

}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

12、囤积黄金

// 收集25金币,然后告诉 Naria 总数

// 使用 break 来停止收集金币当金币总数大于25.

var totalGold = 0;

loop {

var coin = this.findNearestItem();

// 捡起金币

var x = coin.pos.x ;

var y = coin.pos.y ;

this.moveXY(x, y);

// 将金币的价值加进 totalGold.(查看帮助了解更多.)

// 得到它的价值用: coin.value

totalGold += coin.value;

if (totalGold >= 25) {

// >=意思是总金币数大于等于25

// 这会中断循环并且执行循环下面的语句

break;

}

}

// 完成收集金币!

this.moveXY(58, 33);

// 去找 Naria 告诉他你收集了多少金币

this.say(totalGold);

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: