环境:PC
日期:2025-10-13
类别:模拟养成
版本:v1.0.0
编程农场学习版是一款非常硬核的农场模拟经营类代码编写游戏,在这里玩家将通过类Python的语言来编写程序,控制无人机的行为,为农场进行播种、采收、排序、建造等操作。游戏玩法非常丰富,不仅为玩家提供了丰富的函数接口,同时还支持玩家在游戏外,比如VSCode中进行编辑代码,再由游戏检测生成,感兴趣的话快来下载体验吧!
编程农场学习版为新手玩家准备了大量的教程,以便小白可以快速上手,并且游戏还为玩家提供了多道难题,比如走迷宫、排序等等,喜欢挑战的玩家千万不要错过!
使用简洁的类 Python 语言为无人机编程,将枯燥磨人的各式农活彻底自动化。只需轻点“执行”按钮,即可欣赏无人机包揽所有繁重劳动,感受自动化带来的满足与享受。
与多数编程游戏不同,本作摒弃了传统的关卡制,并以连贯无缝的曲线成长机制取而代之。
经营你的农场,不断获取资源,并在随后解锁新科技。
使用类 Python 的简洁语言进行编程。游戏初期,我们将循序渐进,逐一为你引入所有必备的编程基础概念,带你轻松入门。
游戏将为你铺好基石,但不会牵着你的手走完全程,带你完成任务。面对各式各样的挑战,你必须独辟蹊径,自行摸索答案。对于编程新手而言,这将是一场真正的考验。
如果你有丰富的编程经验,那么游戏前期不过是牛刀小试,帮你快速热身。真正的大餐,是后期错综复杂,同时又趣味盎然的艰巨任务,它们一定能够点燃你的挑战欲望。
本游戏所使用的编程语言虽非 Python 本身,但却一脉相承,可让 Python IntelliSense(智能感知)功能大显身手。所有代码均以 .py 文件格式保存,你完全可以选用 VS Code 等外部代码编辑器进行创作。只需开启“文件监视器”设置,游戏便可即时检测外部修改。
编程农场中,对灌木丛(bush)使用怪异资源(weird_substance)时,可以生成迷宫;
作者要求无人机穿越迷宫、拿到宝箱才能得到金币。
同时作者给出了几个函数接口:
move(direction): 向着direction方向前进。 其中direction 属于 {North, South, West, East}
can_move(direction): 查看direction方向能否前进。
get_entity_type(): 无参数,查看当前作物种类。
走迷宫很简单,只需要不停的靠墙的一边走,一定可以走出迷宫(游戏中保证生成的迷宫是有解的)。
因此我们仿照生活中“贴墙靠右走”的逻辑,让无人机尝试向右-不行再向前-不行再向左-实在不行向后回头的循环。
代码如下:
编程农场中,要求收获仙人掌的时候,仙人掌大小在行、列方向都是从小到大的。
同时作者给出了几个函数接口:
move(direction): 向着direction方向前进。 其中direction 属于 {North, South, West, East}
measure(): 测量当前土地仙人掌大小
measure(direction): 测量direction方向土地的仙人掌大小
swap(direction): 将当前土地上与direction方向的仙人掌交换
显然只能使用相邻交换式的排序-冒泡排序进行处理。同时作者提示中给了重要信息:
可以先对每行排序,排序后再对每列排序。
实现代码:
分区处理,种南瓜,仙人掌排序都可以这样玩,供参考。
def do_plant(type):
need_soil = [Entities.Carrot, Entities.Sunflower, Entities.Pumpkin, Entities.Cactus]
if type in need_soil:
if get_ground_type() != Grounds.Soil:
till()
else:
if get_ground_type() == Grounds.Soil:
till()
plant(type)
if get_water() < 0.5 and num_items(Items.Water) > 0:
use_item(Items.Water)
def do_harvest():
# if get_entity_type() == Entities.Sunflower:
# if measure() > 14:
# return
harvest()
def move_dir_n(dir, n):
movable = True
for i in range(n):
if not movable:
break
movable = movable and move(dir)
return movable
def move_to(x, y, shortest=True):
N = get_world_size()
cx, cy = get_pos_x(), get_pos_y()
if shortest:
dx = ((x - cx + N // 2) % N) - N // 2
dy = ((y - cy + N // 2) % N) - N // 2
else:
dx = x - cx
dy = y - cy
movable = True
for d, dir_pos, dir_neg in [(dx, East, West), (dy, North, South)]:
if d > 0:
movable = movable and move_dir_n(dir_pos, d)
elif d < 0:
movable = movable and move_dir_n(dir_neg, -d)
return movable
def fork_join(f, maxN = max_drones()):
drone_handle = []
for id in range(maxN - 1):
def f_warpper(id_ = id):
f(id_)
drone_handle。append(spawn_drone(f_warpper))
f(maxN - 1)
for handle in drone_handle:
if handle:
wait_for(handle)
def spawn_by_column(f, maxN = max_drones()):
N = get_world_size()
perN = (N + maxN - 1) // maxN
quick_print("perN", perN)
def run_column(id):
if id * perN >= N:
return
exited = False
while not exited:
for x in range(id * perN, min((id + 1) * perN, N)):
for y in range(N):
move_to(x, y)
exited = f()
if exited:
break
if exited:
break
fork_join(run_column, maxN)
def plant_by_column(plant_type = [Entities.Carrot, Entities.Sunflower, Entities.Tree, Entities.Grass]):
def f():
if can_harvest():
do_harvest()
plant_ty = plant_type[get_pos_x() % len(plant_type)]
if plant_ty == Entities.Tree and get_pos_y() % 2 == 1:
plant_ty = Entities.Bush
do_plant(plant_ty)
return False
return f
spawn_by_column(plant_by_column())
01 编程与农场的奇妙融合
《编程农场》是一款将编程与模拟经营深度融合的创新游戏。
玩家扮演一名农场主,通过编写代码控制无人机替代传统人力,实现播种、灌溉、收割等农活的全程自动化。
游戏摒弃了传统农场游戏的体力劳作,转而考验玩家的逻辑思维与编程能力,目标是通过优化代码成为“全球效率第一的农场主”。
游戏采用了一种简单的、类似Python的语言对无人机进行编程,即使是没有编程基础的初学者也能轻松上手。
02 1.0版本全新内容
1.0正式版带来了多项重要更新,极大地提升了游戏体验。
其中最令人兴奋的是多无人机同时耕作系统,现在玩家可以编程控制多台无人机协同工作,大幅提升农场效率。
游戏的技术树和进度系统经过了重新设计,现在以更指数级的方式运行,支持建设规模更大的农场。
视听体验方面,游戏的声音和音乐已完全重制,营造更加沉浸式的农场编程环境。
为服务全球玩家,游戏已翻译支持11种语言,包括简体中文。
03 渐进式学习曲线
与大多数编程游戏不同,《编程农场》没有划分为多个独立关卡,而是采用了连续的渐进式成长机制。
新手玩家可以通过游戏循序渐进地掌握变量、循环等基础编程逻辑。
而有经验的程序员可以直接挑战后期更复杂的任务,如并行任务调度和算法复杂度优化。
热门推荐
相关应用
实时热词
评分及评论
点击星星用来评分