let item = document.getElementsByClassName('item');
let wintitle = document.getElementsByClassName('wintitle')[0];
let wall = document.getElementsByClassName('wall')[0];
function levelLineWin(arr){
if(arr.length>=5) {
let winArr=[];
for(let i=0; i<arr.length; i++) {
winArr=[];
winArr.push(arr[i])
let height = item[arr[i]].offsetTop
for(let j=0; j<arr.length;j++) {
if(arr[i]+1==arr[j] || arr[i]+2==arr[j] || arr[i]+3==arr[j] || arr[i]+4==arr[j]) {
winArr.push(arr[j])
}
}
let heightFlag = winArr.every((index)=>{
return item[index].offsetTop == height
})
if(winArr.length==5 && heightFlag){
return true;
}
}
}
}
function verticalLineWin(arr){
if(arr.length>=5) {
let winArr=[];
for(let i=0; i<arr.length; i++) {
winArr=[];
winArr.push(arr[i])
for(let j=0; j<arr.length;j++) {
if(arr[i]+15==arr[j] || arr[i]+30==arr[j] || arr[i]+45==arr[j] || arr[i]+60==arr[j]) {
winArr.push(arr[j])
}
}
if(winArr.length==5){
return true;
}
}
}
}
function rightDiagonalLineWin(arr){
if(arr.length>=5) {
let winArr=[];
for(let i=0; i<arr.length; i++) {
winArr=[];
winArr.push(arr[i])
for(let j=0; j<arr.length;j++) {
if(arr[i]+16==arr[j] || arr[i]+32==arr[j] || arr[i]+48==arr[j] || arr[i]+64==arr[j]) {
winArr.push(arr[j])
}
}
if(winArr.length==5){
return true;
}
}
}
}
function leftDiagonalLineWin(arr){
if(arr.length>=5) {
let winArr=[];
for(let i=0; i<arr.length; i++) {
winArr=[];
winArr.push(arr[i])
for(let j=0; j<arr.length;j++) {
if(arr[i]+14==arr[j] || arr[i]+28==arr[j] || arr[i]+42==arr[j] || arr[i]+56==arr[j]) {
winArr.push(arr[j])
}
}
let heightArr = winArr.map((index)=>{
return item[index].offsetTop
})
for(let a=0;a<heightArr.length;a++){
for(let b=a+1; b<heightArr.length;b++){
if(heightArr[a]==heightArr[b]){
heightArr.splice(b,1);
b--;
}
}
}
if(winArr.length==5 && heightArr.length==5){
return true;
}
}
}
}
let object= {
run:true,
white:{
arr:[],
},
black:{
arr:[]
}
}
for(let i=0;i<item.length; i++) {
item[i].onmouseover = function(){
if(object.run){
let flagWhite = object.white.arr.some((item)=>{
return item == i;
})
let flagBlack = object.black.arr.some((item)=>{
return item == i;
})
if(!flagWhite && !flagBlack){
item[i].style.background='white';
}
item[i].onclick = function(){
object.white.arr.push(i);
object.run = !object.run;
if(levelLineWin(object.white.arr) || verticalLineWin(object.white.arr) || rightDiagonalLineWin(object.white.arr) || leftDiagonalLineWin(object.white.arr)) {
wall.style.display='block'
wintitle.innerHTML='白子获胜'
}
}
}else{
let flagWhite = object.white.arr.some((item)=>{
return item == i;
})
let flagBlack = object.black.arr.some((item)=>{
return item == i;
})
if(!flagWhite && !flagBlack){
item[i].style.background='black';
}
item[i].onclick = function(){
object.black.arr.push(i);
object.run = !object.run;
if(levelLineWin(object.black.arr) || verticalLineWin(object.black.arr) || rightDiagonalLineWin(object.black.arr) || leftDiagonalLineWin(object.black.arr)) {
wall.style.display='block'
wintitle.innerHTML='黑子获胜'
}
}
}
}
item[i].onmouseout = function(){
let flagWhite = object.white.arr.some((item)=>{
return item == i;
})
let flagBlack = object.black.arr.some((item)=>{
return item == i;
})
if(!flagWhite && !flagBlack){
item[i].style.background= '';
}
}
}