算个数
基本信息:
- 作者: 仑质(BenzenPenxil)
- 联系方式: benzenpenxil@qq.com
- 版本: 200715
- 更新日期: 2020/7/15
- 简介: 一个会算数的牌堆
- 关键词:
算个数
- 许可协议: CC BY-NC-SA 4.0
详细介绍:
灵活运用牌堆的递归引用特性,我们可以做很多事。
本牌堆的实际内容如下:
{
"算个数":[
"{%_calculator}"
],
"_calculator":[
"{%_node_start}"
],
"_node_start":[
"{%_node_start_str}{%_node_int}]"
],
"_node_start_str":[
"算算就算算:"
],
"_node_int":[
"0{%_node_operator}0",
"1{%_node_operator}1",
"2{%_node_operator}2",
"3{%_node_operator}3",
"4{%_node_operator}4",
"5{%_node_operator}5",
"6{%_node_operator}6",
"7{%_node_operator}7",
"8{%_node_operator}8",
"9{%_node_operator}9"
],
"_node_operator":[
"+{%_node_int}+",
"×{%_node_int}*",
"{%_node_end}"
],
"_node_end":[
"{%_node_end_str}["
],
"_node_end_str":[
"="
]
}
算个数
抽取结果将会返回一个随机生成的运算算式,并正确的计算结果,例如:
12:57:14 <仑质> .draw 算个数
12:57:14 <小青果酱> 算算就算算:0+5+8+5+8×0+3×5×5×8+1+4+2+0+5+2+6+8+7=653
这个思路的本质在于牌堆的递归调用后,每一次完成调用后原路返回时,Dice! 会对完成拼接的文本进行骰值表达书的解析,所以可以通过在多次调用后拼接骰值表达式的方式对计算的解析进行控制。
例如,本抽取示例中,完成拼接并进行有效的骰值表达式计算解析前的文本为:
0+5+8+5+8×0+3×5×5×8+1+4+2+0+5+2+6+8+7=[7+8+6+2+5+0+2+4+1+8*5*5*3+0*8+5+8+5+0]
请充分利用这种机制进行简单的牌堆逻辑的实现。
下载地址: