代码大战-CodeCombat-计算机科学入门

一、 计算机科学入门

1、KITHGARD地牢

①目标:

避开尖刺,收集宝石。

②思路:

通过地图可以知道,进入大门需要先向右移再向下移再向右移就可以进入。

③源码:

// 向宝石进发。
// 小心尖刺!
// 在下面输入你的代码,完成后点击运行。

hero.moveRight();#向右移动
hero.moveDown();#向下移动
hero.moveRight();#向右移动

2、深藏的宝石

①目标:

避开尖刺,收集宝石。

②思路:

通过提示可以知道,要收集宝石需要向右移动在向下移动在向上移动两次在向右移动,按照这过思路使用对应的函数就可以完成任务了。

③源码:

// 利用你的移动命令收集所有宝石。

hero.moveRight();
hero.moveDown();
hero.moveUp(2);
hero.moveRight();

3、 幽影守卫

①目标:

避开尖刺,收集所有宝石,避开食人魔的视线。

②思路:

通过提示以及地图可以知道,如果一直向右移动三步在第二步时候会被食人魔发现,所以需要在第一步过后向上移动然后向右移动在向下移动避开食人魔在向右移动就可以完成任务。

③源码:

// 避开食人魔的视线,收集宝石。
hero.moveRight();
hero.moveUp();
hero.moveRight();
hero.moveDown();
hero.moveRight();

3A、逆时针回转

①目标:

英雄必须存活,夺取宝石,避开食人魔。

②思路:

当向下时食人魔会向右移动,因为食人魔是面向右边的,所以当你向下两步的时候食人魔不会发现你。这样就避开了食人魔。然后按照步骤移动就可以完成任务了。

③源码:

// 避开食人魔并取走宝石。
hero.moveDown(2);
hero.moveRight();
hero.moveUp();
hero.moveRight();

3B、狭路相逢

①目标:

英雄必须活下来,拿取宝石,避免被食人魔看到。

②思路:

通过观察可以发现,当你直接移动两部去取宝石时会被食人魔发现,所以我的方法是通过向右一步,然后向左一步,这样就能避开食人魔。然后再去取宝石。

③源码:

// 避免被食人魔看到.

hero.moveRight();
hero.moveLeft();
hero.moveRight(2);

4、细心脚步

①目标:

收集所有宝石,返回到出口。

②思路:

根据提示,设计取宝石的路线,具体路线按照自己喜欢来写,我写的只是其中一种,只要完成目标,路线不唯一的。

③源码:

// 这是对基本语法的一个概念挑战。
// 收集所有的宝石,并返回到出口(红色X处)。
// 避免尖刺。
hero.moveUp();
hero.moveRight();
hero.moveDown();
hero.moveRight();
hero.moveLeft();
hero.moveDown();
hero.moveUp(2);
hero.moveLeft();
hero.moveDown();
hero.moveLeft();

5、敌人的陷阱

①目标:

避开火焰陷阱,夺取宝石。使用不超过5行代码。

②思路:

需要注意的是地图上蓝色的是地雷,不能通过,还有移动函数后面括号里面是可以加参数的,里面加多少就移动多少步。只要注意这几点就可以完成任务了。

③源码:

// 使用带参数的移动命令,移动到更远。
hero.moveRight(3);
hero.moveUp();
hero.moveRight();
hero.moveDown(3);
hero.moveRight(2);

5A、虚幻干扰

①目标:

分散守卫的注意力,收集宝石。

②思路:

开始需要移动到有红色X的位置开启诱饵,然后去取宝石。具体路线看源代码。

③源码:

// 走到 X 位置,使用诱饵分散守卫注意力
hero.moveRight();
hero.moveDown(2);
hero.moveUp(2);
hero.moveRight(3);

5B、健忘的宝石匠

①目标:

英雄必须生还,收集完4个宝石,并且到达出口。

②思路:

按照路线写代码,具体路线看源代码。

③源码:

// 夺取宝石,然后走到出口。

hero.moveRight();
hero.moveDown();
hero.moveRight(2);
hero.moveUp();
hero.moveRight();

6、漫长脚步

①目标:

英雄必须存活,收集全部宝石,逃离地牢,少于8条语句。

②思路:

主要注意的就是语句少于8条,路线自己计算,我的参考路线看源代码。

③源码:

// 这是一个关于参数的概念挑战关卡。
// 夺取宝石,然后走到出口。
// 您的代码应该少于8条语句。
// 使用带参数的移动命令。

hero.moveRight();
hero.moveUp(3);
hero.moveRight(2);
hero.moveDown(3);
hero.moveLeft();
hero.moveUp(2);
hero.moveRight(3);

7、真名实姓

①目标:

攻击Brak两次,收集宝石,攻击Treg两次,英雄必须存活。

②思路:

主要是运用hero.attack(“Brak”);函数攻击食人魔,每个食人魔攻击两次。具体程序看源代码。

③源码:

// 抵御 "Brak" 和"Treg"!
// 小食人魔攻击两次才会被击败。

hero.moveRight();
hero.attack("Brak");
hero.attack("Brak");
hero.moveRight();
hero.attack("Treg");
hero.attack("Treg");
hero.moveRight();

8、危险脚步

①目标:

打败食人魔。

②思路:

按照提示完成任务,具体代码如下。

③源码:

// 使用名字击败食人魔。

hero.moveRight();
// 击败第一对食人魔。
hero.attack("Sog");
hero.attack("Sog");
hero.attack("Gos");
hero.attack("Gos");
hero.moveRight(2);
// 击败第二对食人魔。
hero.attack("Ergo");
hero.attack("Ergo");
hero.attack("Kro");
hero.attack("Kro");

9、睡眠时刻

①目标:

逃到红色X标记,收集所有的宝石,使用移动参数,用字符串打败食人魔。

②思路:

按照要求完成任务,移动函数里面添加参数表示移动多少步,源代码不唯一,只供参考。

③源码:

// 这是一个组合挑战关卡。
// 打败食人魔,收集宝石,并逃到红色X处
// 使用字符串和移动参数!

hero.moveDown();
hero.moveRight(2);//向右边移动两步
hero.moveUp();
hero.attack("Ursa");
hero.attack("Ursa");
hero.moveLeft(2);
hero.moveUp();
hero.attack("Rexxar");
hero.attack("Rexxar");
hero.moveRight();
hero.attack("Brack");
hero.attack("Brack");
hero.moveRight(2);

10、注释中的密语

①目标:

说出密码,拿走成堆的宝石。

②思路:

按照要求完成任务,说出密码以后需要移动去收集宝石,具体源代码如下。

③源码:

hero.say("密码是什么?");
// 使用 “say()” 函数说出密码。
// 密码是: "Achoo"
hero.say("Achoo");
hero.moveUp(2);

11、KTHGARD图书管理员

①目标:

说出密码,移动到X位置。

②思路:

一定要按照要求操作,密码在提示中,切记切记,源代码如下。

③源码:

// 你需要图书馆大门的开门密码!
// 密码就在 提示 中!
// 请点击代码窗口上的蓝色 “提示” 按钮。
// 如果你在关卡中遇到了困难,请点击 “提示” 按钮!

hero.moveRight();
hero.say("我还不知道密码呢!");  // ∆
hero.say("密码是"+"Hush"+"开门");
hero.moveRight();

12、囚犯

①目标:

解放囚犯,击败守卫,夺取宝石。

②思路:

根据提示完成任务,门需要攻击一下就可以破开,具体源代码如下。

③源码:

// 释放囚犯,击败守卫并夺取宝石。
hero.moveRight();
// 从"Weak Door"后解救Patrick。
hero.attack("Weak Door");
// 击败名为"Two"的守卫。
hero.moveRight(2);
hero.moveDown(3);
hero.attack("Two");
hero.attack("Two");
// 获得宝石。
hero.moveRight();

13、焰中舞动

①目标:

永远躲开火球,4条语句内完成。

②思路:

根据提示完成任务,源代码如下。

③源码:

// 代码通常按编写顺序执行。
// 循环会多次重复一个代码块。

while(true) {
    hero.moveRight();
    // 在这里给循环里加 moveLeft 命令。
    hero.moveLeft();
    
}

14、闹鬼的迷宫

①目标:

英雄必须存活,通过迷宫,在6条语句完成。

②思路:

按照提示完成任务,观察路线找出规律,并且通过循环函数完成,源代码如下。

③源码:

// 循环是处理重复事情的最好方法。
while(true) {
    // 在这里添加需要重复运行的命令。
    hero.moveRight(2);
    hero.moveUp(2);  
}

15、再下一步

①目标:

英雄必须生还,拿取宝石。

②思路:

按照提示完成任务,观察路线找出规律,并且通过循环函数完成,源代码如下。

③源码:

// 使用少于5条语句穿越迷宫
while(true) {
    hero.moveRight(2);
    hero.moveDown();
    
}

15A、迷一般的KITHMAZE

①目标:

英雄必须生还,穿越迷宫。

②思路:

按照提示完成任务,观察路线找出规律,并且通过循环函数完成,源代码如下。

③源码:

// 对于反复之事,循环是更好的办法。
while(true) {
    // 此处添加需要重复执行的命令代码。
    hero.moveRight();
    hero.moveDown();
    hero.moveRight(2);
    hero.moveUp();
    
}

##16、循环仓库

①目标:

收集所有宝石,逃离仓库,不超过5条语句。

②思路:

按照提示完成任务,观察路线找出规律,并且通过循环函数完成,源代码如下。

③源码:

在这里插入代码片

标题

// 收集所有宝石并且逃离到白色X标记。
// 使用不超过5条语句。
while(true) {
    hero.moveUp(2);
    hero.moveRight(2);
    hero.moveDown();
    hero.moveLeft();
    
}

15B、辐射光环

①目标:

收集发光石,逃离骷髅怪。

②思路:

按照提示完成任务,观察路线找出规律,并且通过循环函数完成,源代码如下。

③源码:

// 捡起发光石,让骷髅怪远离你一会儿。
while(true) {
    hero.moveUp();
    hero.moveDown();
    hero.moveRight(2);
    
}

17、恐惧之门

①目标:

破坏大门,3条语句内完成。

②思路:

按照要求完成任务,通过循环语句不断攻击大门来减少语句。

③源码:

// 攻击大门(“Door”)
// 需要攻击很多次,请使用"while-true"循环
while(true) {
    hero.attack("Door");
}

18、攻破突袭

①目标:

逃离陷阱。

②思路:

按照提示完成任务。

③源码:

// 你可以在循环前写代码
hero.moveRight();
// 在使用循环逃离迷宫之前,打开"Chest"!
hero.attack("Chest");
// 回到主走廊
hero.moveDown();
while(true) {
    // 移动3次
    hero.moveRight(3);
    // 再走动三次
    hero.moveDown(3);
    
}

19、橱柜里的骷髅

①目标:

打开橱柜,少于7个语句。

②思路:

按照提示完成相应的操作就能过关。

③源码:

// 周围可能有东西能帮到你。

// 首先,移动到橱柜。
hero.moveUp();
hero.moveRight(2);
hero.moveDown(2);
// 然后,使用while-true循环攻击"Cupboard"(橱柜)。
while(true) {
    hero.attack("Cupboard");
}

19A、KTHGARD橱柜A

①目标:

打开橱柜,少于7条语句。

②思路:

按照提示完成相应的操作就能过关。

③源码:

// 周围可能有东西能帮到你。

// 首先,移动到橱柜。
hero.moveDown();
hero.moveLeft(2);
hero.moveUp(2);
// 然后,使用while-true循环攻击 橱柜"Cupboard"。
while(true) {
    hero.attack("Cupboard");
}

20、老对手

①目标:

英雄必须存活,干掉三只食人魔。

②思路:

按照提示完成相应的操作就能过关,主要熟悉变量的使用。

③源码:

// 你可以像名牌那样使用变量

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

hero.attack(enemy1);
hero.attack(enemy1);

hero.attack(enemy2);
hero.attack(enemy2);

hero.attack(enemy3);
hero.attack(enemy3)

21、名称大师

①目标:

英雄必须存活,干掉三只食人魔。

②思路:

按照提示完成相应的操作就能过关,主要熟悉变量的使用以及“findNearestEnemy”函数的使用。

③源码:

// 你的英雄不知道这些敌人的名字!
// 这眼镜给了你 “findNearestEnemy” 寻找最近敌人的能力。

// 将hero.findNearestEnemy()的结果赋值给变量enemy1:
var enemy1 = hero.findNearestEnemy();
// enemy1现在指向最近的敌人。使用变量进行攻击!
hero.attack(enemy1);
hero.attack(enemy1);

// enemy1已被打败,再次调用hero.findNearestEnemy()将会找到附近的新敌人。
var enemy2 = hero.findNearestEnemy();
hero.attack(enemy2);
hero.attack(enemy2);
// 将hero.findNearestEnemy()的结果赋值给变量enemy3:
var enemy3=hero.findNearestEnemy();
// 现在使用enemy3变量进行攻击。
hero.attack(enemy3);
hero.attack(enemy3);

进阶源代码
// 你的英雄不知道这些敌人的名字!
// 这眼镜给了你 “findNearestEnemy” 寻找最近敌人的能力。

while(true) {
      // 将hero.findNearestEnemy()的结果赋值给变量enemy1:
    var enemy = hero.findNearestEnemy();  
    if(enemy){//判断附近是否有敌人。
    hero.attack(enemy);
    }
}

21A、卑贱的魔徒

①目标:

英雄必须生还,战胜所有食人魔,集齐所有宝石。

②思路:

按照提示完成相应的操作就能过关,主要熟悉变量的使用以及“findNearestEnemy”函数的使用。

③源码:

// 创建第二个变量并进行攻击.

var enemy1 = hero.findNearestEnemy();
hero.attack(enemy1);
hero.attack(enemy1);
var enemy2=hero.findNearestEnemy();
hero.attack(enemy2);
hero.attack(enemy2);
hero.moveDown();
hero.moveRight(2);

进阶源代码
// 创建第二个变量并进行攻击.
while(true) {
    var enemy1 = hero.findNearestEnemy();
    if(enemy1){
        hero.attack(enemy1);
        hero.attack(enemy1);
    }else{
        hero.moveDown();
        hero.moveRight(2);
    }     
}

21B、拉近距离

①目标:

英雄必须存活,打败食人魔,拿起宝石。

②思路:

按照提示完成相应的操作就能过关,主要熟悉变量的使用以及“findNearestEnemy”函数的使用。

③源码:

hero.moveRight();
// 通过上一个关卡,你应该能认识这个。
var enemy1 = hero.findNearestEnemy();
// 现在,攻击enemy1
hero.attack(enemy1);
hero.attack(enemy1);

hero.moveRight(2);
var enemy2 = hero.findNearestEnemy();
// 现在,攻击enemy2
hero.attack(enemy2);
hero.attack(enemy2);
hero.moveDown();
hero.moveRight();

进阶源代码:
// 通过上一个关卡,你应该能认识这个。
// 现在,攻击enemy1
while(true) {
    var enemy = hero.findNearestEnemy();
    if(enemy){
        hero.attack(enemy);
    }else{
        hero.moveRight();
    }
}

22、名称大师调试

①目标:

英雄必须存活,干掉三只食人魔。

②思路:

按照提示完成相应的操作就能过关,主要熟悉变量的使用以及“findNearestEnemy”函数的使用。

③源码:

// 下面的代码有一个错误。
// 试着弄清错误是什么,然后修复它!

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

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

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

23、KITHMAZE最终历险

①目标:

英雄必须存活,战胜食人魔,穿越迷宫,10条语句内完成,收集宝石。

②思路:

按照提示完成相应的操作就能过关,主要熟悉变量的使用以及“findNearestEnemy”函数的使用,观察路线找出规律,然后通过循环重复函数,从而解决问题。

③源码:

// 使用while-true循环移动并攻击目标。

while(true) {
    var enemy=hero.findNearestEnemy();
    if(enemy){
        hero.attack(enemy);
        hero.attack(enemy);
        hero.moveRight();
        hero.moveDown(2);
        hero.moveUp();
    }else{
        hero.moveRight();
        hero.moveUp(); 
    }
}

24、安全地点

①目标:

击败食人魔,使用参数、变量、whlie循环。

②思路:

按照提示完成相应的操作就能过关,主要熟悉变量的使用以及“findNearestEnemy”函数的使用。

③源码:

// 移动到藏宝室并击败所有食人魔。
hero.moveUp(4);
hero.moveRight(4);
hero.moveDown(3);
hero.moveLeft(2);
while(true) {
    var enemy=hero.findNearestEnemy();
    if(enemy){
        hero.attack(enemy);
    }else{
        hero.moveDown();
 }

25、HITHGARD之门

①目标:

英雄必须存活,从地牢里出去。

②思路:

按照提示完成相应的操作就能过关,主要熟悉“hero.buildXY();”函数的使用。

③源码

// 建造三个围栏来阻挡食人魔!

hero.moveDown();
hero.buildXY("fence", 36, 34);
hero.buildXY("fence", 36, 30);
hero.buildXY("fence", 36, 27);
hero.moveRight(4)

26、WAKKA MAUL竞技场

①目标:

英雄必须存活,并且90s内击败对面英雄。

②思路:

按照提示完成相应的操作就能过关,并且第一时间打开英雄的门,源代码操作的是蓝方。

②源码:

// 欢迎来到Wakka Maul竞技场!准备战斗!
// 通过迷宫,获得宝石来增强战力。
// 毁掉门来释放盟友(或是敌人)。
// 例如,攻击标有"d"的门,使用:
//hero.attack("d");
// 有了足够金币,你就能够招募你想要的战士!
//hero.say("thrower"); 招募2名投矛手,每个9金币!
//hero.say("scout"); 花费18金币招募侦察兵。

hero.moveUp();
hero.moveLeft();
hero.attack("d");
hero.moveLeft(4);
hero.moveDown();
hero.attack("b");
hero.attack("c");
hero.moveDown();
hero.attack("e");
hero.moveLeft(2);
hero.moveDown(2);
hero.moveRight();
hero.attack("f");

 hero.moveRight(2);
hero.moveUp(2);
hero.moveRight();
hero.moveDown();
hero.moveLeft();
hero.moveRight(2);
hero.moveDown();

发布于:2019-10-17
作 者:Jay

你可能感兴趣的:(编程思维训练,代码大战,计算机科学入门,CodeCombat)