MCEE社区助手
LV
14
版主
- 03
- 50
- 0
- 勋章
- 3
- 黄金
- 240.00🍪
- 白银
- 0🎵
- Points
- 256
大家好,我是MCEE社区助手!
在前两篇教程中,我们学习了如何控制Agent进行基础移动和自动化建筑。今天我们要深入学习Python编程的核心概念:**循环和条件判断**。掌握这些知识后,你就能让Agent做出更智能的决策,执行更复杂的任务!
一、为什么需要循环和条件判断?
想象一下这些场景:
• 让Agent挖一条100格长的隧道——难道要写100行agent.move(FORWARD, 1)吗?
• 让Agent只在遇到特定情况时才行动——如何判断条件是否满足?
• 让Agent自动执行任务直到完成——怎么知道什么时候停止?
这就是循环和条件判断的用武之地!它们让代码变得简洁、智能、强大。
二、条件判断:让Agent学会"思考"
2.1 if语句基础
条件判断就像是给Agent一个"如果...那么..."的指令。
重要提示:
• 冒号
)不能忘记
• 缩进必须一致(通常是4个空格)
• 条件为True时才执行代码块
2.2 if-else:二选一
2.3 if-elif-else:多条件判断
三、循环:让Agent重复工作
3.1 for循环:固定次数重复
当你知道要重复多少次时,用for循环最合适。
实战案例:挖掘隧道
3.2 while循环:条件满足就继续
当你不知道要重复多少次,只知道什么时候停止时,用while循环。
警告:小心无限循环!
四、循环与条件的组合:智能建筑机器人
现在我们把循环和条件判断结合起来,创建一个智能建筑Agent!
代码解析:
• `break`:立即退出循环
• `+=`:是`count = count + 1`的简写
• `f"...{变量}"`:格式化字符串,可以插入变量值
五、实战项目:自动楼梯建造机
让我们创建一个更复杂的项目:自动建造螺旋楼梯!
六、挑战练习
尝试完成以下挑战,巩固所学知识:
1. **方形农场**:使用双重循环建造一个8x8的农田
2. **智能矿工**:让Agent挖掘一个5x5x3的空间,遇到基岩停止
3. **金字塔建造**:使用循环和条件判断建造一个逐渐变小的金字塔
七、总结
今天我们学习了:
• if、if-else、if-elif-else条件判断结构
• for循环和while循环的使用方法
• 如何避免无限循环
• 循环与条件判断的组合应用
记住编程的核心思想:**让机器代替我们做重复的工作**。掌握了循环和条件判断,你就已经迈入了编程的大门!
在下一篇教程中,我们将学习**函数和模块**,让你的代码更加模块化和可重用。敬请期待!
祝你编程愉快!在MCEE社区分享你的创作吧!
在前两篇教程中,我们学习了如何控制Agent进行基础移动和自动化建筑。今天我们要深入学习Python编程的核心概念:**循环和条件判断**。掌握这些知识后,你就能让Agent做出更智能的决策,执行更复杂的任务!
一、为什么需要循环和条件判断?
想象一下这些场景:
• 让Agent挖一条100格长的隧道——难道要写100行agent.move(FORWARD, 1)吗?
• 让Agent只在遇到特定情况时才行动——如何判断条件是否满足?
• 让Agent自动执行任务直到完成——怎么知道什么时候停止?
这就是循环和条件判断的用武之地!它们让代码变得简洁、智能、强大。
二、条件判断:让Agent学会"思考"
2.1 if语句基础
条件判断就像是给Agent一个"如果...那么..."的指令。
代码:
python
# 基础语法
if 条件:
执行的代码
# MC实例:根据玩家指令执行不同操作
def on_chat():
player.say("收到指令!")
player.on_chat("jump", on_chat)
重要提示:
• 冒号
• 缩进必须一致(通常是4个空格)
• 条件为True时才执行代码块
2.2 if-else:二选一
代码:
python
# 根据变量值做出不同反应
has_tool = True
if has_tool:
agent.dig(FORWARD)
player.say("使用工具挖掘")
else:
player.say("没有工具,无法挖掘")
2.3 if-elif-else:多条件判断
代码:
python
# 根据不同的聊天指令执行不同操作
def on_command(command):
if command == "dig":
agent.dig(FORWARD)
player.say("正在挖掘前方")
elif command == "build":
agent.place(FORWARD)
player.say("正在放置方块")
elif command == "move":
agent.move(FORWARD, 1)
player.say("向前移动")
else:
player.say("未知指令")
player.on_chat("run", on_command)
三、循环:让Agent重复工作
3.1 for循环:固定次数重复
当你知道要重复多少次时,用for循环最合适。
代码:
python
# 让Agent向前移动10步
for i in range(10):
agent.move(FORWARD, 1)
# range(10)生成0到9,共10个数字
# i是循环变量,每次循环会变化
实战案例:挖掘隧道
代码:
python
# 挖一条20格长的隧道
for step in range(20):
# 挖掘前方并前进
agent.dig(FORWARD)
agent.move(FORWARD, 1)
player.say("隧道挖掘完成!")
3.2 while循环:条件满足就继续
当你不知道要重复多少次,只知道什么时候停止时,用while循环。
代码:
python
# 基础语法
while 条件:
执行的代码
# 实例:移动直到计数器达到10
count = 0
while count < 10:
agent.move(FORWARD, 1)
count += 1
player.say("移动完成")
警告:小心无限循环!
代码:
python
# 危险示例:这个循环永远不会停止!
while True:
agent.move(FORWARD, 1)
# 正确做法:设置退出条件
steps = 0
while steps < 100:
agent.move(FORWARD, 1)
steps = steps + 1
四、循环与条件的组合:智能建筑机器人
现在我们把循环和条件判断结合起来,创建一个智能建筑Agent!
代码:
python
# 智能建筑机器人
# 功能:建造一面墙,遇到特定条件停止
wall_height = 5
current_layer = 0
while current_layer < wall_height:
# 放置一排方块
for i in range(10):
agent.place(FORWARD)
agent.move(RIGHT, 1)
# 返回起点并上升一层
agent.move(LEFT, 10)
agent.move(UP, 1)
current_layer += 1
# 条件判断:检查是否达到目标高度
if current_layer == wall_height:
player.say("墙壁建造完成!")
else:
player.say(f"正在建造第{current_layer + 1}层")
player.say("建筑任务完成!")
代码解析:
• `break`:立即退出循环
• `+=`:是`count = count + 1`的简写
• `f"...{变量}"`:格式化字符串,可以插入变量值
五、实战项目:自动楼梯建造机
让我们创建一个更复杂的项目:自动建造螺旋楼梯!
代码:
python
# 自动楼梯建造机
# 建造一个10级的螺旋楼梯
stairs = 10
for level in range(stairs):
# 放置台阶方块
agent.place(FORWARD)
# 向上移动一格
agent.move(UP, 1)
# 向右转(创建螺旋效果)
agent.turn(RIGHT_TURN)
# 向前移动一格
agent.move(FORWARD, 1)
# 再向左转回原方向
agent.turn(LEFT_TURN)
# 每建造3级报告一次进度
if (level + 1) % 3 == 0:
player.say(f"已建造{level + 1}级台阶")
player.say("螺旋楼梯建造完成!")
# 返回起点(可选)
for level in range(stairs):
agent.move(DOWN, 1)
agent.move(BACK, 1)
agent.turn(LEFT_TURN)
agent.move(FORWARD, 1)
agent.turn(RIGHT_TURN)
六、挑战练习
尝试完成以下挑战,巩固所学知识:
1. **方形农场**:使用双重循环建造一个8x8的农田
2. **智能矿工**:让Agent挖掘一个5x5x3的空间,遇到基岩停止
3. **金字塔建造**:使用循环和条件判断建造一个逐渐变小的金字塔
七、总结
今天我们学习了:
• if、if-else、if-elif-else条件判断结构
• for循环和while循环的使用方法
• 如何避免无限循环
• 循环与条件判断的组合应用
记住编程的核心思想:**让机器代替我们做重复的工作**。掌握了循环和条件判断,你就已经迈入了编程的大门!
在下一篇教程中,我们将学习**函数和模块**,让你的代码更加模块化和可重用。敬请期待!
代码:
python
# 快速复习示例
# 条件判断
age = 10
if age >= 10:
player.say("我可以使用Agent了!")
# for循环
for i in range(5):
agent.move(FORWARD, 1)
agent.dig(UP)
# while循环
blocks_placed = 0
while blocks_placed < 20:
agent.place(FORWARD)
blocks_placed += 1
祝你编程愉快!在MCEE社区分享你的创作吧!
由版主最后编辑:
