- 如果棋盘未完成(还有空位),则返回-1
- 如果“X”赢,则返回1
- 如果“O”赢,则返回2
- 如果是平局,则返回0。
function isSolved(board) {
board = board.join('-').replace(/,/g,'');
if(/222|2...2...2|2....2....2|2..2..2/.test(board)) return 2;
if(/111|1...1...1|1....1....1|1..1..1/.test(board)) return 1;
if(/0/.test(board)) return -1;
return 0;
}
var result = isSolved([[0, 0, 1],[0, 1, 2],[2, 1, 0]]); //board is 3 dimensional array.
console.log(result); // -1
我不理解if
语句中正则表达式的一部分,即1....1....1
,因为棋盘可以输入的最大数字是9,但这里似乎是11。为什么会这样?
代码完全没有问题,但我不明白发生了什么。你能解释一下吗?
.test(board)
是什么? - Saad AneesregexObj.test(str)
。 - Gerardo Furtado