小编Jan*_*nik的帖子

谷歌工作表单元格重新计算

我正在创建一个棋盘游戏,为此我决定选择 Google 表格。我已将我的问题简化为一个由一张纸和一个脚本组成的最小示例。


情况

以下几点参考我的骰子表:

  • 单元格B2:C5包含可用的骰子。第一列包含骰子精灵,第二列包含以逗号分隔的骰子面数。
    • 游戏设计视角:艺术家可以改变骰子图像。设计者可以改变骰子的面数。两种类型的更改都会自动传播到引用骰子的单元格。
  • 单元格E2:I2E10:I10包含特定throw。在每次投掷中有1 到 5 个B列中骰子的引用。
    • 游戏设计观点:有许多不同的游戏项目,每个项目都有可能不同的骰子来决定动作的结果。设计者可以添加或删除对骰子的引用,它会触发特定单元格的自动重新计算(在我们的例子中,这些单元格是K2K10)。
  • K2K10开始的单元格保存DICEFACES应用于范围E2:I2E10:I10的函数的结果。
    • 游戏设计观点:骰子面矩阵将进一步用于计算骰子概率。为简单起见,我将矩阵本身视为最终结果。
  • DICEFACES是我在Code.gs与样式表关联的文件中的脚本编辑器中创建的自定义函数。它返回与提供范围内的骰子对应的骰子面矩阵。它的身体如下:

    function DICEFACES(unused_ref_to_range_containing_dices)
    {
      var app  = SpreadsheetApp;
      var spr  = app.getActiveSheet();
    
      // In the end this array will hold the dice faces. For example two
      // 1d6 dices would result in …
    Run Code Online (Sandbox Code Playgroud)

google-sheets google-apps-script custom-function google-sheets-formula

5
推荐指数
1
解决办法
185
查看次数