Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
tic tac toe javascript中的指示器错误_Javascript - Fatal编程技术网

tic tac toe javascript中的指示器错误

tic tac toe javascript中的指示器错误,javascript,Javascript,基于我的tic-tac-toe javascript代码中创建的指示器,我遇到了问题。你能帮我解决吗 cell.indicator=指示器 控制台提到了这一点 未捕获的TypeError:无法将属性“indicator”设置为null 加载时(javascript.js:54) 这是密码 var squares =[]; var EMPTY = '\xA0' var score; var moves; var turn = 'X'; var wins = [ 119, 8064, 516096

基于我的tic-tac-toe javascript代码中创建的指示器,我遇到了问题。你能帮我解决吗

cell.indicator=指示器

控制台提到了这一点 未捕获的TypeError:无法将属性“indicator”设置为null 加载时(javascript.js:54) 这是密码

var squares =[];
var EMPTY = '\xA0'
var score;
var moves;
var turn = 'X';

var wins = [ 119, 8064, 516096, 17930144, 2113929216, (1.352914698*10^10),
2181570690, 4363141380,8726282760,(1.745256552*10^10), (3.490513104*10^10),
(6.981026208*10^10),(96.926057496*10^10), 2216757312];

var startNewGame = function (){
    turn = 'X';
    score = {'X': 0 , 'O': 0};
    moves =0;
    for (var i = 0; i < squares.length; i += 1){
    squares[i].firstChild.nodeValue = EMPTY;
    }
    };

var win = function (score){
    for (var i = 0; i < wins.length; i++){
        if ((wins[i] & score) == wins[i]){
        }
        }
        return false;
};

var set = function(){
    if (this.firstChild.nodeValue !== EMPTY){
        return;
        }
    this.firstChild.nodeValue = turn;
    moves += 1;
    score[turn] += this.indicator;
    if (win(score[turn])){
        alert(turn + "wins!");
        startNewGame();
    }
    else if (moves === 36){
        alert("Beemo\u2019s game!");
        startNewGame();
    }
    else {
    turn = turn === 'X' ? 'O' : 'X';
    }
};

onload = function(){

var indicator = 1;
for (var i = 0; i < 6; i++){
    for (var j = 0; j < 6; j++){
        var cell = document.getElementById("cell" + i + j);
        cell.indicator = indicator;
        cell.onclick = set;
        cell.appendChild(document.createTextNode(''));
        squares.push(cell);
        indicator += indicator;
    }
}
startNewGame();
};
var squares=[];
var EMPTY='\xA0'
var评分;
var移动;
var turn='X';
var wins=[1198064516096179301442113929216,(1.352914698*10^10),
2181570690, 4363141380,8726282760,(1.745256552*10^10), (3.490513104*10^10),
(6.981026208*10^10),(96.926057496*10^10), 2216757312];
var startNewGame=函数(){
转角='X';
分数={'X':0,'O':0};
移动=0;
对于(变量i=0;i
以下是HTML:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<title>ULTIMATE TIC TAC TOE</title>
<script src="javascript.js"></script>
<style type="text/css">

h1{
text-align: center;
}

table{
border: outset 1px rgb(200, 200, 200)
}

td{
width: 50px;
height: 50px;
vertical-align: middle;
border: inset 1px rgb(200,200,200)
}

tr{
text-align: center;
}
</style>
</head>

<body>
<h1>Tic Tac Toe</h1>

<table align="center">

<tr>
<td id cell="cell00"></td>
<td id cell="cell01"></td>
<td id cell="cell02"></td>
<td id cell="cell03"></td>
<td id cell="cell04"></td>
<td id cell="cell05"></td>
</tr>

<tr>
<td id cell="cell10"></td>
<td id cell="cell11"></td>
<td id cell="cell12"></td>
<td id cell="cell13"></td>
<td id cell="cell14"></td>
<td id cell="cell15"></td>
</tr>

<tr>
<td id cell="cell20"></td>
<td id cell="cell21"></td>
<td id cell="cell22"></td>
<td id cell="cell23"></td>
<td id cell="cell24"></td>
<td id cell="cell25"></td>
</tr>

<tr>
<td id cell="cell30"></td>
<td id cell="cell31"></td>
<td id cell="cell32"></td>
<td id cell="cell33"></td>
<td id cell="cell34"></td>
<td id cell="cell35"></td>
</tr>

<tr>
<td id cell="cell40"></td>
<td id cell="cell41"></td>
<td id cell="cell42"></td>
<td id cell="cell43"></td>
<td id cell="cell44"></td>
<td id cell="cell45"></td>
</tr>

<tr>
<td id cell="cell50"></td>
<td id cell="cell51"></td>
<td id cell="cell52"></td>
<td id cell="cell53"></td>
<td id cell="cell54"></td>
<td id cell="cell55"></td>
</tr>

</table>

</body>
</html>

终极抽搐
h1{
文本对齐:居中;
}
桌子{
边框:1个rgb(200200200)
}
运输署{
宽度:50px;
高度:50px;
垂直对齐:中间对齐;
边框:插图1px rgb(200200)
}
tr{
文本对齐:居中;
}
井字过三关

找不到您要查找的单元格,因为它们的
id
属性都为空,因此
document.getElementById(“单元格”+i+j)
不返回任何内容。切换到
,您会没事的


然后您可能会发现HTML元素没有属性
指示符
;改为使用
data-
属性:
cell.setAttribute('data-indicator',indicator)
。您还应该修改
set()
方法来读取该属性。

确保
document.getElementById(“cell”+i+j)在Dom中返回正确的元素。它仍然会给我erroradd console.log(i,j,cell)和debug…替换文档。getElementById?这些--不应该是-。id与其值之间有一个字单元格。