本篇教程由作者设定未经允许禁止转载。

众所周知,IC2的杂交非常繁琐,初期培养出良好的种子是及其麻烦的。这里是一个现成的程序,提供给oc的机器人以简化杂交过程

注意,玩过gtnh的朋友应该清楚,ic的oc自动杂交代码是有大佬写过的。我这里提供的代码是我自己的版本,作为oc练手

基于OC的IC2自动杂交-第1张图片

首先先布置好

如图是我预设的规模,实际上田地大小和输入输出箱子都是可以设置的。箱子预设有三个:输入箱子应当预先装满杂交架,剩下两个箱子空置用于输出。机器人放置在更高一层,下方可以放置充电器

机器人需要有:机箱,cpu,显卡,键盘,显示器,硬盘,eeprom,容器升级,物品控制器升级,地质分析仪。鉴于最低级的硬盘会被open os占据全部空间,而且更高级的硬盘在gtnh里需要钛,你可能还需要考虑一个软盘驱动器

然后打开config.lua

config.inputChest = {x = 0, y = 1}
config.outputChest = {x = 0, y = 2}
config.trashChest = {x = 0, y = 3}

--箱子坐标,以机器人为原点,向前为x轴正方向,向右为y轴正方向
--inputChest里面应该只存放足够的杂交架
--outputChest会输出所有其他作物,产物以及合格的作物
--trashChest会输出所有不合格的作物

config.grothMax = 20
config.gainMax = 30
config.resistanceMax = 0

--作物属性最大值

这里写的很清楚了。机器人将以你运行程序时的坐标和方向为原点,x代表着前后,y代表着右左。所以这里预设的三个坐标正好是上图箱子坐标,即原点向右1,2,3格

这里是作物目标预设,也就是说机器人会按照20/30/0的成长/收获/抗性杂交。注意这里设定的比较极端,在30级已经很难收获种子包了,而且植物经常枯死,请自行权衡

config.G_w = 0.4
config.A_w = 0.5
config.R_w = 0.1

--作物属性权重

config.G_d = 20 ^ 2
config.A_d = 30 ^ 2
config.R_d = 5 ^ 2

--作物属性标准化偏差,一般设定为属性最大值的平方,如果属性最大值为0,则设定为5的平方

config.ziel = 0.022

--目标分数,越接近0越好

权重和分母这里需要根据最大值修改,需要注意权重和为1

目标分数已经预设完毕,越接近0越严格

config.robotMaxSlot = 16

--机器人背包最大槽位

config.robotCommandList = {
{side = sides.front, step = 7},
{side = sides.right, step = 1},
{side = sides.right, step = 6},
{side = sides.left, step = 1},
{side = sides.left, step = 6}
}

--机器人指令列表,side为机器人移动方向,step为机器人移动步数。机器人先转向,再移动。不需要返回原点,机器人会自动返回原点
--请遍历杂交田的每一个点
--初始化时,机器人会自动尝试往每一个空位放置杂交架,如果放置成功则为子代。并且机器人会记录所有已经存在的作物作为母代

最大槽位意味着机器人内部的槽位数量,并不是越大越好,因为大容量意味着每轮检索会变慢

下方是机器人指令,是控制机器人运行轨迹的,每条指令会控制机器人先往转向,然后向前走。这些指令的意思是向前7格,右转,前进一格,右转,前进6格,以此类推,可以自行规划田地形状

然后执行main文件,你会发现四条指令

print("欢迎使用自动杂交系统")
print("1.扫描农田,此功能用于确定杂交架位置。请首先在设置文件里确认机器人路径,输入输出和垃圾箱子,在机器人的第一格放入一组杂交架,并装备上crop++的铲子。")
print("2.重新扫描农田。如果你母代子代杂交架位置没有改变,但是作物本身产生未经记录的变化选择此项。")
print("3.优选模式,此模式只适用于单一种类作物,会按照设置文件内的设置进行杂交。")
print("4.杂交模式,此模式只会收获子代,而且因为杂交特性,会在作物倒数第二阶段收获(因为有些作物不在特定条件无法长大)。")

首先,初始化机器人需要执行一遍扫描,以生成farmData.txt

注意机器人的装备一格必须放置crop++的小铲子,第一格必须放置足够的杂交架

机器人会记录路径上所有预设有作物的杂交架,并将其记录为母代,会尝试向路径上所有空格放置杂交架,如果放置成功便记录为子代。如果无法放置杂交架便会设定为空,所以如果你有不想放置杂交架的地方就别在下面放置耕地,机器人能识别到

然后打开优选模式,坐享其成吧。机器人会经过一遍遍,反复筛选出更加符合的种子

需要注意,机器人仅会清除子代杂草,并不会清除母代的杂草。所以为了防止杂草蔓延,务必使用作物监管机并提供足够的除草剂

如果你自行变更了母代或者有关作物属性的设置,需要执行2重新扫描,该扫描并不会修改子代和母代的设置

基于OC的IC2自动杂交-第2张图片

如图,可以考虑使用gtnh的世界加速器,但是别忘了除草剂

原理是:机器人会给所有作物打一个分数,每轮循环都有一个最差分数对应最差母代,机器人将会摧毁所有低于最差母代的作物,收获高于最差母代的作物,并且每经过一个母代就会尝试检索分数更高的作物将其替换

代码:

下载地址