Új hozzászólás Aktív témák

  • andriscs

    aktív tag

    Sziasztok!

    Új problémával állok elő. Szóval van egy 2 dimenziós tömb, amiben azt vizsgálom, hogy egy adott elemtől indulva az elemet körbevevú 8 irányban találok-e még legalább 3 ugyanolyan elemet (amőba jellegű a dolog). A probléma azt, hogy a tömb belsejében tökéletesen működik a dolog, de a széleken mintha összeadná az összes találatot. Emiatt megcsináltam úgy, hogy minden irányban új változó tárolja a találatot, de így sem működik. Nincs ötletem, hogy mi a hiba. Természtesen a tömböknél figyelni kell, hogy ne lépje túl a tömb határait. Bemásolom ide az adott függvény kódját, hátha valaki rátalála hibára:

    public boolean searchEngine() //need to check
    {
    int clone1=0;
    int clone2=0;
    int clone3=0;
    int clone4=0;
    int clone5=0;
    int clone6=0;
    int clone7=0;
    int clone8=0;

    for(row=0;row<size;row++)
    {
    for(col=0;col<size;col++)
    {
    for(int count=1;row+count<game.length;count++){
    if (game[row+count][col].equals(game[row][col])) {
    clone1++;
    if (clone1>=3) return true;}
    else clone1=0;
    }
    for(int count=1;row-count>-1;count++)
    if (game[row-count][col].equals(game[row][col])) {clone2++;
    if (clone2>=3) return true;}
    else clone2=0;
    for(int count=1;col+count<game.length;count++)
    if (game[row][col+count].equals(game[row][col])) {clone3++;
    if (clone3>=3) return true;}
    else clone3=0;
    for(int count=1;col-count>-1;count++)
    if (game[row][col-count].equals(game[row][col])) {
    clone4++;
    if (clone4>=3) return true;}
    else clone4=0;
    for(int count=1;(row+count<game.length) && (col+count<game.length);count++)
    if (game[row+count][col+count].equals(game[row][col])) {clone5++;
    if (clone5>=3) return true;}
    else clone5=0;
    for(int count=1;(row-count>-1) && (col-count>-1);count++)
    if (game[row-count][col-count].equals(game[row][col])) {
    clone6++;
    if (clone6>=3) return true;}
    else clone6=0;
    for(int count=1;(row+count<game.length)&& (col-count>-1);count++)
    if (game[row+count][col-count].equals(game[row][col])) {clone7++;
    if (clone7>=3) return true;}
    else clone7=0;
    for(int count=1;(row-count>-1) && (col+count<game.length) ;count++)
    if (game[row-count][col+count].equals(game[row][col])) {clone8++;
    if (clone8>=3) return true;}
    else clone8=0;
    }
    }
    return false;
    }

    Akinek van ötlete, ne kíméljen!

    Andris - http://andriscs.blogspot.com

Új hozzászólás Aktív témák