输赢判断有点复杂了
对于赢的结果 [[0,1,2],[3,4,5],[6,7,8],[2,5,8],[1,4,7],[0,3,6],[0,4,8],[2,4,6]] 表示占有其中一组格子就赢了
变形一下 box = [[0,5,6],[0,4],[0,3,7],[1,5],[1,4,6,7],[1,3],[2,5,7],[2,4],[2,3,6]],下标为格子编号
表示占据一个格子时,会影响到哪些赢的情况
令 goal = [0,0,0,0,0,0,0,0]
设 o 加1 x减1
所以在选中格子时有
t = box[this.innerHTML];
for(i=0; i<t.length; i++) {
goal[t[i]] ++; //o
//或 goal[t[i]] --; //x
}
比较时 只需检查 goal 中是否存在 3 或 -3
对于赢的结果 [[0,1,2],[3,4,5],[6,7,8],[2,5,8],[1,4,7],[0,3,6],[0,4,8],[2,4,6]] 表示占有其中一组格子就赢了
变形一下 box = [[0,5,6],[0,4],[0,3,7],[1,5],[1,4,6,7],[1,3],[2,5,7],[2,4],[2,3,6]],下标为格子编号
表示占据一个格子时,会影响到哪些赢的情况
令 goal = [0,0,0,0,0,0,0,0]
设 o 加1 x减1
所以在选中格子时有
t = box[this.innerHTML];
for(i=0; i<t.length; i++) {
goal[t[i]] ++; //o
//或 goal[t[i]] --; //x
}
比较时 只需检查 goal 中是否存在 3 或 -3
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>九宫格小游戏</title>
<style type="text/css">
*{margin: 0;padding: 0;list-style: none;text-align: center}
#scs{margin: 200px auto 50px;width: 303px;height:303px;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd}
#scs li{float: left;border-left: 1px solid #ddd;border-top: 1px solid #ddd;width: 100px;height: 100px;font:bolder 100px/100px Tahoma,Arial;color: #999;text-align: center;cursor: pointer}
</style>
<script type="text/javascript">
var obj ={i:0,arr : [[0,1,2],[3,4,5],[6,7,8],[2,5,8],[1,4,7],[0,3,6],[0,4,8],[2,4,6]]};
function game(){
obj.i = 0;
var li="",t;
for(var i=9;i--;)li+="<li></li>";
document.getElementById("scs").innerHTML = li;
li = document.getElementById("scs").getElementsByTagName("li");
for(i=li.length;i--;){
li[i].onclick = function(){
if(obj.i > 8)return false;
t = this.innerHTML = ["0","X"][obj.i++ % 2];
for(var i=obj.arr.length;i--;){
if(li[obj.arr[i][0]].innerHTML== t && li[obj.arr[i][1]].innerHTML==t && li[obj.arr[i][2]].innerHTML==t){
alert("您赢啦!");
obj.i = 10;
break;
}
}
obj.i == 9 && alert("平手!");//点完格子都没人赢当然就是平手
this.onclick = null;//每个格子只能点一次
}
}
}
window.onload = function(){game()};
</script>
</head>
<body>
<ul id="scs"></ul>
<button type="button" onclick="game()">重新开始</button>
</body>
</html>