2014-01-25 29 views
0

我試圖評估一個給定的棋盤狀態是否使用JavaScript在Neutreeko(5x5棋盤,3連接水平,對角線或垂直是一個勝利)遊戲結束。感謝@Anonymous,我現在知道它需要的位掩碼,但我仍然無法使它工作。也就是說,當我嘗試類似的東西:位掩碼位置評估在JS中不起作用?

var x = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0]; 
if(x & (x >> 1) & (x >> 2) & 0x739ce7) console.log("success"); 
if(x & (x >> 5) & (x >> 10)) console.log("success"); 

我從來沒有得到成功。爲什麼?

回答

4

x是一個數組,不能被JavaScript的按位運算符操作。改變x

var x = parseInt('1111111111111111111100000', 2); 

它應該工作。請注意,JavaScript的按位運算符僅適用於-2 和2 - 1(含)之間的數字。

如果你想一個數組轉換像你原來的一個,你可以這樣做:

var x = parseInt([1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0].join(''), 2);