游戏介绍
这款游戏使用简洁的类 Python 语言为无人机编程,将枯燥磨人的各式农活彻底自动化。只需轻点“执行”按钮,即可欣赏无人机包揽所有繁重劳动,感受自动化带来的满足与享受。游戏玩起来比较上头,挺适合入门编程。游戏的主要操作是遍历,因此只需要把Python学到循环语句就能快速上手这个游戏了。(附Python3菜鸟教程)实际上读一读手册大概40分钟就能学会了。如果想要深入理解来优化自己的无人机,那还是得花点时间。
相关操作
harvest()
收获无人机下方的实体。
如果对一个无法收获的实体执行收获,则它将被摧毁。
如果移除了一个实体,则返回 True,否则返回 False。
如果移除了一个实体,需要 200 ticks 执行,否则需要 1 tick。
pet_the_piggy()
摸小猪,在游戏里似乎没什么用
can_harvest()
提供了一个更好的条件。如果无人机下方的植物可以被收获,can_harvest() 返回 True,否则返回 False。
do_a_flip()
让无人机做一次翻转!此操作不受速度升级影响。返回 None。需要 1 秒执行。
move()
使无人机向指定 direction 移动一格。(move(direction))
如果无人机即将移出农场边缘,则会绕回到农场的另一边。
East = 右
West = 左
North = 上
South = 下
如果无人机移动了,则返回 True,否则返回 False。
如果无人机移动了,需要 200 ticks 执行,否则需要 1 tick。
plant()
所有其他植物都必须用 plant() 函数种植.只需要把植物类型传递给函数:plant(Entities.Bush)(种灌木)
clear()
将农场重置为整片草地,并重置无人机位置。
物品介绍
胡萝卜Carrot
在用 plant(Entities.Carrot) 种植胡萝卜之前,必须先耕地,将地块变为 Grounds.Soil。只需调用 till() 即可耕地。再次调用 till() 则会将其变回 Grounds.Grassland。种植胡萝卜需要消耗木材和干草。调用 plant(Entities.Carrot) 时,这些物品会自动被移除。
s=get_world_size()
clear()
for x in range(s):
for y in range(s):
till()
move(North)
move(West)clear()会使无人机回到原点(0,0)同时,重置农场的土壤为草地,只需要把地开完就能种了,就能种萝卜了
for x in range(s):
for y in range(s):
plant(Entities.Carrot)
move(North)
move(East)种完后就可以收,收的时候需要考虑物品是否成熟(小地图),地图比较大的时候基本不用考虑
for x in range(s):
for y in range(s):
if can_harvest():
harvest()
move(North)
else:
move(North)
move(East)总之整个过程分为开地==>种菜==>收菜,地开一次就行,需要重复的操作只有种地和收菜。
南瓜Pumpkin
南瓜像胡萝卜一样生长在耕过的土地上。种植南瓜需要消耗胡萝卜。
当一个方形区域内所有的南瓜都完全成熟时,它们会长到一起,合并成一个巨型南瓜。不幸的是,南瓜在完全成熟后有 20% 的几率枯死,所以如果想让它们合并,需要重新种植,代替枯死的南瓜。
南瓜在枯死时会留下枯萎南瓜,收获时不会掉落任何东西。在枯萎南瓜的位置上种植新植物会自动将其移除,所以没有必要收获枯萎南瓜。can_harvest() 在枯萎南瓜上始终返回 False。
巨型南瓜的产量取决于南瓜的大小。
一个 1x1 的南瓜产出 1*1*1 = 1 个南瓜。
一个 2x2 的南瓜产出 2*2*2 = 8 个南瓜而不是 4 个。
一个 3x3 的南瓜产出 3*3*3 = 27 个南瓜而不是 9 个。
一个 4x4 的南瓜产出 4*4*4 = 64 个南瓜而不是 16 个。
一个 5x5 的南瓜产出 5*5*5 = 125 个南瓜而不是 25 个。
一个 nxn 的南瓜在 n >= 6 时产出 n*n*6 个南瓜。
最好是至少种植 6x6 大小的南瓜以获得最大乘数。
这意味着即使你在一个方形区域的每个地块上都种上南瓜,其中一个南瓜也可能枯死并阻止巨型南瓜的生长。
树Tree
每棵树能提供 5 份木材。它们和灌木一样,可以种植在草地或耕过的土地上。
树喜欢保持一定的空间,把它们紧挨着种植会减慢其生长速度。每在其正北、正东、正西或正南方向地块上种植一棵树,都会使其生长时间翻倍。所以如果在每个地块上都种上树,它们的生长时间将是原来的 2*2*2*2 = 16 倍。
仙人掌Cactus
如果收获一株完全成熟的仙人掌,并且所有相邻的仙人掌都已排序,则所有相邻的仙人掌也会以递归方式收获。如果所有 North 和 East 方向的相邻仙人掌都完全成熟且尺寸大于或等于它,并且所有 South 和 West 方向的相邻仙人掌都完全成熟且尺寸小于或等于它,那么这个仙人掌就被认为是处于已排序状态
只有当所有相邻的仙人掌都完全成熟并处于已排序状态时,收获才会蔓延。
也就是说,如果一个方形区域的成熟仙人掌已经按大小排序,那么收获其中一株仙人掌时,会随之收获整个方形区域。
一株完全成熟的仙人掌如果未排序,会显示为棕色。一旦排序好,则会变回绿色。
你将获得的仙人掌数量等于所收获仙人掌数量的平方。因此,如果同时收获 n 个仙人掌,则将获得 n**2 个 Items.Cactus。
仙人掌的大小可以用 measure() 测量。
测量结果始终为以下数字之一:0,1,2,3,4,5,6,7,8,9。
你也可以向 measure(direction) 传入一个方向来测量无人机该方向上的相邻地块。
使用 swap() 命令可将一株仙人掌与其任何方向的邻居交换位置。
swap(direction) 将无人机下方的物体与无人机 direction 方向一格远的物体交换位置。
在这些网格中,所有的仙人掌都处于已排序状态,收获将蔓延到整片田地:
3 4 5 3 3 3 1 2 3 1 5 9
2 3 4 2 2 2 1 2 3 1 3 8
1 2 3 1 1 1 1 2 3 1 3 4在该网格中,只有左下角的仙人掌处于已排序状态,这不足以让收获蔓延:
1 5 3
4 9 7
3 3 2