
本指南包含以下程序: 1) 我用来达到世界第11名的程序(7分36秒内获得2亿南瓜) 2) 用于完成1无人机成就的程序 3) 简化的游戏通关程序无法识别内容,已删除。
1) Программа с помощью которой я достиг топ 11 места в мире 7.36 The program I used to reach the top 11 in the world (200 million pumpkins in 7 minutes 36 seconds) https://images.steamusercontent.com/ugc/11271849466455372074/7A993263573E27C19ABE742FAD93CAF58ACB5F23/?imw=256&&ima=fit&impolicy=Letterbox&imcolor=%23000000&letterbox=false clear() def move_like_snake(x0, y0, xmax, ymax): xnew = get_pos_x() - x0 ynew = get_pos_y() - y0 if xnew == 0 and ynew > 0: move(South) elif ynew % 2 == 0: if xnew == xmax-1: move(North) else: move(East) elif xnew == 1 and ynew != ymax-1: move(North) else: move(West) def water_more(): if get_water() < 0.75: use_item(Items.Water) def water(): if get_water() < 0.5: use_item(Items.Water) elif get_water() < 0.75 and num_items(Items.Water) > 2: use_item(Items.Water) def ProTill(): if get_ground_type() != Grounds.Soil: till() def PumpkinIsReady(): while get_pos_x() != 31: move(East) NewMeasure=measure() move(East) MeasureEnd=measure() move(West) return NewMeasure == MeasureEnd def PlantPumpkin(): while get_entity_type() != Entities.Pumpkin: plant(Entities.Pumpkin) def Plant_and_water_Pumpkin(): while get_entity_type() != Entities.Pumpkin: plant(Entities.Pumpkin) water() use_item(Items.Fertilizer) def Plant_and_fertilize_Pumpkin(): while get_entity_type() != Entities.Pumpkin: plant(Entities.Pumpkin) water() use_item(Items.Fertilizer) def mega_pumpkin_dead(): WorldSize = get_world_size() xmax = 4 ymax = 8 x0 = get_pos_x() - get_pos_x() % 4 y0 = (3 - get_pos_x() % 4) * 8 if y0 == 24: move(South) elif y0 == 16: for i in range(9): move(South) elif y0 == 8: for i in range(8): move(North) while num_items(Items.Pumpkin) < 200000000: #Plant all for i in range(WorldSize): ProTill() PlantPumpkin() move_like_snake(x0, y0, xmax, ymax) #check dead_pumpkin dead_pumpkins = [] all_pumpkins = True for i in range(WorldSize): ent = get_entity_type() if ent == Entities.Dead_Pumpkin: dead_pumpkins.append((get_pos_x(), get_pos_y())) PlantPumpkin() all_pumpkins = False elif ent == Entities.Pumpkin and not can_harvest(): dead_pumpkins.append((get_pos_x(), get_pos_y())) water() all_pumpkins = False move_like_snake(x0, y0, xmax, ymax) last_pos_x = 0 last_pos_y = 0 #go_to dead_pumpkins and plant while get_entity_type() != None: y = get_pos_y() x = get_pos_x() new_pos_x = 0 new_pos_y = 0 #find near dead_pumpkins but not 0 for (x_dead, y_dead) in dead_pumpkins: if (x, y) != (x_dead, y_dead): temporary_pos_x, temporary_pos_y = measure_pos(x_dead, y_dead, x, y) if (temporary_pos_x, temporary_pos_y) != (0, 0): if (temporary_pos_x, temporary_pos_y) != (last_pos_x, last_pos_y): if (new_pos_x, new_pos_y) == (0, 0) or abs(new_pos_x)+abs(new_pos_y) > abs(temporary_pos_x)+abs(temporary_pos_y): (new_pos_x, new_pos_y) = (temporary_pos_x, temporary_pos_y) #go_to new position last_pos_x = -new_pos_x last_pos_y = -new_pos_y if (new_pos_x, new_pos_y) != (0, 0): go_to_new_pos(new_pos_x, new_pos_y) #checking for dead pumpkins and replanting if dead_pumpkins != []: ent = get_entity_type() if ent == Entities.Dead_Pumpkin: Plant_and_fertilize_Pumpkin() elif not can_harvest() and ent == Entities.Pumpkin: water_more() elif can_harvest() and ent == Entities.Pumpkin and (get_pos_x(), get_pos_y()) in dead_pumpkins: dead_pumpkins.remove((get_pos_x(), get_pos_y())) elif ent == None: break else: water() move_like_snake(x0, y0, xmax, ymax) #go_to new position def go_to_new_pos(new_pos_x, new_pos_y): if new_pos_y >0: for i in range(new_pos_y): move(North) else: for i in range(abs(new_pos_y)): move(South) if new_pos_x >0: for i in range(new_pos_x): move(East) else: for i in range(abs(new_pos_x)): move(West) #measuring the difference between positions def measure_pos(x_dead, y_dead, x, y): ky = y_dead - y kx = x_dead - x return kx, ky #Spawn Drones for i in range(max_drones()-1): spawn_drone(mega_pumpkin_dead) move(East) #main drone x0 = 28 y0 = 0 xmax = 4 ymax = 8 WorldSize = get_world_size() while num_items(Items.Pumpkin) < 200000000: #Plant all for i in range(WorldSize): ProTill() PlantPumpkin() move_like_snake(x0, y0, xmax, ymax) #check dead_pumpkin dead_pumpkins = [] pumpkins_harvest = False for i in range(WorldSize): ent = get_entity_type() if ent == Entities.Dead_Pumpkin: dead_pumpkins.append((get_pos_x(), get_pos_y())) PlantPumpkin() all_pumpkins = False elif ent == Entities.Pumpkin and not can_harvest(): dead_pumpkins.append((get_pos_x(), get_pos_y())) water() all_pumpkins = False move_like_snake(x0, y0, xmax, ymax) last_pos_x = 0 last_pos_y = 0 #go_to dead_pumpkins and plant while get_entity_type() != None: y = get_pos_y() x = get_pos_x() new_pos_x = 0 new_pos_y = 0 #find near dead_pumpkins but not 0 for (x_dead, y_dead) in dead_pumpkins: if (x, y) != (x_dead, y_dead): temporary_pos_x, temporary_pos_y = measure_pos(x_dead, y_dead, x, y) if (temporary_pos_x, temporary_pos_y) != (0, 0): if (temporary_pos_x, temporary_pos_y) != (last_pos_x, last_pos_y): if (new_pos_x, new_pos_y) == (0, 0) or abs(new_pos_x)+abs(new_pos_y) > abs(temporary_pos_x)+abs(temporary_pos_y): (new_pos_x, new_pos_y) = (temporary_pos_x, temporary_pos_y) #go_to new position last_pos_x = -new_pos_x last_pos_y = -new_pos_y if (new_pos_x, new_pos_y) != (0, 0): go_to_new_pos(new_pos_x, new_pos_y) #checking for dead pumpkins and replanting if dead_pumpkins != []: ent = get_entity_type() if ent == Entities.Dead_Pumpkin: Plant_and_fertilize_Pumpkin() elif not can_harvest() and ent == Entities.Pumpkin: water_more() elif can_harvest() and ent == Entities.Pumpkin and (get_pos_x(), get_pos_y()) in dead_pumpkins: dead_pumpkins.remove((get_pos_x(), get_pos_y())) elif ent == None: break elif PumpkinIsReady(): harvest() pumpkins_harvest = True 2) Программа для достижений с 1 дроном 2) The program for achieving 1 drone achievement clear() def move_like_snake(x0, y0, xmax, ymax): xnew = get_pos_x() - x0 ynew = get_pos_y() - y0 if xnew == 0 and ynew > 0: move(South) elif ynew % 2 == 0: if xnew == xmax-1: move(North) else: move(East) elif xnew == 1 and ynew != ymax-1: move(North) else: move(West) def water(): if get_water() < 0.75: use_item(Items.Water) def ProTill(): if get_ground_type() != Grounds.Soil: till() def PumpkinIsReady(): NewMeasure=measure() move(East) MeasureEnd=measure() move(West) return NewMeasure == MeasureEnd def PlantPumpkin(): while get_entity_type() != Entities.Pumpkin: plant(Entities.Pumpkin) water() def Plant_and_fertilize_Pumpkin(): while get_entity_type() != Entities.Pumpkin: plant(Entities.Pumpkin) water() use_item(Items.Fertilizer) #go_to new position def go_to_new_pos(new_pos_x, new_pos_y): if new_pos_y >0: for i in range(new_pos_y): move(North) else: for i in range(abs(new_pos_y)): move(South) if new_pos_x >0: for i in range(new_pos_x): move(East) else: for i in range(abs(new_pos_x)): move(West) #measuring the difference between positions def measure_pos(x_dead, y_dead, x, y): ky = y_dead - y kx = x_dead - x if kx > 16: kx = kx - 32 elif kx < -16: kx = kx + 32 if ky > 16: ky = ky - 32 elif ky < -16: ky = ky + 32 return kx, ky WorldSize = get_world_size() while num_items(Items.Pumpkin) < 2000000000: for i in range(WorldSize*WorldSize): ProTill() PlantPumpkin() move_like_snake(0, 0, WorldSize, WorldSize) #check dead_pumpkin dead_pumpkins = [] all_pumpkins = True for i in range(WorldSize*WorldSize): ent = get_entity_type() if ent == Entities.Dead_Pumpkin: dead_pumpkins.append((get_pos_x(), get_pos_y())) PlantPumpkin() all_pumpkins = False elif ent == Entities.Pumpkin and not can_harvest(): dead_pumpkins.append((get_pos_x(), get_pos_y())) water() all_pumpkins = False move_like_snake(0, 0, WorldSize, WorldSize) last_pos_x = 0 last_pos_y = 0 #go_to dead_pumpkins and plant while get_entity_type() != None: y = get_pos_y() x = get_pos_x() new_pos_x = 0 new_pos_y = 0 #find near dead_pumpkins but not 0 for (x_dead, y_dead) in dead_pumpkins: if (x, y) != (x_dead, y_dead): temporary_pos_x, temporary_pos_y = measure_pos(x_dead, y_dead, x, y) if (temporary_pos_x, temporary_pos_y) != (0, 0): if (temporary_pos_x, temporary_pos_y) != (last_pos_x, last_pos_y): if (new_pos_x, new_pos_y) == (0, 0) or abs(new_pos_x)+abs(new_pos_y) > abs(temporary_pos_x)+abs(temporary_pos_y): (new_pos_x, new_pos_y) = (temporary_pos_x, temporary_pos_y) #go_to new position last_pos_x = -new_pos_x last_pos_y = -new_pos_y if (new_pos_x, new_pos_y) != (0, 0): go_to_new_pos(new_pos_x, new_pos_y) #checking for dead pumpkins and replanting if dead_pumpkins != []: ent = get_entity_type() if ent == Entities.Dead_Pumpkin: Plant_and_fertilize_Pumpkin() elif not can_harvest() and ent == Entities.Pumpkin: water_more() elif can_harvest() and ent == Entities.Pumpkin and (get_pos_x(), get_pos_y()) in dead_pumpkins: dead_pumpkins.remove((get_pos_x(), get_pos_y())) elif ent == None: break else: harvest() 3) Упрощенная программа для прохождения игры 3) A simplified program for completing the game clear() def move_like_snake(x0, y0, xmax, ymax): xnew = get_pos_x() - x0 ynew = get_pos_y() - y0 if xnew == 0 and ynew > 0: move(South) elif ynew % 2 == 0: if xnew == xmax-1: move(North) else: move(East) elif xnew == 1 and ynew != ymax-1: move(North) else: move(West) def water(): if get_water() < 0.75: use_item(Items.Water) def ProTill(): if get_ground_type() != Grounds.Soil: till() def PumpkinIsReady(): NewMeasure=measure() move(East) MeasureEnd=measure() move(West) return NewMeasure == MeasureEnd def PlantPumpkin(): while get_entity_type() != Entities.Pumpkin: plant(Entities.Pumpkin) water() def Plant_and_water_Pumpkin(): while get_entity_type() != Entities.Pumpkin: plant(Entities.Pumpkin) water() use_item(Items.Fertilizer) def Plant_and_fertilize_Pumpkin(): while get_entity_type() != Entities.Pumpkin: plant(Entities.Pumpkin) water() use_item(Items.Fertilizer) #go_to new position def go_to_new_pos(new_pos_x, new_pos_y): if new_pos_y >0: for i in range(new_pos_y): move(North) else: for i in range(abs(new_pos_y)): move(South) if new_pos_x >0: for i in range(new_pos_x): move(East) else: for i in range(abs(new_pos_x)): move(West) #measuring the difference between positions def measure_pos(x_dead, y_dead, x, y): ky = y_dead - y kx = x_dead - x if kx > 16: kx = kx - 32 elif kx < -16: kx = kx + 32 if ky > 16: ky = ky - 32 elif ky < -16: ky = ky + 32 return kx, ky WorldSize = get_world_size() while num_items(Items.Pumpkin) < 2000000000: for i in range(WorldSize*WorldSize): ProTill() PlantPumpkin() move_like_snake(0, 0, WorldSize, WorldSize) #check dead_pumpkin dead_pumpkins = [] all_pumpkins = True for i in range(WorldSize*WorldSize): ent = get_entity_type() if ent == Entities.Dead_Pumpkin: dead_pumpkins.append((get_pos_x(), get_pos_y())) PlantPumpkin() all_pumpkins = False elif ent == Entities.Pumpkin and not can_harvest(): dead_pumpkins.append((get_pos_x(), get_pos_y())) water() all_pumpkins = False move_like_snake(0, 0, WorldSize, WorldSize) #go_to dead_pumpkins and plant while get_entity_type() != None: y = get_pos_y() x = get_pos_x() #find near dead_pumpkins but not 0 for (x_dead, y_dead) in dead_pumpkins: if (x, y) != (x_dead, y_dead): new_pos_x, new_pos_y = measure_pos(x_dead, y_dead, x, y) break #go_to new position last_pos_x = -new_pos_x last_pos_y = -new_pos_y if (new_pos_x, new_pos_y) != (0, 0): go_to_new_pos(new_pos_x, new_pos_y) #checking for dead pumpkins and replanting if dead_pumpkins != []: ent = get_entity_type() if ent == Entities.Dead_Pumpkin: Plant_and_fertilize_Pumpkin() elif not can_harvest() and ent == Entities.Pumpkin: water_more() elif can_harvest() and ent == Entities.Pumpkin and (get_pos_x(), get_pos_y()) in dead_pumpkins: dead_pumpkins.remove((get_pos_x(), get_pos_y())) elif ent == None: break else: harvest()
2026-02-19 04:01:45 发布在
编程农场
说点好听的...
收藏
0
0
