摘要:群里的今天問了個問題,源自上的一關(guān)??戳讼?,跟差不多,也是一個代碼通關(guān)游戲,覺得挺有趣,遂玩了一遍?,F(xiàn)放上我的通關(guān)攻略。首先放上游戲地址這關(guān)是教學(xué)關(guān),按照文字描述直接輸入即可通關(guān)。代碼這一關(guān)的目的是要創(chuàng)造一個函數(shù),使得其既返回又返回。
群里的 @krew 今天問了個問題,源自JSRobot上的一關(guān)??戳讼翵SRobot,跟Untrusted差不多,也是一個代碼通關(guān)游戲,覺得挺有趣,遂玩了一遍?,F(xiàn)放上我的通關(guān)攻略。
首先放上游戲地址: http://JSRobot.tk
Level 0這關(guān)是教學(xué)關(guān),按照文字描述直接輸入R.right()即可通關(guān)。
Level 1方向移動函數(shù)教學(xué)關(guān),代碼:
R.right() && R.down()Level 2
move函數(shù)教學(xué)關(guān),重新定義var direction = "right"; 即可。
Level 3這關(guān)我也沒想那么多,直接一步一步自己移上去了,歡迎更簡單的方法。代碼:
function go(direction, times) { times = times || 1; for(var i=0;i懶人進(jìn)階版:
["left","right","up","down"].forEach(function(d){ window[d] = function(times) { times = times || 1; for(var i=0;iLevel 4 這關(guān)告訴我們?nèi)绻乱徊揭苿幼矇Φ脑捄瘮?shù)就會返回false,這個給了我一個好點(diǎn)子。話不多說放代碼:
var d = ["up", "right", "down", "right", "up", "left"]; if(!R.move(d[temp])) temp++;Level 5正則和destroy教學(xué)貼,正則很簡單,匹配的是非a-z0-9的字符,隨便來一個即可。代碼:
(key = "$") && R.right();Level 6standingOn函數(shù)教學(xué)帖,代碼:
if(R.standingOn("^")) R.up();Level 7standingOn函數(shù)小進(jìn)階,代碼:
var d = ["up", "down", "left", "right"]; if(R.standingOn("-")) temp = 3; else if(R.standingOn("+")) temp = 2; else if(R.standingOn("2")) temp = 1; else if(R.standingOn(">")) temp = 0; R.move(d[temp]);Level 8這題就是簡單的考正則了,同標(biāo)簽包裹內(nèi)容為key即可。示例代碼:
var key = "Level 9key";這關(guān)的話希望大家不要被上面的各種符號迷惑,總的來說從Robot位置到達(dá)f的路線是先往右直走,然后再向下直走,或者是先向下直走然后往右直走。這里的小技巧就是使用return把下面不相關(guān)的代碼全部屏蔽掉。代碼:
if(!R.right()) R.down(); return true;Leve 10這關(guān)的難點(diǎn)在于如何讓steps = 4,因?yàn)榘凑照K悸返脑挳?dāng)?shù)竭_(dá)1位置的時候steps == 2的。這里的解決方法是先右移一次,然后左移一次,再右移。這樣就增加了steps移動的次數(shù)了。另外一個需要注意的是正則那部分,不要被1給騙了,這個不是后項引用,就是正常的字符串。代碼:
if(!R.right()) R.left(); key = "Level 111 2 3"; 教學(xué)帖,直接重新定義函數(shù)使其返回true即可。代碼:
guineaPig = { getKeyFromStomach: function() {return true} }; R.right();Level 12這關(guān)不能像上一關(guān)一樣重新定義函數(shù)了,因?yàn)槊鞔_告訴我們不能使用guineaPig和getKeyFromStomach變量了。由于我們是無法拿到閉包函數(shù)里面的key變量的,所以無法對其值進(jìn)行更改。但是我們可以另辟蹊徑,自己寫代碼去銷毀而不是用它的代碼,由于不能明目張膽的使用destroy函數(shù),所以我們需要對其進(jìn)行一些處理才行。代碼:
R["d e s t r o y".split(" ").join("")]("right"); R.right();Level 13這一關(guān)的目的是要創(chuàng)造一個函數(shù),使得其既返回true又返回false。當(dāng)然,我們要是被這個表象迷惑的話也會困擾一番的。本關(guān)的key在于函數(shù)運(yùn)行了兩次。代碼:
var a = -1, key = function() {return a++} R.right();總結(jié)相對于Untrusted來說,還是非常容易的,好幾關(guān)都是教學(xué)關(guān)比較輕松就能過去了。相對難一點(diǎn)的關(guān)卡活用大腦的話也是比較輕松過了,此外正則考的比較多,當(dāng)然也算是容易的正則就是了。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/87575.html
摘要:可以參考公子的第關(guān)介紹的用法,還有正則。第關(guān)終于最后一關(guān)了,想想還有點(diǎn)小激動呢毛線,多花時間重新寫一份,已經(jīng)不激動了。 無意間打開了 JSRobot. 闖關(guān),我喜歡,于是開始了jsrobot的闖關(guān)之旅。其實(shí)就13關(guān)。 關(guān)卡都是以setInterval()定時器來執(zhí)行操作,所以主要模式就是給定時器具體執(zhí)行內(nèi)容. 第0關(guān) 入門篇,在一個漆黑的夜晚,哦,不,是界面,走到f處就算結(jié)束。...
摘要:導(dǎo)語本期訪談對象小猴機(jī)器人,清華人工智能專業(yè)博士在讀?;蛟S因?yàn)槌砷L于廣袤的內(nèi)蒙,小猴身上帶著大山和草原一般的灑脫與樂觀,在他鐘愛的無人車上,印上了一個美好的我們的征途是星辰大海。技術(shù)人攻略除了規(guī)則挖掘,人工智能遇到的難題還 showImg(https://segmentfault.com/img/bVc1yA); 文:Gracia,攝影:周振邦 (本文為原創(chuàng)內(nèi)容,部分或全文轉(zhuǎn)載均需經(jīng)作...
閱讀 2297·2021-09-07 09:58
閱讀 3487·2019-08-30 14:07
閱讀 1369·2019-08-29 12:32
閱讀 743·2019-08-29 11:06
閱讀 3800·2019-08-26 18:18
閱讀 3844·2019-08-26 17:35
閱讀 1468·2019-08-26 11:35
閱讀 701·2019-08-26 11:35