同学们,欢迎来到我们的“编程农场”!在这里,你不再需要像传统农夫那样面朝黄土背朝天。你将化身为一名农场工程师,你的武器不是锄头,而是键盘上的代码!

在未来的几周里,我们将利用代码指挥无人机大军,完成从“自动浇水”到“32机协同收割南瓜”的壮举。而这一切的起点,就是掌握我们的“魔法咒语”——Python 语言

🐍 一、 什么是 Python?(它的前世今生)

Python 的英文原意是“蟒蛇”,但它的诞生却和蛇没有任何关系。

  • 诞生时刻: 1989 年的圣诞节期间,荷兰的一位程序员吉多·范罗苏姆(Guido van Rossum)为了打发无聊的假期,决定开发一种新的编程语言。

  • 名字的由来: 吉多非常喜欢一个名叫《蒙提·派森的飞行马戏团》(Monty Python's Flying Circus)的喜剧节目,于是他直接用 Python 给这门语言命名。

  • 它的地位: 今天,Python 已经是全球最受欢迎、应用最广泛的编程语言之一。从人工智能(AI)、大数据分析,到网站开发,到处都有它的身影。

🚜 二、 我们为什么要用 Python 种地?

在现实世界中,Python 擅长处理数据和自动化任务。在我们的编程农场里,Python 能帮我们干什么呢?

  1. 解放双手: 农场有32*32 这么大,手动点鼠标种地会让人崩溃。Python 可以让无人机自动巡航(比如我们以后会学到的高效“S形走位”)。

  2. 智能判断: Python 可以充当无人机的“大脑”。遇到杂草就拔掉,遇到干旱的土地就浇水,遇到成熟的果实才收割。

  3. 多机协同: 当你的农场做大做强后,我们可以用 Python 写出“母舰调度系统”,同时指挥成十上百架无人机一起工作,效率提升成百上千倍!

📏 三、 农场第一准则:Python 的“灵魂”——缩进

在向无人机下达命令时,你必须遵守 Python 最严格的规则:缩进(Indentation)

1. 什么是缩进?

缩进就是代码行首的空白部分

在人类的语言里,我们用“段落”来区分意思;而在 Python 的世界里,电脑是通过“缩进的空格数”来判断哪些代码是属于同一个任务小组的。

2. 缩进的黄金法则

  • 遇到冒号 : 必缩进: 当你使用“如果 (if)”、“循环 (for/while)”等带有冒号结尾的语句时,它下面的动作必须缩进。

  • 四个空格: 标准的缩进是按 4 下空格键(或者按 1 下键盘左侧的 Tab 键)。

  • 必须对齐: 属于同一个级别的任务,前面的空格数量必须一模一样!

3. 农场实战演示

我们要给无人机下达一个指令:“如果脚下有植物可以收割,把它收割掉。”

❌ 错误的写法(无人机会罢工并报错):

if can_harvest():
harvest()  # 错误:电脑不知道 harvest 属于 if 管辖,因为没有缩进!

✅ 正确的写法(标准的农场魔法):

if can_harvest():
    harvest()  # 正确:缩进了4个空格,无人机明白只有在满足条件时才执行它

✅ 进阶的写法(区分层级):

if can_harvest():
    harvest()       # 动作 1:如果成熟了,就收割(受 if 控制)
    print("丰收啦!") # 动作 2:收割完喊一句口号(受 if 控制)
move(North)         # 动作 3:没有缩进!不管有没有收割,最后都会向北移动(不受 if 控制)

👨‍💻 四、 你的第一个农场代码练习

现在,让我们来热热身,尝试读懂并编写你的第一段无人机控制代码。

在这段代码中,我们将用到编程农场自带的几个基础指令(函数):

  • move(East):向东(右)移动一格。

  • till():把脚下的草地翻成可以种植的泥土。

  • plant(Entities.Bush):在脚下种一棵灌木。

【小挑战】: 请观察下面这段代码,数一数这里面有几个层级的“缩进”,并思考无人机执行完毕后,农场上会发生什么变化?

# 这是一个循环指令,会让下面的动作重复 5 次
for i in range(5):
    if get_ground_type() == Grounds.Grassland:
        till()               # 第二层缩进:只有是草地时才翻土
    
    plant(Entities.Bush)     # 第一层缩进:每次循环都会种一棵灌木
    move(East)               # 第一层缩进:种完后向东走一步