2.9 A estratégia de depuração durante a execução do robô ((JS - uso acessivo da função eval)

Autora:Sonhos pequenos, Criado: 2016-11-15 14:54:40, Atualizado: 2017-10-11 10:21:40

Interação Debug na execução de um robô de estratégia de ecrã (utilização casual da função JS eval)

  • Primeiro, vamos ver a introdução da função eval no JS:

    Escolaimg img

    Depois de aprender sobre a função eval, veja a implementação do código em termos de interação estratégica!

  • A implementação da estratégia de interação:

    A interação da política requer que o usuário trate o valor de retorno da função API GetCommand.

var cmd = GetCommand();             // 调用API  获取界面交互控件的消息。 
if (cmd) {                          // 判断是否有消息
    var js = cmd.split(':', 2)[1];  // 分割 返回的消息 字符串, 限制返回2个, 把索引为1的 元素 赋值给 名为js 的变量 
    Log("执行调试代码:", js);         // 输出 执行的代码
    try {                           // 异常检测
        eval(js);                   // 执行 eval函数, 该函数执行传入的参数(代码)。
    } catch(e) {                    // 抛出异常
        Log("Exception", e);        // 输出错误信息
    }
}

Abaixo, nós escrevemos esse trecho de código em uma política e configuramos o controle da interface interativa. O código completo do teste:

var price = 0;
var amount = 0;
function main() {
    Log("初始 price:", price, "初始 amount", amount);
    while(true){
        var cmd = GetCommand();             // 调用API  获取界面交互控件的消息。 
        if (cmd) {                          // 判断是否有消息
            var js = cmd.split(':', 2)[1];  // 分割 返回的消息 字符串, 限制返回2个, 把索引为1的 元素 赋值给 名为js 的变量 
            Log("执行调试代码:", js);         // 输出 执行的代码
            try {                           // 异常检测
                eval(js);                   // 执行 eval函数, 该函数执行传入的参数(代码)。
            } catch(e) {                    // 抛出异常
                Log("Exception", e);        // 输出错误信息
            }
        }
        Sleep(1000);
    }
}

Adicionar um controle interativo:img

  • A partir daí, o blogueiro começou a escrever:

    imgVamos alterar a variável global, o preço, o montante.imgSe o código for errado, ele lança uma anomalia:img

Mais.

Nuvens levesGraças a DreamWorks, finalmente encontrei uma forma de interagir.