2012-03-12 27 views
6

Tôi đang cố gắng tạo tệp .js cho trang web khi nhập mã konami Lên, Lên, Xuống, Xuống, Trái, Phải, Trái, Phải, B, A, Bắt đầu (nhập) nó sẽ nhúng video. Tuy nhiên trong khi nhập các phím bên phải trang web sẽ hiển thị một cái gì đó như "tiếp tục", nếu nhập sai phím, nó sẽ hiển thị "sai, thử lại" và cho phép chúng bắt đầu lại.mã konami lũy tiến

Tôi đã mang JavaScript để làm việc khi nhập đúng mã nó hiển thị cảnh báo và nhập sai mã hiển thị mã khác.

tôi đã manged để lấy mã nhiều này sử dụng tài nguyên trực tuyến, nhưng không ai trong số họ giải thích làm thế nào để có được sai, hãy thử lại một phần

if (window.addEventListener) { 
    var keys = [], 
    konami = "38,38,40,40,37,39,37,39,66,65,13"; 

    window.addEventListener("keydown", function(e){ 
    keys.push(e.keyCode); 


    if (keys.toString().indexOf(konami) >= 0) 
    {    
     alert('Right'); 
     keys = []; 
    }; 

    if (keys.toString().indexOf(konami) < 0) 
    { 
     alert('Wrong'); 
     keys = []; 
    } 
}, true); 

};

Mọi trợ giúp sẽ được đánh giá cao.

Trả lời

7
if (window.addEventListener) { 
    var index = 0; 
    var konami = [38,38,40,40,37,39,37,39,66,65,13]; 

    window.addEventListener("keydown", function(e){ 
     if (e.keyCode === konami[index]) 
     { 
      index++; //valid key at the valid point 

      if (index == konami.length) 
      { 
       alert("Correct"); 
      } else { 
       alert("Keep going"); 
      } 
     } else { 
      // incorrect code restart 
      index = 0; 
      alert("Wrong"); 
     } 
    }); 
} 
+0

cảm ơn rất nhiều sự giúp đỡ, tất cả các oth er câu trả lời được đưa ra bởi và làm việc là tốt, nhưng đây là mã duy nhất tôi có thể hiểu được. bằng cách này là có một cách để nhúng một video youtube sẽ hiển thị khi mã đúng được nhập vào? Hoặc mã nhúng phải được viết trong tệp .html – Calsolum

+2

Có thể gây tranh cãi hay không, bạn nên bao gồm phím 'return' (13) – NicolasMoise

2

Bạn có thể làm một cái gì đó giống như

if (window.addEventListener) { 
    var keys = [], 
    konami = "38,38,40,40,37,39,37,39,66,65,13".split(','); 

    window.addEventListener("keydown", function(e){ 
    keys.push(e.keyCode); 
     console.log(e.keyCode); 
    var lengthOfKeys = keys.length -1; 


    if (konami[lengthOfKeys] == keys[lengthOfKeys]) 
    {    
     alert('Right'); 
     if(konami.length === keys.length){ 
      alert('complete!'); 
     } 

    }else{ 
     alert('Wrong'); 
     keys = []; 
    } 
}, true); 
}; 

fiddle đây http://jsfiddle.net/b6kuZ/

0

này làm việc cho tôi:

if (window.addEventListener) { 
    var keys = [], 
    konami = "38,38,40,40,37,39,37,39,66,65,13"; 
    konami_arr = konami.split(','); 

    window.addEventListener("keydown", function(e){ 
     keys.push(e.keyCode); 

     var position = keys.length-1; 

     if(keys[position ] != konami_arr[position]) 
     { 
      alert('Wrong'); 
      keys = []; 
     } 
     else if (keys.join(',') == konami) 
     {    
      alert('Right'); 
      keys = []; 
     }; 
    }, true); 
} 

​jsFiddle exmaple

Các vấn đề liên quan