Hirdetés

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

  • Davs

    tag

    Hali, kellene egy kis segitseg. Sudoku-fejto programocskan munkalkodok (androidra, de most azt hagyom, kulon javaban szeretnem implementalni az egeszet, aztan atvinni oda).
    Adott a sudoku[] tomb, 81elemmel ugyebar, mindegyik eleme vagy <1,9> szam, vagy 0, ha ures. Addig futna a program, amig van 0 a sudoku tombben, mert ugye addig nincs megoldva.
    Ott tartok, hogy minden mezohoz el szeretnem menteni a lehetseges szam-jelolteket es kicsit tanacstalan vagyok abban, hogy milyen adattipust hasznaljak. A lenyeg, hogy minden eleme egy tombbot tartalmazzon, tehat a candidate[0]={1,2,3}, candidate[1]={8,9} , esetleg, ha nincs semmilyen lehetoseg (ergo azon a mezon mar meg van adva a szam), akkor tomb helyett egy egyszeru (int) 0 szerepelhetne. Ugy lenne jo, hogy azokbol a tombbol torolhessem az elemeket, pl ha a bal felso sarokban (ahova eddig mehetett 1,2,3) ki tudom zarni a 3-ast, akkor torolhessem a tombbol, igy candidate[0]={1,2} maradna. Eddig valahol itt tartok, mukodni mukodik, csak nemtudom, hogy az int[][] tombbol lehet-e torolni elemeket..

    public static int[][] candidates() { //kigeneralja a tombot a lehetseges szamokkat
    int[][] cand = new int[81][] ;
    for (int i = 0; i < 81; i++) { //vegigmegy a sudoku[] tombon
    if (sudoku[i] != 0) { //ha a szam mar meg van adva, akkor 0-t allit be
    cand[i] = new int[1] ;
    cand[i][0] = 0 ;
    } else { //ha a szam nincs megadva, azaz =0
    int[] tmp = getCand(i) ; //getCand ellenorzi, hogy az adott mezoben mely szamok lehetnek (sort es oszlopot nezi csak)
    cand[i] = new int[tmp.length] ;
    cand[i] = tmp ;
    System.out.println(cand[i][1]) ;
    }
    }

    return cand ;
    }

    es itt lenne jo, ha pl a cand[0]-ban levo tombbol tudnek torolni..C-ben vectoroztam anni, most is probaltam ArrayList-ezni, csak nemigazan tudtam deklaralni ugy, hogy az adott valtozom minden eleme egy tombbot tartalmazzon..igy roviden ennyi a problemam :D

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