【问题标题】:Working on script in google-apps-script, any suggestions?在 google-apps-script 中处理脚本,有什么建议吗?
【发布时间】:2015-01-12 20:04:02
【问题描述】:

问题:我正在创建一个或多个数组来写入值,并继续这样做,直到绘制出某个值。此代码的长远观点是,使用这些值将一个字母与另一个字母匹配。 (即二战中使用的炸弹。)除了这将是完全数字的。 Bombe 是一个解密器,它发现一个字母能够映射到另一个字母。 (Enigma 示例将在 cmets 中发布。)我正在尝试使用它来解密任何消息。

理解:我不记得很多代码,尤其是因为我以前从未使用过 google-apps-script。我没有基本的想法,但有些语法是不同的,我迷路了。 (即:不是System.out.print();,而是Logger.log(data);。到目前为止,这就是我从中得到的全部内容。我已经编写了一些代码,可以在here找到。

背景:我理解这是相当多的要阅读的文字,但在你标记我并继续前进之前,请先听我说完。上述评论中“Enigma 示例”字样下的超链接显示了我尝试反向执行的映射。然而,我需要创建我不记得如何创建的循环和变量。我有关于 Enigma 和 Bombe 的信息:Enigma & Bombe info。我在 Google 等上进行了一些搜索,但没有任何我理解或对我的最终目标有益的东西。我得到的只是另一个链接,我将在 cmets 中发布它,它向我展示了他们所说的 basic 循环。

我需要什么帮助:我在以下方面寻求帮助:循环、变量和数组。建议对我来说是最有价值的,因为我来这里是为了学习,而不是通过询问来完成我的工作。

想法:我的一些想法是垃圾收集器、多维数组和/或只是一系列可能性。 (参见上面的“Enigma & Bombe info”链接。

为了方便复制/粘贴:

  function bombeCode1() {
   var fastRotor = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N",
              "O","P","Q","R","S","T","U","V","W","X","Y","Z"];

  var mediumRotor = fastRotor;                 
  var slowRotor = fastRotor;

  var rows = 26;
  var columns = 26;

   for (var i=0; i < rows ; i++) {
    Logger.log('Outer Loop: value of i : ' + i);
   // Logger.log("Partition for Outer Loop");
   // Logger.log(" ");
    var fastRotorValue = fastRotor[i];

   for (var j=0; j < columns ; j++) {
     Logger.log('-Inner Loop value of j : ' +j);
     //var fastRotorValue = fastRotor[i];
     var medRotorValue = mediumRotor[j];

     // Logger.log("---- " + fastRotorValue + " " + medRotorValue);

      for (var k=0; k < 26 ; k++) {

     // Logger.log('---- XXXX Third Loop value of k : ' + k);
      //var fastRotorValue = fastRotor[i];
      //var medRotorValue = mediumRotor[j];
      var slowRotorValue = slowRotor[k];

       Logger.log("---- XXXX " + fastRotorValue + " " + medRotorValue + " " + slowRotorValue);
      };  //var objectNumberValuePair = {"0":"A", "1":"B",     "2":"C","3":"D","4":"E","5":"F","6":"G","7":"H","8":"I",
                          //       "9":"J","10":"K","11":"L","12":"M","13":"N","14":"O","15":"P","16":"Q","17":"R",
                          //        "18":"S","19":"T","20":"U","21":"V","22":"W","23":"X","24":"Y","25":"Z"}
                         //  Logger.log(slowRotorValue = objectNumberValuePair); 
                          //  Logger.log(medRoterValue = objectNumberValuePair);
                             //  Logger.log(fastRoterValue = objectNumberValuePair);
     }

   }
 }

【问题讨论】:

  • Enigma Example 就在这里。
  • 搜索代码示例是正确的here 这是我稍微编辑的代码以实际工作,在我开始之前,它不会运行,因为有未定义的变量等.
  • 我还要补充一点,当我更新我的脚本时,我不知道我的脚本更新是否适合其他人。
  • 真的吗?试试看这里enigmaco.de/enigma/enigma.swf
  • 该链接有效,但我不明白这个过程。

标签: javascript arrays loops encryption google-apps-script


【解决方案1】:

这是我稍作修改的代码,只是为了在 Logger 打印输出中显示 Loop 值。

function bombeCode1() {
  var fastRotor = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N",
                  "O","P","Q","R","S","T","U","V","W","X","Y","Z"];

  var mediumRotor = fastRotor;                 
  var slowRotor = fastRotor;

  var rows = 3;
  var columns = 6;                    

  for (var i=0; i < rows ; i++) {
    Logger.log('Outer Loop: value of i : ' + i);
    Logger.log("Partition for Outer Loop");
    Logger.log(" ");

    for (var j=0; j < columns ; j++) {

      Logger.log('----Inner Loop value of j : ' + j);

      var fastRoterValue = fastRotor[i];
      var medRoterValue = mediumRotor[j];

      Logger.log("---- " + fastRoterValue + " " + medRoterValue);

      for (var k=0; k < 6 ; k++) {

        Logger.log('---- XXXX Third Loop value of k : ' + k);
        var fastRoterValue = fastRotor[i];
        var medRoterValue = mediumRotor[j];
        var slowRotorValue = slowRotor[k];

        Logger.log("---- XXXX " + fastRoterValue + " " + medRoterValue + " " + slowRotorValue);
      };
    }

  }
}

运行它,看看你的想法。我确定这不是您需要的,但必须从某个地方开始。

【讨论】:

  • 这是一个很好的开始!谢谢你。您是否偶然看到了我发布的“Enigma Example”链接?这显示了我将要“破解”的谜团。
  • 我知道这是一个“帮助吸血鬼”不断提出问题的事情,但你知道我在哪里可以找到 google.apps.script 的语法等吗?
  • 你是这个意思吗:google.script.run
  • 是的!每当我试图发现我让谷歌搜索我的计算机而不是告诉我语法时。
猜你喜欢
  • 2023-02-10
  • 1970-01-01
  • 2014-08-05
  • 2017-12-08
  • 1970-01-01
  • 1970-01-01
  • 2020-11-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多