0
   if(isEmptySquare(this)){

        adjacents = adjacentSquares(this);

        $(adjacents).each(function(){

            uncoverSquare(this);

                    //if(isEmptySquare(this)){

            //adjacents = adjacentSquares(this);

            //$(adjacents).each(function(){

                //uncoverSquare(this);

        //});                   
    //}

        });                 
    }

 function adjacentSquares(square){

            var thisRow = $(square).parent().parent().children().index($(square).parent());
            var thisCol = $(square).parent().children().index($(square));
            var prevRow = (thisRow-1);
            var nextRow = (thisRow+1);

            if(thisCol == 0){sliceFrom = 0;} else { sliceFrom = (thisCol-1);}

            var above = $('tr:eq('+prevRow+')').children('td').slice((sliceFrom),(thisCol+2));
            var below = $('tr:eq('+nextRow+')').children('td').slice((sliceFrom),(thisCol+2));
            var aboveBelow = $.merge(above,below);
            var prevNext = $.merge(($(square).next('td')),($(square).prev('td')));
            var adjacents = $.merge(aboveBelow,prevNext);

            return adjacents;

        }

function isEmptySquare(square){

        if($(square).filter(function(){return !/[0-9]/.test( $(square).text() );}).not(":contains('x')").length>0){

            return true;

        } else { 

            return false; 
        }
    }

jQuery を使用してテーブル セルのフラッド フィル アルゴリズムを実行するにはどうすればよいですか?

現在、ユーザーが表のセルをクリックすると、それが空の場合、隣接するセルが表示されます。それを機能させるために私が見つけた1つの方法は、隣接する正方形のそれぞれに対してコードを繰り返し(コードのこの部分をコメントアウトしました)、コードを繰り返し、コードを繰り返すことでした...ただし、応答しなくなりました.

私は jQuery で最小スイーパー ゲームを作成しようとしています。これを実装する方法はわかりませんが、フラッド フィル アルゴリズムについて言及した人がいます。

4

1 に答える 1

1

誰かがこれに出くわした場合に備えて。ここで探していた答えを見つけましたhttp://www.htmlgoodies.com/primers/jsp/article.php/3622321/Javascript-Basics-Part-12.htm

于 2011-05-13T08:22:12.493 に答える