<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html><body>
<p>A nepáli birkapásztoros cikket már meg is szavaztam.</p>
<p>Getter/Setter... nagy dilemma, ebből a szempontból ugye semmi értelme nem volna; semmilyen körülmények közt.</p>
<p>Ám ugye az encapsulationt szeretjük. No meg az okfejtést is, ezért ezt meg is hagyom kivesézésre a nálam ehhez jobban konyító pásztoroknak.</p>
<p>Ertek ugye nem immutable, ámde ojjektum (300000... nem... 30000... vagy nem tudom...), szinte teljesen feleslegesen; jó, érték 1..9, illetve a null, ami az üres mezőt takarja - nálam is ezokból lett int helyett Integer. A clone metódust, hááááát, elszúrtam :) Nem mindig friss az ember.</p>
<p>Azért nem az eredeti problémát oldottam meg, mert az leginkább abból adódik, hogy keverednek az (amúgy megkerült) absztrakciós szintek, objektum, aminek nem kellene annak lennie, és nem az, aminek pedig kéne - a mátrix, mint olyan, maga a bűz. Azt megtartom azokra az alkalmakra, amikor ".386p" a forráskódom első sora, vagy amikor el van wrappelve valami mögé, amivel dolgozni is lehet (a példának is ilyesmi lett volna a lényege).</p>
<p> </p>
<p>Mindent összevetve, azért örülök, hogy megihlettelek :D</p>
<p> </p>
<p>Bence</p>
<p> </p>
<p>On Mon, 11 Mar 2013 11:05:09 +0100, Peter Verhas wrote:</p>
<blockquote type="cite" style="padding-left:5px; border-left:#1010ff 2px solid; margin-left:5px; width:100%"><!-- html ignored --><!-- head ignored --><!-- meta ignored --><!-- meta ignored -->Itten komoly bajok vannak ezzel a példával.
<div>Először is, a clone() metódusban nincs y, kimaradt a második, belső ciklus.</div>
<div>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.</div>
<div>Aztán meg nagyon nem látom értelmét a setternek, meg a getternek. Miért olvashatóbb a </div>
<div>
<blockquote type="cite" style="padding-left:5px; border-left:#1010ff 2px solid; margin-left:5px; width:100%">
<p> copy.setValue(x, y, values[x][y]);</p>
</blockquote>
mint </div>
<div>copy.values[x][y] = values[x][y]</div>
<div>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).</div>
<div><br />
<div>
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><span class="Apple-style-span" style="color: #888888;">--</span><span class="Apple-style-span" style="color: #888888;"><br /></span><span class="Apple-style-span" style="color: #888888;">Verhás Péter</span><span class="Apple-style-span" style="color: #888888;"><br /></span><span class="Apple-style-span" style="color: #888888;"></span><span class="Apple-style-span" style="color: #888888;"><a href="mailto:peter@verhas.com">peter@verhas.com</a></span><span class="Apple-style-span" style="color: #888888;"><br /></span><span class="Apple-style-span" style="color: #888888;">+36(30)9306805</span><span class="Apple-style-span" style="color: #888888;"><br /></span><span class="Apple-style-span" style="color: #888888;">skype: verhas</span></div>
</div>
<span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; border-spacing: 0px;"><span class="Apple-style-span" style="border-collapse: separate; color: #000000; font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium;"></span><br class="Apple-interchange-newline" /></span></div>
<br />
<div>
<div>On 2013.03.10., at 23:28, <a href="mailto:coder@gmail.hu">coder@gmail.hu</a> wrote:</div>
<br class="Apple-interchange-newline" />
<blockquote type="cite" style="padding-left:5px; border-left:#1010ff 2px solid; margin-left:5px; width:100%">
<div>
<p>How about this approach?</p>
<p>// A 9 egy magic number...<br />public class Board {</p>
<p> private final Integer[][] values = new Integer[9][9];<br /><br /> public void setValue(int x, int y, Integer value) {<br /> values[x][y] = value;<br /> }<br /><br /> public Integer getValue(int x, int y) {<br /> return values[x][y];<br /> }<br /><br /> public Board clone() {<br /> Board copy = new Board();<br /> for (int x = 0; i < 9; i++) {<br /> copy.setValue(x, y, values[x][y]);<br /> }<br /> }<br />}</p>
<div> </div>
<p>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.</p>
<div> </div>
<p>Üdv.: Bence</p>
<div> </div>
<p>On Sun, 10 Mar 2013 20:11:18 +0200, Bara Zoltan wrote:</p>
<blockquote style="padding-left: 5px; border-left: #1010ff 2px solid; margin-left: 5px; width: 100%;">
<pre>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
<a href="mailto:Javalist@lists.javaforum.hu">Javalist@lists.javaforum.hu</a>
<a href="http://lists.javaforum.hu/mailman/listinfo/javalist">http://lists.javaforum.hu/mailman/listinfo/javalist</a>
</pre>
</blockquote>
<div> </div>
</div>
_______________________________________________<br />Javalist mailing list<br /><a href="mailto:Javalist@lists.javaforum.hu">Javalist@lists.javaforum.hu</a><br />http://lists.javaforum.hu/mailman/listinfo/javalist</blockquote>
</div>
</div>
</blockquote>
<div> </div>
</body></html>