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