怎么用javascript做井字游戏

自己和自己玩的那种,按第1下是〇,按第2下是×的那种,以此类推!结束的时候要显示〇或×赢了,平局的话也要显示平局!最好能有个清除按钮,点一下就重新开始的那种....求大神帮忙啊!实在是没有思路了

<style type="text/css">
form { font-size: 0px; text-align: center; }
input { margin: 2px; width: 30px; height: 30px; }
.a { width: auto; }
</style>
<body>
<form>
<input type="button" name="s" value=""/>
<input type="button" name="s" value=""/>
<input type="button" name="s" value=""/><br/>
<input type="button" name="s" value=""/>
<input type="button" name="s" value=""/>
<input type="button" name="s" value=""/><br/>
<input type="button" name="s" value=""/>
<input type="button" name="s" value=""/>
<input type="button" name="s" value=""/><br/>

<input type="button" name="RESET" value="RESET" class="a" />
</form>
</body>var bln = false;
window.onload = function(){
var form = document.forms[0];
form.RESET.onclick = function(){ clear(form); }
clear(form);

for(var i = 0; i < form.s.length; i++){
var btn = form.s[i];
btn.onclick = function(){
this.value = bln ? "X" : "O";
this.disabled = true;
bln = !bln;

checkresult(form);
}
}

}
function clear(form){
for(var i = 0; i < form.s.length; i++) {
form.s[i].value = " ";
form.s[i].disabled = false;
}
bln = false;
}

function end(form){
for(var i = 0; i < form.s.length; i++) {
form.s[i].disabled = true;
}
}

function checkresult(form){
var arrX = [];
var arrO = [];
for(var i = 0; i < form.s.length; i++){
if(form.s[i].value == "X") arrX.push(i);
if(form.s[i].value == "O") arrO.push(i);
}

var X = arrX.join("");
if(
(X.indexOf("0") > -1 && X.indexOf("1") > -1 && X.indexOf("2") > -1) ||
(X.indexOf("0") > -1 && X.indexOf("3") > -1 && X.indexOf("6") > -1) ||
(X.indexOf("0") > -1 && X.indexOf("4") > -1 && X.indexOf("8") > -1) ||
(X.indexOf("1") > -1 && X.indexOf("4") > -1 && X.indexOf("7") > -1) ||
(X.indexOf("2") > -1 && X.indexOf("5") > -1 && X.indexOf("8") > -1) ||
(X.indexOf("2") > -1 && X.indexOf("4") > -1 && X.indexOf("6") > -1) ||
(X.indexOf("3") > -1 && X.indexOf("4") > -1 && X.indexOf("5") > -1) ||
(X.indexOf("6") > -1 && X.indexOf("7") > -1 && X.indexOf("8") > -1)
){
alert("X win");
end(form);
return;
}

var O = arrO.join("");
if(
(O.indexOf("0") > -1 && O.indexOf("1") > -1 && O.indexOf("2") > -1) ||
(O.indexOf("0") > -1 && O.indexOf("3") > -1 && O.indexOf("6") > -1) ||
(O.indexOf("0") > -1 && O.indexOf("4") > -1 && O.indexOf("8") > -1) ||
(O.indexOf("1") > -1 && O.indexOf("4") > -1 && O.indexOf("7") > -1) ||
(O.indexOf("2") > -1 && O.indexOf("5") > -1 && O.indexOf("8") > -1) ||
(O.indexOf("2") > -1 && O.indexOf("4") > -1 && O.indexOf("6") > -1) ||
(O.indexOf("3") > -1 && O.indexOf("4") > -1 && O.indexOf("5") > -1) ||
(O.indexOf("6") > -1 && O.indexOf("7") > -1 && O.indexOf("8") > -1)
){
alert("O win");
end(form);
return;
}
if((X.length == 4 && O.length == 5) || (X.length == 5 && O.length == 4)){
alert("平局");
end(form);
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-06-03
<!--给我300财富吧!-->
<html>
<head>
<title>javascript写井字游戏</title>
<script type="text/javascript">
var tj=[-1,-1,-1,-1,-1,-1,-1,-1,-1];
var turn=true,over=-1;
function put(n,b)
{
if(-1==over)
{
if(-1==tj[n])
{
if(turn)
{
b.value="O";
tj[n]=0;
}
else
{
b.value="X";
tj[n]=1;
}
turn=!turn;
for(var i=0;i<9;i+=3)
{
if(0==tj[i] && 0==tj[i+1] && 0==tj[i+2])
{
over=0;
break;
}
if(1==tj[i] && 1==tj[i+1] && 1==tj[i+2])
{
over=1;
break;
}
}
if(-1==over)
{
for(var i=0;i<3;i++)
{
if(0==tj[i] && 0==tj[i+3] && 0==tj[i+6])
{
over=0;
break;
}
if(1==tj[i] && 1==tj[i+3] && 1==tj[i+6])
{
over=1;
break;
}
}
}
if(-1==over)
{
if((0==tj[0] && 0==tj[4] && 0==tj[8]) ||(0==tj[2] && 0==tj[4] && 0==tj[6]))
{
over=0;
}
if((1==tj[0] && 1==tj[4] && 1==tj[8]) ||(1==tj[2] && 1==tj[4] && 1==tj[6]))
{
over=1;
}
}
if(-1==over)
{
for(var i=0;i<9;i++)
{
if(-1==tj[i])
{
break;
}
}
if(i>=9)
{
over=2;
}
}
if(0==over)
{
alert("O赢了!");
}
if(1==over)
{
alert("X赢了!");
}
if(2==over)
{
alert("OX旗鼓相当,打成了平手!");
}
}
else
{
alert("此处有子了!");
}
}
else if(0==over)
{
alert("不能再下了,O已经赢了!");
}
else if(1==over)
{
alert("不能再下了,X已经赢了!");
}
else if(2==over)
{
alert("不能再下了,OX已经打平了!");
}
}
function cl()
{
var bs=document.getElementsByTagName("input");
turn=true;
over=-1;
for(var i=0;i<bs.length;i++)
{
if("reset"!=bs[i].name)
{
bs[i].value="";
tj[i]=-1;
}
}
}
</script>
</head>
<body>
<input type="button" class="b" onClick="put(0,this);" />
<input type="button" class="b" onClick="put(1,this);" />
<input type="button" class="b" onClick="put(2,this);" /><br />
<input type="button" class="b" onClick="put(3,this);" />
<input type="button" class="b" onClick="put(4,this);" />
<input type="button" class="b" onClick="put(5,this);" /><br />
<input type="button" class="b" onClick="put(6,this);" />
<input type="button" class="b" onClick="put(7,this);" />
<input type="button" class="b" onClick="put(8,this);" /><br />
<input type="button" name="reset" value="重新开始" onClick="cl();" />
</body>
</html>

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网