JSRobot闖關小攻略

無心間打開了 JSRobot.javascript

闖關,我喜歡,因而開始了jsrobot的闖關之旅。其實就13關。java

關卡都是以setInterval()定時器來執行操做,因此主要模式就是給定時器具體執行內容.正則表達式

第0關

入門篇,在一個漆黑的夜晚,哦,不,是界面,走到f處就算結束。
那就 R.right();運行,走好不送了。segmentfault

第1關

神馬?不走直線了? 行唄。斜着走。
R.right()&&R.down();ide

第2關

哦,換了個方法,R.move(directionString)
direction賦值, var direction = 'right';
慢走啊親。ui

第3關

開始感受不簡單了,ok,咱們模擬着走一遍。
總共八步,一、2步右上角方向,三、4步右下角方向,5步右,六、7步仍是右上角。
所以咱們,不對,這裏沒提供定時器。。。不要緊,本身造一個。idea

var step = 0;
setInterval(function(){
   switch(step){
     case 1:
     case 2:
     case 7:
       R.up();
       R.right();
     break;
     case 3:
     case 4:
       R.right();
       R.down();
     break;
     case 5:
       R.right();
     break;
     case 6:
       R.right();
       R.up();
     break;
   }
   step++;
},500);

這裏要注意一點,就是斜着走時,要注意是先左右仍是先上下。code

第4關

仍是第三關的題目,只是給了咱們定時器,還說移動不了的時候方法會返回false
當時沒想到啥idea,第三關的代碼拿過來換個變量名就好了。能夠參考公子的idea對象

第5關

介紹R.destroy的用法,還有正則。別忘了向右走哦。blog

key = 'A';
R.right();

忽然,代碼好多萌表情。

第6關

介紹R.standingOn(char)的用法,地圖裏只要遇到^就向上走就能夠了。

if(R.standingOn('^')){
 R.up();
}

-----傷心分割線,寫完13關後保存不能,草稿只保存到第6關,累愛-----

第7關

題目說R.standingOn()不帶參數的時候返回的是所在的字符;
並且基本的字符都有個固定指向。所以能夠這麼作:

switch(R.standingOn()){
    case '_': case '>':
        temp = 'up';
        break;
    case '-':
        temp = 'right';
        break;
    case '+': 
        temp = 'left';
        break;
    case '2':
        temp = 'down';
        break;
    default:
        break;
}
R.move(temp);

第8關

正則表達式
var key = '<don>key</don>';

第9關

別看那麼複雜,其實從終點往回走,會發現,其實就是在5的左邊那裏會陷入死循環,那麼,我只要判斷站着"<"且準備向右的時候,忽略此次方向修改。

if(R.standingOn('<')&&direction=='right'){
R.right();
return;
}

第10關

假設只是加一個R.right(),那麼當steps=4時,counter大於2,因此咱們要組織steps自增時的一次counter自增。題目要求不能使用steps和counter,因此作法是先右移,一旦不能右移就左移。另外還有正則。

if(!R.right()){
    R.left();
}
key = '<a>\\1<b>\\2<c>\\3';

第11關

私有變量,咱們無法改寫,可是對象方法,咱們能夠重寫。

guineaPig.getKeyFromStomach = function(){return true;};
R.right();

第12關

坑!題目說的是不能用到guineaPig的變量,而後提示不能使用destroy,還以問句形式意在詢問可否實現改變私有變量。
結果公子以一個間接destroy過關了。囧。

R['des'+'troy']('right');
R.right();

第13關

終於最後一關了,想一想還有點小激動呢?//毛線,多花時間從新寫一份,已經不激動了。
我發現能夠用12關的招數cheat哦,那就繼續吧。
呃,不過切合題意的作法應該是公子的那個解法。這裏就不重複了。

key = function(){};
R['des'+'troy']('right');
R.right();

碼完,哭着碎覺。

相關文章
相關標籤/搜索