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);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~