同志获奖声明

问题描述 投票:0回答:1

我制作了tictactoeoe游戏,我也做了获胜的陈述,但是它不起作用,我也不知道为什么。HTML

<!DOCTYPE html>
<html>
<head>
<script src="tictactoe.js"></script>
<link rel="stylesheet" type="text/css" href="tictactoe.css">
<meta charset="utf-8">
</head>
<body>
<table style="width:100%" style="height:10%" id="table1">
<tr id="vmi">
<td class="cella" id="tr0td1"></td>
<td class="cella" id="tr0td2"></td>
<td class="cella" id="tr0td3"></td>
<td class="cella" id="tr0td4"></td>
<td class="cella" id="tr0td5"></td>
</tr>
<tr>
<td class="cella" id="tr1td1"></td>
<td class="cella" id="tr1td2"></td>
<td class="cella" id="tr1td3"></td>
<td class="cella" id="tr1td4"></td>
<td class="cella" id="tr1td5"></td>
</tr>
<tr>
<td class="cella" id="tr2td1"></td>
<td class="cella" id="tr2td2"></td>
<td class="cella" id="tr2td3"></td>
<td class="cella" id="tr2td4"></td>
<td class="cella" id="tr2td5"></td>
</tr>
<tr>
<td class="cella" id="tr3td1"></td>
<td class="cella" id="tr3td2"></td>
<td class="cella" id="tr3td3"></td>
<td class="cella" id="tr3td4"></td>
<td class="cella" id="tr3td5"></td>
</tr>
<tr>
<td class="cella" id="tr4td1"></td>
<td class="cella" id="tr4td2"></td>
<td class="cella" id="tr4td3"></td>
<td class="cella" id="tr4td4"></td>
<td class="cella" id="tr4td5"></td>
</tr>
</table>
<form>
Character(X or O):
<input type="text" id='character' name='Character' class='editor'>
<label for='tr'>Row: <input id='sor' type='number' min='0' name='Sor'> 
<label for='td'>Column: <input id='column'type='number' name='Column' max='5'>
<button type='button' onclick="addXO()">submit</button> 

</form>
<button type='button' onclick="winning()">Did I win?</button> 

这是我的JS:

function addXO() {
    var row = document.getElementById('sor').value;
    var column = document.getElementById('column').value;
    var character = document.getElementById('character').value;

document.getElementById('tr'+row+'td'+column).innerHTML  = character;}

function winning(){
    var tr0td1val=document.getElementById("tr0td1").value;
    var tr0td2val=document.getElementById("tr0td2").value;
    var tr0td3val=document.getElementById("tr0td3").value;
    var tr0td4val=document.getElementById("tr0td4").value;
    var tr0td5val=document.getElementById("tr0td5").value;
    var tr1td1val=document.getElementById("tr1td1").value;
    var tr1td2val=document.getElementById("tr1td2").value;
    var tr1td3val=document.getElementById("tr1td3").value;
    var tr1td4val=document.getElementById("tr1td4").value;
    var tr1td5val=document.getElementById("tr1td5").value;
    var tr2td1val=document.getElementById("tr2td1").value;
    var tr2td2val=document.getElementById("tr2td2").value;
    var tr2td3val=document.getElementById("tr2td3").value;
    var tr2td4val=document.getElementById("tr2td4").value;
    var tr2td5val=document.getElementById("tr2td5").value;
    var tr3td1val=document.getElementById("tr3td1").value;
    var tr3td2val=document.getElementById("tr3td2").value;
    var tr3td3val=document.getElementById("tr3td3").value;
    var tr3td4val=document.getElementById("tr3td4").value;
    var tr3td5val=document.getElementById("tr3td5").value;
    var tr4td1val=document.getElementById("tr4td1").value;
    var tr4td2val=document.getElementById("tr4td2").value;
    var tr4td3val=document.getElementById("tr4td3").value;
    var tr4td4val=document.getElementById("tr4td4").value;
    var tr4td5val=document.getElementById("tr4td5").value;
    if(tr0td1val == tr0td2val && tr0td2val == tr0td3val && tr0td3val == tr0td4val && tr0td4val == tr0td5val && tr0td1val!= "" && tr0td2val!= "" && tr0td3val!= "" && tr0td4val!= "" && tr0td5val!= "")
    {
        alert("Player"+tr0td1val+" won!");
    }
    else if(tr1td1val == tr1td2val && tr1td2val == tr1td3val && tr1td3val == tr1td4val && tr1td4val == tr1d5val && tr1td1val!= "" && tr1td2val!= "" && tr1td3val!= "" && tr1td4val!= "" && tr1td5val!= "")
    {
        alert("Player"+tr1td1val+" won!");
    }
    else if(tr2td1val == tr2td2val && tr2td2val == tr2td3val && tr2td3val == tr2td4val && tr2td4val == tr2d5val && tr2td1val!= "" && tr2td2val!= "" && tr2td3val!= "" && tr2td4val!= "" && tr2td5val!= "")
    {
        alert("Player"+tr2td1val+" won!");
    }
    else if(tr3td1val == tr3td2val && tr3td2val == tr3td3val && tr3td3val == tr3td4val && tr3td4val == tr3d5val && tr3td1val!= "" && tr3td2val!= "" && tr3td3val!= "" && tr3td4val!= "" && tr3td5val!= "")
    {
        alert("Player"+tr3td1val+" won!");
    }
    else if(tr4td1val == tr4td2val && tr4td2val == tr4td3val && tr4td3val == tr4td4val && tr4td4val == tr4d5val && tr4td1val!= "" && tr4td2val!= "" && tr4td3val!= "" && tr4td4val!= "" && tr4td5val!= "")
    {
        alert("Player"+tr4td1val+" won!");
    }
    else if(tr0td1val == tr1td1val && tr1td1val == tr2td1val && tr2td1val == tr3td1val && tr3td1val == tr4d1val && tr0td1val!= "" && tr1td1val!= "" && tr2td1val!= "" && tr3td1val!= "" && tr4td1val!= "")
    {
        alert("Player"+tr0td1val+" won!");
    }
    else if(tr0td2val == tr1td2val && tr1td2val == tr2td2val && tr2td2val == tr3td2val && tr3td2val == tr4d2val && tr0td2val!= "" && tr1td2val!= "" && tr2td2val!= "" && tr3td2val!= "" && tr4td2val!= "")
    {
        alert("Player"+tr0td2val+" won!");
    }
    else if(tr0td3val == tr1td3val && tr1td3val == tr2td3val && tr2td3val == tr3td3val && tr3td3val == tr4d3val && tr0td3val!= "" && tr1td3val!= "" && tr2td3val!= "" && tr3td3val!= "" && tr4td3val!= "")
    {
        alert("Player"+tr0td3val+" won!");
    }
    else if(tr0td4val == tr1td4val && tr1td4val == tr2td4val && tr2td4val == tr3td4val && tr3td4val == tr4d4val && tr0td4val!= "" && tr1td4val!= "" && tr2td4val!= "" && tr3td4val!= "" && tr4td4val!= "")
    {
        alert("Player"+tr0td4val+" won!");
    }
    else if(tr0td5val == tr1td5val && tr1td5val == tr2td5val && tr2td5val == tr3td5val && tr3td5val == tr4d5val && tr0td5val!= "" && tr1td5val!= "" && tr2td5val!= "" && tr3td5al!= "" && tr4td5val!= "")
    {
        alert("Player"+tr0td5val+"won!");
    }
    }

我不知道为什么当我声明如果连续有5个X时玩家赢了,为什么不起作用,但是我的代码没有这样做,而是认为玩家总是赢了。我还有一个问题,我制作了这个JS,但我也不得不制作PHP(老师要求我们这样做),而JS和PHP不能同时运行。

javascript html tic-tac-toe
1个回答
0
投票

破坏代码的错误是,您正在访问td元素的“值”,但它们没有任何元素。 (因此全部返回undefined,不等于""

要解决此问题,请用document.getElementById("tr0td1").value替换document.getElementById("tr0td1").innerHTML(对于所有单元格)

我还建议在所有不想插入HTML代码的地方都使用由innerText插入的innerHTML

您也不需要检查所有单元格是否不是""。如果您检查第一个,并且它们都相同,则其他不能为""

if(tr0td1val != "" && tr0td1val == tr0td2val && tr0td2val == tr0td3val && tr0td3val == tr0td4val && tr0td4val == tr0td5val)足够。

© www.soinside.com 2019 - 2024. All rights reserved.