本篇教程由作者设定使用 CC BY-NC-SA 协议。


这篇教程主要引入常量、变量、运算符等概念


什么是常量?什么是变量?

例如,打开逻辑编程器,选择整型,输入一个数,再放个变量卡进去,再拿出来,这样你就获得了一个常量,它的值是不会变化的,这就是常量

逻辑编程教程(基础篇)-第1张图片

而且能直接看到常量的值:

逻辑编程教程(基础篇)-第2张图片

 

如果我们对两个整型常量进行加法运算:

逻辑编程教程(基础篇)-第3张图片

会得到一个新的东西,叫做变量,它的类型为整型,由于这个变量的值与相加的两个数有关,例如第一个变量卡值为1,第二个变量卡值为2,进行加法运算后返回的值为3,若将第一个变量卡值改为2,那么返回的结果就是4,所以我们称它为“变量”。

变量的值是不能直接看到的:

逻辑编程教程(基础篇)-第4张图片

变量值查看方式在运算符那节会被提到。

 

常量获取方式:

1)逻辑编程器选择诸如整型、字符串、对应物品这些选项,设置一个值,再放入变量卡然后取出

2)使用固值器

变量获取方式:

1)逻辑编程器中使用运算符(使用方法请往下看)

2)通过各种读取器

 

 

常量与变量的类型:

1)基本类型(流体、原料、整型、合成、列表、方块、长整型、布尔、字符串、双精度浮点型、物品、实体、NBT)

2)运算符:运算符其实对应的是现实世界编程中的“函数”

详细的含义可以查看mod自带的手册:论集成动力

或者其网页版

https://integrateddynamics.rubensworks.net/book/_lang/zh_cn/manual/logic/value_types/

 

基本类型(复制于官方手册)

类型

描述

Boolean(布尔)

最简单的数据类型, 其数据可以是True(真)或者False(假).

Integer(整型)

用于表示正整数和负整数的数据类型。例如 -20, 0, 1000, 333, ...

它的取值范围在   –2147483648~2147483647之间。

该数据类型是Number(数字)类型的一部分。

Double(双精度浮点型)

实数,也可以是正数或负数。例如 3.1415, 4815162342, 3.33333333, ...

该数据类型是Number(数字)类型的一部分。

Long(长整型)

和Integers(整型)类似,但它拥有更大的取值范围: -9 223 372 036 854 775 808~9 223 372 036 854 775 807之间

该数据类型是Number(数字)类型的一部分。

String(字符串)

一系列的字符,例如 "aaa", "Hi!", "x!(àà)ç", ...

List(列表)

包含某个数据类型的数据的列表。   某个特定的所有元素只能包含相同数据类型的数据。例如 (0, 1, 2, 3), ("a", "b", "c"),   (3,33, 1,14, 5, 6)

NBT

在Minecraft中,某些东西会使用NBT这种数据结构。NBT是一种特殊类型的对象,它可以容纳不同类型的多个值。例如,箱子中存储的所有道具,镐子的附魔信息等等这些都是NBT的实际体现。

变量可以保存这些NBT标签的引用,并且还有一些相应的运算符来读取或扩展这些标签。

NBT标签通常在该Mod中作为低级别的备用机制,以防止您无法通过专用运算符来读取某些信息。(都拿到NBT了还有拿不到的数据吗?)

Block(方块)

对Minecraft方块的引用,例如 泥土, 圆石, 红色染色黏土, 箱子, ....

Item(对应物品)

对Minecraft物品的引用,例如 苹果, 红石, 钻石镐, 附魔剑, ....

Entity(实体)

对Minecraft实体的引用,例如 僵尸, 牛, 玩家abc ....

Fluid(流体)

对Minecraft流体的引用,例如 岩浆@1000mB, 水@3mB, 门瑞欧树脂@3030mB, ....

Ingredients

物品,流体和能量值(整数)的集合。它的主要用途是代表配方的输入和输出(类似于AE的样板,但是输入和输出的分开的,也就是一个配方要用两张变量卡分别表示输入输出)。

Recipe

一种抽象的合成配方,将“成分”作为输入并输出另一个“成分”值。可以使用逻辑编程器可视地创建食谱,也可以使用机器读取器从(受支持的)机器中读取配方。这些配方可用于集成合成学(Integrated Crafting)。

 

 

什么是运算符?

运算符对应于现实世界中编程的“函数”,如果有编程基础的话应该对函数的概念很熟悉(不懂也可以百度一下),它具有一个或多个输入值,以及一个输出值,运算符会执行一些特定的命令,用于实现数学计算的加减乘除、逻辑运算的与或非等功能。

集成动力内置了大量的运算符,这些运算符是实现逻辑编程最基本的东西,限于篇幅这里就不介绍每个运算符的作用了,在逻辑编程器中能看到每个运算符的作用(或者官方手册网页版https://integrateddynamics.rubensworks.net/book/_lang/zh_cn/manual/logic_programming.html)。

运算符还有一个重要的特性——柯里化,这个能用来实现自定义的运算符,这个会在下一篇教程讲解。

在开始编程前建议多看看有哪些内置的运算符,弄明白能实现什么功能,这对编程会有很大的帮助。

 

 

运算符的使用:

在逻辑编程台中使用运算符是获取变量的方式之一,例如上面提到的加法运算,其实就是利用了“加”运算符:

逻辑编程教程(基础篇)-第5张图片


鼠标移动到“加”运算符标签,可以看到需要多少个输入值,输入值的类型,以及输出值的类型。

右侧位置也能看到需要什么类型的输入值输出值:

逻辑编程教程(基础篇)-第6张图片


使用“加”运算符的过程:

逻辑编程教程(基础篇)-第7张图片

 

放入两张已赋值的变量卡,右下角再放入空变量卡再拿出来,这样就完成了加法运算,但是这个变量卡并不能像常量那样直接看到值,因为它的值只有在集成动力网络中才会被计算出来。

逻辑编程教程(基础篇)-第8张图片

想要看到变量的值,就需要使用显示器,将变量放入显示器中,就能显示出这个“加”运算的结果:

逻辑编程教程(基础篇)-第9张图片

这里能显示变量值的前提是网络中得有“加”运算符引用的两个输入变量,这时就需要将这两个变量卡放进变量卡箱中,否则显示器会显示个红色的叉,右键显示器,鼠标移到红色叉,会提示无法找到变量:

逻辑编程教程(基础篇)-第10张图片

将变量卡放入各种输入口输出口也可以看到变量值,同样的如果缺少部分输入变量,也会出一个红叉:

逻辑编程教程(基础篇)-第11张图片

 逻辑编程教程(基础篇)-第12张图片