CodeCombat 进阶篇

第7关 - 第9关:战斗与字符串

核心概念:字符串 (String)
名字是文本,必须包在双引号 "Name" 里。
大小写必须完全正确!
新动作:攻击 (Attack)
hero.attack("Enemy")
注意:每个小怪需要打 2 下!
No.7

第7关 真名实姓

关卡思路

我们终于可以反击了!但是,要攻击敌人,你必须知道他们的名字

"Brak"
需要攻击 2 次
"Treg"
需要攻击 2 次

重要规则

  • 名字必须加引号:"Brak"
  • 大小写不能错:"brak" 是错的!
solution.py
1
# 抵御 "Brak" 和 "Treg"!
认准名字。
2
hero.moveRight()
向右走接近敌人。
3
hero.attack("Brak")
第1击:攻击Brak。
4
hero.attack("Brak")
第2击:必须打两下才能消灭。
5
hero.moveRight()
继续向右找下一个敌人。
6
hero.attack("Treg")
第1击:攻击Treg。
7
hero.attack("Treg")
第2击:消灭Treg。
No.7a

第7a关 机会有利

关卡思路

两个食人魔 KrugGrump 挡住了路。

这一关的地图有点绕。你需要先打败第一个,然后走位绕过墙壁,去打第二个。

记住口诀: 靠近 -> 打两下 -> 走位 -> 打两下 -> 逃跑。

solution.py
1
# 攻击食人魔。
战斗开始。
2
hero.moveRight()
接近第一个敌人。
3
hero.attack("Krug")
攻击 Krug。
4
hero.attack("Krug")
再次攻击 Krug。
5
hero.moveRight()
Krug 倒下了,继续向右。
6
hero.moveUp()
向上转弯找第二个敌人。
7
hero.attack("Grump")
攻击 Grump。
8
hero.attack("Grump")
再次攻击 Grump。
9
hero.moveLeft()
向左逃向出口。
10
hero.moveLeft()
安全撤离。
No.7b

第7b关 高举之剑

关卡思路

这一次我们要面对三个敌人!
他们排队冲过来了,不要慌,一个一个解决。

Rig -> 攻击 x2
Gurt -> 攻击 x2
Ack -> 攻击 x2
solution.py
1
# 击败食人魔。
敌人很多,保持冷静。
2
hero.attack("Rig")
Rig 靠近了,打他!
3
hero.attack("Rig")
Rig 倒下。
4
hero.attack("Gurt")
Gurt 过来了,打他!
5
hero.attack("Gurt")
Gurt 倒下。
6
hero.attack("Ack")
最后是 Ack,打他!
7
hero.attack("Ack")
全部解决!
No.8

第8关 概念挑战:危险脚步

关卡思路

这是一个复习关卡。 你需要击败两对食人魔(共4个)。

  • 第一对:SogGos
  • 中间有一段路要走。
  • 第二对:KroErgo

考验你对字符串输入准确性的耐心。

solution.py
1
hero.moveRight()
走近第一组敌人。
2
hero.attack("Sog")
攻击 Sog。
3
hero.attack("Sog")
消灭 Sog。
4
hero.attack("Gos")
攻击 Gos。
5
hero.attack("Gos")
消灭 Gos。
6
hero.moveRight(2)
大步跨越到第二区。
7
hero.attack("Kro")
攻击 Kro。
8
hero.attack("Kro")
消灭 Kro。
9
hero.attack("Ergo")
攻击 Ergo。
10
hero.attack("Ergo")
消灭 Ergo。
No.9

第9关 组合挑战:睡眠时刻

关卡思路

这是一个大综合关卡! 你需要用到目前为止学过的所有知识:

  • 移动: 上下左右
  • 参数: moveRight(2)
  • 攻击: attack("Name")
任务: 打败 Ursa, Rexxar, Brack,最后到达红色 X 处。
solution.py
1
hero.moveRight(2)
参数:快速接近 Ursa。
2
hero.attack("Ursa")
攻击 Ursa x1。
3
hero.attack("Ursa")
攻击 Ursa x2。
4
hero.moveDown()
调整位置。
5
hero.moveLeft(2)
参数:左移2格找 Rexxar。
6
hero.moveUp(2)
参数:上移2格。
7
hero.attack("Rexxar")
攻击 Rexxar x1。
8
hero.attack("Rexxar")
攻击 Rexxar x2。
9
hero.moveRight()
接近 Brack。
10
hero.attack("Brack")
攻击 Brack x1。
11
hero.attack("Brack")
攻击 Brack x2。
12
hero.moveRight(2)
大跨步逃生!