同学们,今天我们将接触农场里最神秘的魔法和最前沿的农业科技! 如果你的无人机总是嫌植物长得太慢,或者嫌木材产出太少,今天的两大法宝将彻底改变你的农场。
第一部分:魔法肥料与“奇异物质” 🦠
1. 催熟的诱惑
有时候,等植物长大实在太煎熬了。官方给我们提供了一个神器:肥料 (Items.Fertilizer)。
用法:
use_item(Items.Fertilizer)效果: 瞬间让脚下植物的生长时间缩短 2 秒!
2. 肥料的“诅咒”(感染)
天下没有免费的午餐。如果你用肥料催熟了植物,它就会被感染(Infected)。
被感染的植物成熟后,你收割它,一半的产出会变成一种紫色的神秘物品——奇异物质 (
Items.Weird_Substance)。
3. 解药也是毒药:奇异物质的“十字扩散”
奇异物质到底有什么用?它是一个状态切换开关! 你可以把它用在植物上:use_item(Items.Weird_Substance)。
用在被感染的植物上:治愈它,恢复健康!
用在健康的植物上:感染它!
⚠️ 最可怕的副作用(十字传染): 当你对一株植物使用奇异物质时,不仅它自己的状态会反转,它正上、正下、正左、正右四个相邻邻居的状态,也会瞬间反转! 这就意味着,如果你瞎用奇异物质,可能会导致整个农场爆发大面积感染,这就是经典的“点灯游戏”逻辑!
第二部分:混合种植,植物也有“好朋友” 🤝
你有没有发现,有时候植物挨在一起种,产量会莫名其妙变高? 官方揭秘了:草、灌木、树和胡萝卜,都有自己随机的“伴生偏好(好朋友)”。如果满足它们的心愿,产量直接 5 倍起步!
1. 怎么知道它想要什么?
我们可以使用一个超级侦察函数:get_companion()。 但是,这个函数返回的信息有点复杂,它一次性吐出两个线索:朋友的名字 和 朋友的坐标。
在 Python 中,这种把好几个数据打包在一起的形式,叫做元组 (Tuple)。它看起来就像这样:(Entities.Carrot, (3, 5))。
2. 见证奇迹的 Python 语法:元组解包 (Unpacking)
既然 get_companion() 吐出来的是一个打包好的“快递盒”,我们就需要把它拆开,分别放进我们的变量里。
👨💻 代码魔法:
# 一次性定义三个变量,接住函数返回的所有信息!
friend_type, (friend_x, friend_y) = get_companion()
print("它想要的好朋友是:", friend_type)
print("朋友应该种在 X 坐标:", friend_x)
print("朋友应该种在 Y 坐标:", friend_y)
这种“左右一一对应”的赋值方式,就是 Python 中极其优雅的“元组解包”!
3. 实战:为灌木寻找灵魂伴侣
让我们写一段完整的代码,种一棵灌木,并满足它的心愿,最后拿走 5 倍的木材!
import utils # 假设我们导入了上一节课写的移动工具
# 1. 种下灌木
if get_ground_type() == Grounds.Grassland:
till()
plant(Entities.Bush)
# 2. 询问它的心愿
companion_info = get_companion()
# 如果它真的有心愿(不是 None)
if companion_info != None:
# 3. 拆解心愿(元组解包)
friend_type, (friend_x, friend_y) = companion_info
# 4. 【关键步骤】拿小本子记下我现在的位置!
# 否则一会儿去种完好朋友,我就找不到回家的路了
my_x = get_pos_x()
my_y = get_pos_y()
# 5. 跑去指定的坐标,种下它的好朋友
utils.goto(friend_x, friend_y)
if get_ground_type() == Grounds.Grassland:
till()
plant(friend_type)
# 6. 回到最初的灌木身边
utils.goto(my_x, my_y)
# 7. 等待成熟并收割 5 倍奖励!
while not can_harvest():
pass
harvest()