算个数

使用《署名—非商业性使用—相同方式共享 4.0 协议国际版》(CC BY-NC-SA 4.0)进行授权
https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode.zh-Hans


基本信息:

  • 作者: 仑质(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]
请充分利用这种机制进行简单的牌堆逻辑的实现。


下载地址:

lets-count.zip
416B

感觉挺有趣,不过还没想到适用于这个的比较好玩的点子

    13 天 后
    10 天 后
    1 年 后

    请问一下,如果删去=,一直不结束,最后会怎么样?

    说点什么吧...