本篇教程由作者設定使用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張圖片