CodeCombat 混沌法则

Python 随机数生成器

LEVEL 8

随机还击 (Random Counterattack)

战术逻辑分析

战场变幻莫测!敌人不再傻傻地排队出现了。为了模拟真实的战斗,我们需要制造混乱。
这里的关键是使用 game.randomInteger(min, max),把它想象成一个“命运骰子”。

空间随机 (Where?)

我们不告诉食人魔去 (10, 10)
我们告诉它:去 X 轴 10到70 之间,Y 轴 10到60 之间的任意一个点
x = random(10, 70)

时间随机 (When?)

敌人什么时候来?没人知道!
可能是下一秒,也可能是4秒后。
spawnTime = current + random(0, 4)

game.randomInteger(1, 6)
可能是 1, 2, 3, 4, 5, 或 6
Min Max
chaos_spawner.py
1
# 使用game.randomInteger(min,max)添加随机性!
2
game.spawnPlayerXY("knight", 40, 35)
生成英雄:骑士
3
game.addSurviveGoal()
目标:存活
4
game.addDefeatGoal(8)
目标:击败8个敌人
5
6
def onSpawn(event):
定义敌人AI
7
while True:
8
unit = event.target
获取当前单位
9
enemy = unit.findNearestEnemy()
寻找敌人
10
if enemy:
如果有敌人
11
unit.attack(enemy)
攻击!
12
13
game.setActionFor("munchkin", "spawn", onSpawn)
绑定AI逻辑
14
15
# 每0到4秒生成一个食人魔。
16
spawnTime = 0
初始化生成计时器
17
while True:
主游戏循环
18
if game.time > spawnTime:
时间到了吗?
19
# 将x设为10到70之间的随机数
20
x = game.randomInteger(10, 70)
随机横坐标
21
# 将y设为10到60之间的随机数
22
y = game.randomInteger(10, 60)
随机纵坐标
23
# 在x, y处生成一个"munchkin"
24
game.spawnXY("munchkin", x, y)
在随机坐标处生成
25
# 0到4秒后再次生成
26
spawnTime = game.time + game.randomInteger(0,4)
重设闹钟:时间也是随机的!
教官提示: 因为生成位置是随机的,敌人可能会直接生成在你脸上!保持警惕,随时准备战斗。