CodeCombat-KITHGARD关卡讲解21-40

关卡图标识

第一部分关卡图

第21关 迷失在书库

image-20260407185113114

错误

直接开始,会弹出如下错误。

image-20260402173517899

整体思路

弹出错误是因为游戏的原因,报错了。

此时我们重新进入,随后在英雄选择界面,重新选择英雄。

image-20260402173625131

在英雄选择界面,将语言改为JAVASCRIPT,即可开始游戏。

image-20260402173710589

注意,javascript代码的注释使用//,python的代码使用#。需要将默认的代码做更改。

image-20260402174057841

while(true) {  
  hero.moveRight();   
  hero.moveUp();  
  hero.moveLeft();  
  hero.moveDown(); 
}

第22关 再下一步

image-20260407185135885

需要在英雄选择界面,将语言改为Python,再开始游戏。

image-20260407180230562

整体思路

image-20260402172656638

# 使用少于5条语句穿越迷宫 
while True:    
    hero.moveRight(2)
    hero.moveDown()

第23关 迷一般的 Kithmaze

 

image-20260407180711886

 

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

第24关 恐惧之门

image-20260407180824387

# 攻击大门(“Door”)
# 需要攻击很多次,请使用"while-true"循环
while True:
    hero.attack("Door")

第25关 攻破突袭

image-20260407180915929

整体思路

image-20260402173056711

image-20260402173217732

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

第26关 Kithmaze二度历险

image-20260407181019215

整体思路

image-20260407181138113

# 使用while-true循环穿越迷宫!

while True:
    hero.moveRight()
    # 再输入3条移动命令通过迷宫:
    hero.moveUp()
    hero.moveRight()
    hero.moveDown()

第27关 轰轰

image-20260407182145504

错误

直接开始,会弹出如下错误。

image-20260402173517899

整体思路

弹出错误是因为游戏的原因,报错了。

此时我们重新进入,随后在英雄选择界面,重新选择英雄。

image-20260402173625131

在英雄选择界面,将语言改为JAVASCRIPT,即可开始游戏。

image-20260402173710589

image-20260402173935478

image-20260402174057841

// 使用迄今为止学到的所有编码技能,以防止球击中地面!
// 你可以用attack()方法将球打到空中。
// 面对一个挑战,尝试使用更少的代码行。
while(true) {
    hero.attack("ball");
    hero.attack("ball2");
    hero.moveRight(3);
    hero.attack("ball");
    hero.attack("ball2");
    hero.moveLeft(3);
}

第28关 辐射光环

image-20260407182250915

整体思路

重新选择英雄,将语言改为python。

image-20260402174438463

image-20260402174454878

python使用#标记注释,将双斜杠改为#

image-20260402175039410

# 捡起发光石,让骷髅怪远离你一会儿。
while True:    
    hero.moveUp()
    hero.moveDown()
    hero.moveRight(2)

第29关 Kithgard橱柜A

image-20260407182515838

# 周围可能有东西能帮到你。
# 首先,移动到橱柜。
hero.moveDown()
hero.moveLeft(2)
hero.moveUp(2)
# 然后,使用while-true循环攻击 橱柜"Cupboard"。
while True:
    hero.attack("Cupboard")

第30关 老对手

image-20260407182731981

# 你可以像名牌那样使用变量
enemy1 = "Kratt"
enemy2 = "Gert"
enemy3 = "Ursa"
# 攻击第一个敌人2次
hero.attack(enemy1)
hero.attack(enemy1)
# 攻击第二个敌人2次
hero.attack(enemy2)
hero.attack(enemy2)
# 攻击第3个敌人2次
hero.attack(enemy3)
hero.attack(enemy3)

第31关 Kithgard橱柜B

image-20260407182937452

# 也许有什么可以帮到你的!
# 首先,移动到橱柜。
hero.moveRight()
hero.moveDown()
hero.moveRight()
hero.moveDown()
# 然后,使用循环攻击"Cupboard"。
while True:
    hero.attack("Cupboard")

第32关 逃脱

image-20260407183232730

# 释放你的盟友,清理出一条逃亡之路!
hero.moveRight()
hero.attack("Weak Door")
hero.moveRight()
hero.moveDown()
while True:    
    hero.attack("Door")

第33关 橱柜里的骷髅

image-20260407183455340

# 周围可能有东西能帮到你。
# 首先,移动到橱柜。
hero.moveUp()
hero.moveRight(2)
hero.moveDown(2)
# 然后,使用while-true循环攻击"Cupboard"(橱柜)。
while True:
    hero.attack("Cupboard")

第34关 名称大师

image-20260407183622839

又有新装备了,又可以使用新技能了。

image-20260402175646102

# 你的英雄不知道这些敌人的名字!
# 这眼镜给了你 “findNearestEnemy” 寻找最近敌人的能力。
# 将hero.findNearestEnemy()的结果赋值给变量enemy1:
enemy1 = hero.findNearestEnemy()
# enemy1现在指向最近的敌人。使用变量进行攻击!
hero.attack(enemy1)
hero.attack(enemy1)

# enemy1已被打败,再次调用hero.findNearestEnemy()将会找到附近的新敌人。
enemy2 = hero.findNearestEnemy()
hero.attack(enemy2)
hero.attack(enemy2)

# 将hero.findNearestEnemy()的结果赋值给变量enemy3:
enemy3 = hero.findNearestEnemy()
# 现在使用enemy3变量进行攻击。
hero.attack(enemy3)
hero.attack(enemy3)

第35关 卑贱的魔徒

image-20260407183805404

# 创建第二个变量并进行攻击.
hero.moveDown()
enemy1 = hero.findNearestEnemy()
hero.attack(enemy1)
hero.attack(enemy1)
enemy2 = hero.findNearestEnemy()
hero.attack(enemy2)
hero.attack(enemy2)
hero.moveRight(2)

第36关 拉近距离

image-20260407184030879

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

第37关 矮人骚乱

image-20260407184349819

# 在 while true循环里,使用 findNearestEnemy() 并攻击!
while True:
    enemy= hero.findNearestEnemy()
    hero.attack(enemy)
    hero.attack(enemy)

第38关 成分鉴定

image-20260407184528110

错误

又报错啦!还是跟上面的方式一样,将语言改为JAVASCRIPT。

image-20260402173517899

image-20260402180150412

image-20260402180216795

整体思路

当前关卡希望我们为4个瓶子创建一个名字,随意创建即可。

注意此时使用的编程语言是JavaScript,所以注释要使用双斜杠,不能使用井号。

另外,JavaScript在创建变量时和python不同,javascript创建变量前要使用var,并且整个语句之后要加上分号。

注意!此关卡内容中似乎不能输入中文。(测试时候是如此)

image-20260402181253408

//变量就像一个有名字标签的容器,可以用来存储数据
//这个变量名叫: `someVariableName`
//它存储了一个值:`"a string"`
var bottom_name = "a string";
//这个变量名叫:`lolol`
//它包含一个数值:`42`
var lolol = 42;
//再创建2个变量并为其赋值:
//您可以随心所欲地给它们命名,并在其中存储任何值!
//使用赋值运算符`=`为变量分配一个值
// 为第三个为第三个为瓶子瓶子赋值
var bottom_3 = 'xiaogou';
var bottom_4 = 'xiaomao';

第39关 换个名字

image-20260407184638782

注意,此关卡需要使用JavaScript语言完成。

//改变变量的名字让宝石出现!
//将变量"enemy1"的名称更改为"gemDude1"。
var gemDude1 = hero.findNearestEnemy();
hero.attack(gemDude1);
hero.attack(gemDude1);

//将变量"enemy2"的名称更改为"gemDude2"。
var gemDude2 = hero.findNearestEnemy();
hero.attack(gemDude2);
hero.attack(gemDude2);

//在改变变量名字后收集宝石。
hero.moveUp();
hero.moveRight();
hero.moveRight();

第40关 KITHMAZE最终历险

image-20260407184950845

更改语言

因为上一关卡将语言改为了JavaScript,此关卡要将语言更改回来。

image-20260402181710147

image-20260402181726250

并将注释改为井号。

python的while循环写法和javascript写法不同,要删除代码重新写。

image-20260402181759892

整体思路

image-20260402182157765

# 使用while-true循环移动并攻击目标。
while True:
    hero.moveRight()
    hero.moveUp()
    enemy =hero.findNearestEnemy()
    hero.attack(enemy)
    hero.attack(enemy)
    hero.moveRight()
    hero.moveDown(2)
    hero.moveUp()
文章目录