Merge pull request #38 from tobby3600/main

逻辑节格式修复1
This commit is contained in:
tobby3600 2023-08-21 18:31:11 +08:00 committed by GitHub
commit e161fac3df
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -8,12 +8,15 @@ outline: deep
由于这个组的特殊性,格式不标准,请勿参考这个组的写法。
:::
### 前置知识
## 前置知识
::: tip
以下的内容为`逻辑组前置知识`,是学习逻辑必备的前置内容。
:::
#### 布尔值
### 布尔值
<font color=orange>布尔值</font>表达“真(true)”或“假(false)”的一个状态。在铁锈中,布尔值(`boolean`)被运用于逻辑判断。
#### 数据类型
### 数据类型
数据类型指数据的种类,在铁锈中,不同的数据有不同的类型,不同的数据类型之间通常不能直接进行运算。
|常见数据类型英文 |存储的值类型 |
@ -27,97 +30,153 @@ outline: deep
数据类型之间的转换函数包括:`int`、`str`。
#### 算数优先级
### 算数优先级
与数学中计算符一样,铁锈中算数运算符有优先级区别。`%`和`*`和`/`的优先级大于`+`和`-`。
### 比较运算符
## 比较运算符
::: tip
以下的内容为逻辑中用于`比较`的运算符。
:::
#### 如果
代码:if 中文释义:如果
### if
#### if-代码简介
代码:if 中文释义:如果 类型:逻辑函数
#### if-要点指示
`if`是大部分逻辑运算的开头(select等不需要if),用于在支持逻辑的键引入逻辑判断。
<!-- 若要连续嵌套请直接使用Html原生代码 -->
<div class="alert callout tip">
<p>演示例子:</p>
</div>
#### if-演示例子
```ini
[action]
autoTrigger:if self.maxHp() > memory.emx_hp
```
#### 小于
代码:< 中文释义:小于<br>
<hr>
### <
#### <-代码简介
代码:< 中文释义:小于 类型:比较运算符
#### <-要点指示
小于用于在逻辑布尔值中比较两个数的大小,格式为`数据a < 数据b``a<b`则整个式子的值为`true`否则为`false`
<!-- 自定义的提示框请使用原生Html进行套入 -->
<div class="alert callout note">
<p class="title">
<span class="icon icon-note"></span>要点指示:</p>
</div>
#### <-演示例子
```ini
[action]
autoTrigger:if memory.a < memory.b
```
#### 大于
代码:> 中文释义:大于<br>
同上,格式为`数据a > 数据b`,若`a>b`则整个式子的值为`true`,否则为`false`。
<hr>
#### 小于等于
代码:<= 中文释义:小于等于<br>
同上,若`a<=b`则整个式子的值为`true`,否则为`false`。
### >
#### >-代码简介
代码:> 中文释义:大于 类型:比较运算符
#### >-要点指示
大于用于在逻辑布尔值中比较两个数的大小,格式为`数据a > 数据b`,若`a>b`则整个式子的值为`true`,否则为`false`。
#### >-演示例子
```ini
[action]
autoTrigger:if memory.a > memory.b
```
#### 大于等于
代码:>= 中文释义:大于等于<br>
同上,若`a>=b`则整个式子的值为`true`,否则为`false`。
<hr>
#### 等于
代码:== 中文释义:等于<br>
### <=
#### <=-代码简介
代码:<= 中文释义:小于等于 类型:比较运算符
#### <=-要点指示
小于等于用于在逻辑布尔值中比较两个数的大小,格式为`数据a <= 数据b`,若`a<=b`则整个式子的值为`true`,否则为`false`。
#### <=-演示例子
```ini
[action]
autoTrigger:if memory.a <= memory.b
```
<hr>
### >=
#### >=-代码简介
代码:>= 中文释义:大于等于 类型:比较运算符
#### >=-要点指示
大于等于用于在逻辑布尔值中比较两个数的大小,格式为`数据a >= 数据b`,若`a>=b`则整个式子的值为`true`,否则为`false`。
#### >=-演示例子
```ini
[action]
autoTrigger:if memory.a >= memory.b
```
<hr>
### ==
#### ==-代码简介
代码:== 中文释义:等于 类型:比较运算符
#### ==-要点指示
等于用于在逻辑布尔值中比较值是否相同,格式为`数据a = 数据b`,若`a=b`则整个式子的值为`true`,否则为`false`。
::: tip
请注意,铁锈中等于的符号为<font color=orange>==</font><font color=orange>=</font>在铁锈中用于赋值或参数。
:::
#### ==-演示例子
```ini
[action]
autoTrigger:if memory.a == memory.b
```
<hr>
同上,若`a=b`则整个式子的值为`true`,否则为`false`。
### !=
#### !=-代码简介
代码:!= 中文释义:不等于 类型:比较运算符
#### !=-要点指示
不等于用于在逻辑布尔值中比较值是否相同,格式为`数据a = 数据b`,若`a!=b`则整个式子的值为`true`,否则为`false`。
#### !=-演示例子
```ini
[action]
autoTrigger:if memory.a != memory.b
```
#### 不等于
代码:!= 中文释义:不等于<br>
同上,若`a!=b`则整个式子的值为`true`,否则为`false`。
<hr>
### 逻辑运算符
## 逻辑运算符
::: tip
以下的内容为逻辑中用于`进行逻辑运算`的运算符,它们的结果都是`boolean`类型。
:::
#### 且
代码:and 中文释义:且<br>
### and
#### and-代码简介
代码:and 中文释义:且 类型:逻辑运算符
#### and-要点指示
::: tip
<font color=orange>and</font>用于连接两个逻辑判断,只有在这两个逻辑判断的值都为<font color=orange>true</font>时,<font color=orange>and</font>的值才为true。
<br>
:::
<!-- 自定义的提示框请使用原生Html进行套入 -->
<div class="alert callout note">
<p class="title">
<span class="icon icon-note"></span>要点指示:</p>
</div>
<!-- 并保证首尾留有一行换行以便Markdown正确解析 -->
#### and-演示例子
```ini
[action]
autoTrigger:if memory.a < memory.b and memory.a > memory.c
# 在这个例子中只有a小于b且a大于c时自动触发才会被触发
```
#### 或
代码:or 中文释义:或<br>
<hr>
### or
#### or-代码简介
代码:or 中文释义:或 类型:逻辑运算符
#### or-要点指示
::: tip
<font color=orange>or</font>用于连接两个逻辑判断,只要这两个逻辑判断的值有一个为<font color=orange>true</font>时,<font color=orange>or</font>的值就为true。
<br>
:::
#### 非
代码:not 中文释义:非<br>
#### or-演示例子
```ini
[action]
autoTrigger:if memory.a < memory.b or memory.a > memory.c
# 在这个例子中只要a小于b或a大于c自动触发就会被触发
```
<hr>
### not
#### not-代码简介
代码:not 中文释义:非 类型:逻辑运算符
#### not-要点指示
::: tip
<font color=orange>not</font>用于将某个逻辑判断的值取反,即`true`变`false``false`变`true`。
:::
@ -127,6 +186,9 @@ autoTrigger:if memory.a < memory.b and memory.a > memory.c
<br>推荐<font color=orange>在不确定优先级时打括号</font>
:::
#### not-演示例子
:::
<div class="alert callout tip">
<p>演示例子:</p>
</div>
@ -141,60 +203,102 @@ autoTrigger:if (memory.a < memory.b or memory.a > memory.c) and not memory.a < m
考考你,在上述这个例子中,满足什么条件才会触发?
```
```bash [显示答案]
答案a必须满足小于b和大于c中的一个且a必须小于d自动触发才会被触发。
答案a必须满足小于b和大于c中的一个且a必须小于d自动触发才会被触发。
```
:::
<hr>
### 算数运算符
#### 加
代码:+ 中文释义:加<br>
加用于将两个逻辑值相加,得到结果,格式为`数据a + 数据b`。
## 算数运算符
::: tip
以下的内容为逻辑中用于`进行算数运算`的运算符,它们的结果类型为`参与运算的值的`类型。
:::
::: info
不同数据类型通常<font color=orange>不能直接进行算数运算</font>,但在部分情况下,<font color=orange>number</font><font color=orange>float</font>类型可以混用(建议<font color=orange>所有数值全部使用float</font>来避免混淆)。
:::
<div class="alert callout tip">
<p>演示例子:</p>
</div>
### +
#### +-代码简介
代码:+ 中文释义:加 类型:算数运算符
#### +-要点指示
加用于将两个逻辑值相加,得到结果,格式为`数据a + 数据b`。
#### +-演示例子
```ini
[action]
autoTrigger:if (memory.a + memory.c) < memory.b
#内存a和c的值之和需要小于b
```
#### 减
代码:- 中文释义:减<br>
<hr>
### -
#### --代码简介
代码:- 中文释义:减 类型:算数运算符
#### --要点指示
减用于将两个逻辑值相减,得到结果,格式为`数据a - 数据b`。
::: info
对于<font color=orange>不满足交换律的运算符</font>,需要注意<font color=orange>运算优先级</font>是否正确。由于铁锈本身bug<font color=orange>在数学上正确的优先级不一定在铁锈中正确</font>,因此可能出现减法顺序混乱等问题。
<br>为了避免可能的问题,请尽量在任何<font color=orange>不满足交换律的运算符</font>两边打上括号。
:::
#### 乘
代码:* 中文释义:乘<br>
#### --演示例子
```ini
[action]
autoTrigger:if (memory.a - memory.c) < memory.b
#内存a与c的值之差需要小于b
```
<hr>
### *
#### *-代码简介
代码:* 中文释义:乘 类型:算数运算符
#### *-要点指示
乘用于将两个逻辑值相乘,得到结果,格式为`数据a * 数据b`。
#### *-演示例子
```ini
[action]
autoTrigger:if (memory.a * memory.c) == memory.b
#内存a和c的乘积需要等于b
```
#### 除
代码:/ 中文释义:除<br>
<hr>
### /
#### /-代码简介
代码:/ 中文释义:除 类型:算数运算符
#### /-要点指示
除用于将两个逻辑值相除,得到结果,格式为`数据a / 数据b`。
#### /-演示例子
```ini
[action]
autoTrigger:if (memory.a / memory.c) == memory.b
#内存a除以c的积需要等于b
```
#### 求余
代码:% 中文释义:求余(取模)<br>
<hr>
求余用于获取两个逻辑值中,第一个除第二个的余数,格式为`数据a % 数据b`。
例如`7%3=1(7除3余1)`
### %
#### %-代码简介
代码:% 中文释义:求余(取模) 类型:算数运算符
#### %-要点指示
求余用于获取两个逻辑值中,第一个除第二个的余数,格式为`数据a % 数据b`,例如`7%3=1(7除3余1)`。
#### %-演示例子
```ini
[action]
autoTrigger:if (memory.a % memory.c) == memory.b
#内存a除以c的余数需要等于b
```
### 单位统计
<hr>
#### 通用统计关键字
## 单位统计
::: tip
以下的内容为逻辑中用于`单位数值获取`的函数,它们的类型与单位此项数值对应。
:::
### 通用统计关键字
单位统计中部分通用的关键字:
1. `greaterThan` 大于
2. `lessThan` 小于
@ -202,7 +306,7 @@ autoTrigger:if (memory.a + memory.c) < memory.b
4. `full`
5. `equalTo` 等于
#### 内置参数
### 内置参数-单一或无传参
单位统计中部分内置参数返回代码(由于过于简单不单独列出):
1. `self.hp()` 生命值
2. `self.maxHp()` 最大生命值
@ -242,6 +346,10 @@ autoTrigger:if (memory.a + memory.c) < memory.b
36. `game.mapHeight()` 地图高度
37. `game.nukesEnabled()` 是否启用核武器
### 内置参数-需要传参
<!-- 这一部分因为###被占用,无法按照传统格式 -->
self.hasResources()
代码:self.hasResources() 中文释义:有资源 返回类型:boolean<br>
@ -283,7 +391,7 @@ self.numberOfQueuedWaypoints()
`self.numberOfQueuedWaypoints()`用于返回队列中路径点的数量。格式为`self.numberOfQueuedWaypoints(type="路径点类型")`。
#### 单位运动与定位
### 单位运动与定位
这部分代码的返回值全部为`boolean`类型,用于检测单位的运动和位置情况
1. `self.underwater/self.isUnderwater()` 单位在水下
2. `self.gound/self.ground/self.isAtGroundHeight()` 单位位于地面高度
@ -314,7 +422,7 @@ self.numberOfQueuedWaypoints()
### 单位计时
## 单位计时
self.hasTakenDemage()
代码:self.hasTakenDemage() 中文释义:受到伤害 返回类型:bool<br>
@ -351,7 +459,7 @@ resetCustomTimer:true
showMessageToPlayers:10秒过去了
```
### 杂项
## 杂项
thisActionIndex/index()
代码:thisActionIndex/index() 中文释义:索引 返回类型:float(number)<br>
@ -494,9 +602,9 @@ if parent.readUnitMemory("boostTarget", type="unit") == self
#如果 父单位内存boostTarget的值等于自己
```
### 单位参照
## 单位参照
#### 当前动作目标
### 当前动作目标
::: info
`thisActionTarget`是一条用于获取当前行动目标的代码,不同的行动中,`thisActionTarget`也不同(或没有)。
以下是不同情况下的`thisActionTarget`。
@ -537,7 +645,7 @@ autoTriggerOnEvent: touchTargetSuccess <br>
<!-- 这一段内容是这样的不知道怎么优化格式好一点ling帮帮 :D -->
#### 杂项
### 杂项
attachment
代码:self.attachment() 中文释义:附属物 返回类型:unit/marker<br>
@ -614,7 +722,7 @@ nullUnit
代码:nullUnit 中文释义:空单位 返回类型:unit/marker<br>
`nullUnit`是铁锈的空单位,用于比较/判断。
#### 标记
### 标记
getAsMarker
代码:self.getAsMarker() 中文释义:获取标记 返回类型:unit/marker<br>
@ -637,7 +745,7 @@ eventSource
代码:eventSource 中文释义:事件源 返回类型:event<br>
`eventSource`用于获取`autoTriggerOnEvent`当前触发器,没有则返回`null`,可以看作对于事件的`autoTriggerOnEvent`。
#### 全局函数
### 全局函数
readUnitMemory
代码:self.readUnitMemory() 中文释义:读取单位内存 返回类型:跟随内存类型<br>
@ -753,11 +861,11 @@ rnd
:::
lowercase
代码:lowercase() 中文释义:转小写 返回类型:float<br>
代码:lowercase() 中文释义:转小写 返回类型:string<br>
`lowercase`用于将一个字符串中的大写字符全部转换成小写,格式为`lowercase(string)`。<br>
uppercase
代码:uppercase() 中文释义:转大写 返回类型:float<br>
代码:uppercase() 中文释义:转大写 返回类型:string<br>
`uppercase`用于将一个字符串中的小写字符全部转换成大写,格式为`uppercase(string)`。<br>
direction