[Javalist] tomb hiba

Böszörményi Péter zmblevlist at gmail.com
2013. Már. 11., H, 11:26:39 CET


Izgalmas lenne, ha valaki csak ugy letrehozna egy uj tombot a regi
helyett, mas meretekkel.

2013/3/11 Peter Verhas <peter at verhas.com>:
> Itten komoly bajok vannak ezzel a példával.
>
> Először is, a clone() metódusban nincs y, kimaradt a második, belső ciklus.
>
> Pont az eredeti problémát, hogy az Ertek-ből nem keletkezik új copy nem
> oldja meg. Persze ezt kikerülöd azzal, hogy helyette immutable Integer-t
> használsz, amivel csökkented az absztakciós szintet, és ezért nincs
> probléma. Mintapéldának kifejezetten rossz. Egyébként is.
>
> Aztán meg nagyon nem látom értelmét a setternek, meg a getternek. Miért
> olvashatóbb a
>
>  copy.setValue(x, y, values[x][y]);
>
> mint
>
> copy.values[x][y] = values[x][y]
>
> Csak azért settert meg gettert használni, mert az divatos? Mi az értelme a
> setter-nek, meg a getter-nek? Nah, majd erről is írok egy birkapásztor
> cikket. Elmagyarázom a birkáknak a lényeget (bocs, ez csak rossz vicc volt,
> nagyon beképzelt a mondat, de nem bírom kihagyni a poént).
>
> --
> Verhás Péter
> peter at verhas.com
> +36(30)9306805
> skype: verhas
>
>
>
>
> On 2013.03.10., at 23:28, coder at gmail.hu wrote:
>
> How about this approach?
>
> // A 9 egy magic number...
> public class Board {
>
>     private final Integer[][] values = new Integer[9][9];
>
>     public void setValue(int x, int y, Integer value) {
>         values[x][y] = value;
>     }
>
>     public Integer getValue(int x, int y) {
>         return values[x][y];
>     }
>
>     public Board clone() {
>         Board copy = new Board();
>         for (int x = 0; i < 9; i++) {
>             copy.setValue(x, y, values[x][y]);
>         }
>     }
> }
>
>
>
> Próbáld meg refaktorálni egy kicsit a kódot, hátha segít. Jómagam legalábbis
> preferálni szoktam a minél kisebb, könnyen menedzselhető darabokat;
> általában könnyebb is úgy adott problémákra megoldást találni.
>
>
>
> Üdv.: Bence
>
>
>
> On Sun, 10 Mar 2013 20:11:18 +0200, Bara Zoltan wrote:
>
> Sziasztok
>
> Van itt egy jelenseg amit nem ertek tabla erteket elmentenem
> tablaTemp-be majd valtoztatom
> a tablat es vissza kene tolteni az eredeti ertekeket.
> Eloszor probalkoztam a tabla = tablaTemp utasitassal persze sikertelenul.
> Aztan olvastam hogy System.ArrayCopy a megoldas.
> De nekem megse ugy tunik.
> Ime a kodreszlet:
>
>
> public class Sudoku extends Observable {
>      private Ertek tabla[][] = new Ertek[9][9];
>      private Ertek tablaTemp[][] = new Ertek[9][9];
>    ....
>
> // visszaad egy ket dimenzios tombot ami tele van a tabla elso
> lehetseges soraival
>       e = elsoSorGenerate();
>
> //atmentem a tablat hogy legyen meg az eredeti
>
>              for (int sor = 0; sor < tabla.length; sor++) {
>                  System.arraycopy(tabla[sor], 0, tablaTemp[sor], 0,
> tabla[sor].length);
>
>              }
>
>      if (e[tablaMutato][0] != 0){
>                      for (int oszlop = 0; oszlop < 9; oszlop++) { //ITT
> A HIBA ATIRODIK A TEMP ARRAY IS
> tabla[0][oszlop].setErtek(e[tablaMutato][oszlop]);
>                      }
>                  }
>
> Na ezt nem ertem hogy mutat arra cimre a tabla es a  tablaTemp, hogy
> lehet megvaltoztatni a tabla ertekeit hogy megmaradjon a tablaTemp.
>
> Udv
> Zoli
>
> _______________________________________________
> Javalist mailing list
> Javalist at lists.javaforum.hu
> http://lists.javaforum.hu/mailman/listinfo/javalist
>
>
> _______________________________________________
> Javalist mailing list
> Javalist at lists.javaforum.hu
> http://lists.javaforum.hu/mailman/listinfo/javalist
>
>
>
> _______________________________________________
> Javalist mailing list
> Javalist at lists.javaforum.hu
> http://lists.javaforum.hu/mailman/listinfo/javalist
>



-- 
Üdvözlettel,
Böszörményi Péter


További információk a(z) Javalist levelezőlistáról