资讯专栏INFORMATION COLUMN

[到codewars打怪兽]我偷了一个会说话的行李箱

zsirfs / 2325人阅读

摘要:我偷了一个会说话的行李箱怪兽的属性怪兽的技能大木博士的图鉴你今天照常在火车站偷东西,这次的收获是一个行李箱。正打算依具偷术大全里面的建议,强行把她拆开。如果条件值为真值,运算符就会返回的值否则,就会返回的值。

[5 kyu]Simple digit code breaker

我偷了一个会说话的行李箱⌚️2016.03.15

怪兽的属性:



&

怪兽的技能:

大木博士的图鉴:

你今天照常在火车站偷东西,这次的收获是一个行李箱。正打算依具《偷术大全》里面的建议,强行把她拆开。但却在拍干净手掌,蹲下身子,准备把她举到头上的时候,你突然听到有人在说话。

“喂”

环顾四周却又没有看到什么人。

“把我放下来!”

声音又响起来,你感觉声音是从上方传来的,不禁抬头看了看手上的行李箱。

你赶紧把箱子放了下了,这个过程中,箱子里还有隐约有“哎飒哟飒”的嘟囔。“里面难道有人?”你心里突然冒出这样一个奇怪而可怕的猜测,那么为什么有个人呢?

...具体情节请看《箱之少女》...

最后,你了解到,这个箱子的密码会在每十次尝试之后再自动随机生成一个新密码。

一开始他回返回个‘空(null)’给你,你得处理这个‘空(null)’,再返回给他一个由0~9三个正整数组成的数组。

这个数组将会和密码匹配后再返回一个数组(我们唤其为 差距数组)。差距数组表示输入数与密码数之间的差距:

输入数 < 密码数 --> +1

输入数 > 密码数 --> -1

输入数 = 密码数 --> 0

10次尝试不成功之后,旧密码失效,新密码将重新生成。

快快想出办法来,拯救箱中的少女,然后做些♨️羞羞的事情吧!

战斗记录仪回放:
var guess = [5, 5, 5];①

function tryCode(indications) {
    if (indications != null) {
        for (var i = 0; i <= 2; i++) {
            guess[i] += indications[i];
        }
    }
    return guess;②
}

?竹节:

这个应当可以放入 tryCode 方法中去,多带带放置在外面,略微不合适。

可以通过闭包来实现(笔记)

实现单一出口。

✨两处都可以简化,因为 差距数组 的值,就是 猜测数组 要进行的调整。

var guess = [5, 5, 5];
function tryCode(indications) {
    if (indications != null) {
        for (var i = 0; i <= 2; i++) {
            if (indications[i] == 1)✨
                ++guess[i];
            if (indications[i] == -1)✨
                --guess[i];
        }
    }
    return guess;
}

失误,‘=’ 和 ‘==’ 。

var guess = [5, 5, 5];
function tryCode(indications) {
    if (indications != null) {
        for (var i = 0; i <= 2; i++) {
            if (indications[i] = 1)✨
                ++guess[i];
            if (indications[i] = -1)✨
                --guess[i];
        }
    }
    return guess;
}

一开始只把 差距数组 看成表达 大小关系。于是想着用 二分法 来进行调整,最后发现比较复杂,需要考虑的太多。

国际战场的经典录像

zarjay

var tryCode = (function() {
  var guess = [5, 5, 5];
  ②return function(indication) {
    guess = indication ?③ guess.map④(function(d, i) { return d + indication[i]; }):guess;
    return guess;
  }
})();①

?竹节:

(function(){})(); ?

创建并立即执行函数 js中(function(){…})()

使用(function(){}())也可实现相同的效果 知乎-(function(){}())和(fucntion(){})()

function(){return funciton(){}}?

闭包 MDS

闭包原理

本函数中通过闭包将guess

? & :?

条件(三元目])运算符----[(condition)? expr1 : expr2

是 JavaScript 仅有的使用三个操作数的运算符。本运算符经常作为 if 语句的简短形式来使用。

如果条件值为真值(true),运算符就会返回 expr1 的值;否则, 就会返回 expr2 的值。

map()?

串串香的 map 的笔记

adolfo7x, chunghanliou

var digits = [5, 5, 5];

function tryCode(indications) {
  if (!①indications){ 
    digits = [5, 5, 5];
    return digits;
  }
  
  return digits = digits.map(function(value, index){
    return value + indications[index];
  });
}

竹节:

!?

!:逻辑非

!(expr)

如果单个表达式能转换true 的话返回 false ,否则返回 true .

能够转换为false的表达式有: null , 0 , ""undefined .

∴ 原表达式 = if(indications == false)

map()?

JQ的一个遍历方法。

《串串香》中的 map 的笔记

如果调用该方法的数据是数组A则 从数组A吃一个数,进行加工并把加工的结果吐出到一个新数组B中去,待吐完最后一个数后把数组B返回去。

MaximeDesRoches

function tryCode(indications) {
  if(indications == null) {
    tryCode.test = [5,5,5];①
    return tryCode.test;
  }
  return tryCode.test = tryCode.test.map(function(c, i){
    if (indications[i] === 0) return c;
    return (indications[i] === 1) ? ++c : --c;
  });
}

竹节:

为什么tryCode.test在运行结束之后没有被回收呢?

感觉和闭包有关系。

等待回答

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/79150.html

相关文章

  • [codewars怪兽]串串香

    摘要:问题描述验证方式题目理解函数处理一个参数,一个字符串组。常量值,可以是任意合法的表达式。到字符串长度的一个整数。可选,用于指定连接每个数组元素的分隔符。分隔符会被转成字符串类型如果省略的话,默认为一个逗号。 [7 kyu]Substring fun ⌚️2016.02.22 问题描述: showImg(http://ww1.sinaimg.cn/large/006m2mhTgw1f1p...

    2json 评论0 收藏0
  • [codewars怪兽]利润是怎样炼成

    摘要:利润是怎样炼成的怪兽的属性怪兽的技能大木博士的图鉴你是赵老爷家的算帐二狗子,赵家老爷想要学习一些理财知识,就去询问孔乙己。 [7 kyu]Money, Money, Money 利润是怎样炼成的⌚️2016.03.15 怪兽的属性: showImg(http://ww2.sinaimg.cn/large/006m2mhTgw1f1xxc38fbqj30qa0s2q6f.jpg);sho...

    zhangyucha0 评论0 收藏0
  • [codewar怪兽]你这小孩看长辈怎么不招呼

    摘要:你这小孩看到长辈怎么不打招呼怪兽的属性怪兽的技能无大木博士的图鉴把它函数弄好来,让他可以好好地欢迎客人战斗记录仪回放注解访问对象的属性。在通过来调用函数调用对象。失误并不是全局对象。国际战场的经典录像不需。 [8 kyu]Broken Greetings 你这小孩看到长辈怎么不打招呼⌚️2016.03.15 怪兽的属性: showImg(http://ww3.sinaimg.cn/la...

    rainyang 评论0 收藏0
  • [codewars怪兽]二进制加农炮

    摘要:二进制加农炮问题描述验证方式题目理解把两个数的和转换成二进制并以字符串的形式输出。和当前位数数的大小来决定。优解使用了的添加了检测输入的参数合理否。通过执行取余除二取反来实现知识点二进制如何转十进制,十进制如何转二进制 [7 kyu]Binary Addition 二进制加农炮⌚️2016.03.11 问题描述: showImg(http://ww3.sinaimg.cn/large/...

    caikeal 评论0 收藏0
  • [codewars怪兽]尝鲜箭头函数

    摘要:尝鲜箭头函数问题描述验证方式题目分析熟悉的新的函数构造方式箭头函数。箭头函数总是匿名的。我的解法优解和搭配构造可构造有名函数。单句声命可省略。可被非关键字就不能用。 [7 kyu]Sort with Arrow Functions 尝鲜箭头函数⌚️2016.03.08 问题描述: showImg(http://ww4.sinaimg.cn/large/006m2mhTgw1f1p5d9...

    WelliJhon 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<