如题所述
第1个回答 2016-05-17
<html>
<head>
<style>
#bg{width:150px;
margin:auto;
margin-top:15%;
}
#bg div{
width:44px;
height:44px;
border:solid 1px #33bcfa;
background:#2db648;
float:left;
font-size:50px;
text-align:center;
line-height:40px;
cursor:pointer;
}
</style>
</head>
<body>
<div id='bg'>
<div onclick="a(this)" id="a1"></div>
<div onclick="a(this)" id="a2"></div>
<div onclick="a(this)" id="a3"></div>
<div onclick="a(this)" id="b1"></div>
<div onclick="a(this)" id="b2"></div>
<div onclick="a(this)" id="b3"></div>
<div onclick="a(this)" id="c1"></div>
<div onclick="a(this)" id="c2"></div>
<div onclick="a(this)" id="c3"></div>
</div>
<script>
//白子
var bai = '<span style="color:#fff">●</span>';
//黑子
var hei = '<span style="color:#000">●</span>';
//记录棋步
var i = 1;
//判断整数的正则
var re = /^[0-9]+$/;
//记录白子走过的位置
var baiarr = '';
//记录黑子走过的位置
var heiarr = '';
//判断是否胜利的数组
var xy = Array('aaa','bbb','ccc','111','222','333');
var xie1 = Array('b2','c3','a1');
var xie2 = Array('b2','c1','a3');
//没走一步棋必须执行的函数
function a(obj){
var i2 = i/2;
if(obj.innerHTML){alert('非法操作');return;}
if(re.test(i2)){
obj.innerHTML=bai;
baiarr=baiarr+obj.id;
if(panduan(baiarr)) alert('白家胜利!');
}else{
obj.innerHTML=hei;
heiarr=heiarr+obj.id;
if(panduan(heiarr)) alert('黑家胜利!');
}
i++;
}
//判断是否胜利
function panduan(str){
if(scan_xie1(str)){return true}
if(scan_xie2(str)){return true}
var arr = str.split('');
arr.sort();
str = arr.join('');
//判断横线
for(var x in xy){
if(str.indexOf(xy[x]) != -1){return true;}
}
}
//判断斜线\
function scan_xie1(str){
for(var x in xie1){
if(str.indexOf(xie1[x]) == -1){return false;}
}
return true;
}
//判断斜线/
function scan_xie2(str){
for(var x in xie2){
if(str.indexOf(xie2[x]) == -1){return false;}
}
return true;
}
</script>
</body>
</html>本回答被提问者和网友采纳
<head>
<style>
#bg{width:150px;
margin:auto;
margin-top:15%;
}
#bg div{
width:44px;
height:44px;
border:solid 1px #33bcfa;
background:#2db648;
float:left;
font-size:50px;
text-align:center;
line-height:40px;
cursor:pointer;
}
</style>
</head>
<body>
<div id='bg'>
<div onclick="a(this)" id="a1"></div>
<div onclick="a(this)" id="a2"></div>
<div onclick="a(this)" id="a3"></div>
<div onclick="a(this)" id="b1"></div>
<div onclick="a(this)" id="b2"></div>
<div onclick="a(this)" id="b3"></div>
<div onclick="a(this)" id="c1"></div>
<div onclick="a(this)" id="c2"></div>
<div onclick="a(this)" id="c3"></div>
</div>
<script>
//白子
var bai = '<span style="color:#fff">●</span>';
//黑子
var hei = '<span style="color:#000">●</span>';
//记录棋步
var i = 1;
//判断整数的正则
var re = /^[0-9]+$/;
//记录白子走过的位置
var baiarr = '';
//记录黑子走过的位置
var heiarr = '';
//判断是否胜利的数组
var xy = Array('aaa','bbb','ccc','111','222','333');
var xie1 = Array('b2','c3','a1');
var xie2 = Array('b2','c1','a3');
//没走一步棋必须执行的函数
function a(obj){
var i2 = i/2;
if(obj.innerHTML){alert('非法操作');return;}
if(re.test(i2)){
obj.innerHTML=bai;
baiarr=baiarr+obj.id;
if(panduan(baiarr)) alert('白家胜利!');
}else{
obj.innerHTML=hei;
heiarr=heiarr+obj.id;
if(panduan(heiarr)) alert('黑家胜利!');
}
i++;
}
//判断是否胜利
function panduan(str){
if(scan_xie1(str)){return true}
if(scan_xie2(str)){return true}
var arr = str.split('');
arr.sort();
str = arr.join('');
//判断横线
for(var x in xy){
if(str.indexOf(xy[x]) != -1){return true;}
}
}
//判断斜线\
function scan_xie1(str){
for(var x in xie1){
if(str.indexOf(xie1[x]) == -1){return false;}
}
return true;
}
//判断斜线/
function scan_xie2(str){
for(var x in xie2){
if(str.indexOf(xie2[x]) == -1){return false;}
}
return true;
}
</script>
</body>
</html>本回答被提问者和网友采纳
第2个回答 2016-05-16
干嘛要用PHP,用个JS轻轻松松。