我有一个 6x7 表,当我单击特定单元格时,我需要检查:
- 同一行上的
4 个连续单元格或 - 同一列上的
4 个连续单元格或 - 同一对角线上的 4 个连续单元格是否具有属性类蓝色的。
我试了一下,似乎水平和垂直检查工作正常。但不是对角线。有任何想法吗?
$(".circle").click(function() {
var colindex = $(this).closest('td').index() + 1;
var rowindex = $(this).closest('tr').index() + 1;
if(checkHorizontally() || checkVertically() || checkDiagonally()){
console.log("Blue wins");
}
function checkHorizontally(){
var sum;
for(i=6;i>0;i--){
for(j=1;j<=7;j++){
var cell = $('tr:nth-child('+i+') td:nth-child('+j+')');
if (cell.find('div').css('background-color')==='rgb(0, 0, 255)'){
sum+=1;
}
else{
sum=0;
}
if(sum>=4){
console.log("blue wins horizontally");
return true;
}
}
sum=0;
}
}
function checkVertically(){
var sum;
for(i=1;i<=7;i++){
for(j=1;j<=6;j++){
var cell = $('tr:nth-child('+j+') td:nth-child('+i+')');
if (cell.find('div').css('background-color')==='rgb(0, 0, 255)'){
sum+=1;
}
else{
sum=0;
}
if(sum>=4){
console.log("blue wins vertically");
return true;
}
}
sum=0;
}
}
function checkDiagonally(){
var sum;
for(k=1;k<=7;k++){
for(var y=1, x=k; x<7 ; y++,x++){
var cell = $('tr:nth-child('+y+') td:nth-child('+x+')');
if (cell.find('div').css('background-color')==='rgb(0, 0, 255)'){
sum+=1;
}
else{
sum=0;
}
if(sum>=4){
console.log("blue wins diagonally");
return true;
}
}
sum=0;
}
}
});
江户川乱折腾
holdtom
相关分类