[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

pl.comp.programming

Dwuwymiarowy iterator

Sebastian Bialy

3/1/2007 8:11:00 PM

Witam!

Mam pewien dwuwymiarowy kontener. Kontener posiada "kszta3t"
prostok?tny. Jego cech? charakteryetyczn? jest k3opot z random-access do
dowolnej pozycji. W zasadzie szybkie jest chodzenie po s?siadach w 4
kierunkach.

Pytanie: Jak powinien wygl?daa koncepcyjnie iterator chodz?cy po takim
kontenerze?

Mam tutaj problem przede wszystkim problem z detekcj? konca. Proste
porownanie it == kontener.end() nie ma sensu w 2 wytmiarach. Powinienem
miea chyba w zasadzie dwa konce - prawy i dolny.

Podobie komplet dwóch par inkrementacji/dekrementacji, co? w gu?cie
moveUp/Down, moveLeft/Right.

Nie wiem jak to sensownie zaprojektowaa, mo?e ma kto? jakie?
do?wiadczenia w tej kwestii ?
11 Answers

Marcin 'Qrczak' Kowalczyk

3/1/2007 8:20:00 PM

0

Dnia 01-03-2007, czw o godzinie 21:10 +0100, Sebastian Bialy napisal(a):

> Podobie komplet dwóch par inkrementacji/dekrementacji, cos w guscie
> moveUp/Down, moveLeft/Right.

Jesli poszczególne kierunki sa traktowane jednakowo, to moze funkcja
przesuwajaca z argumentem „kierunek” (N, E, S, W), która zwraca
wskazanie na kolejne pole badz informacje, ze tam byla sciana.

Wiecej trudno powiedziec bez zastosowania. Np. jesli to jest gra
w dwuwymiarowym swiecie, to zapewne nie po wszystkich polach mozna
chodzic i wystarczy obudowac kazda mape murem — poprawny program nie
wyjdzie poza mape.

--
__("< Marcin Kowalczyk
\__/ qrczak@knm.org.pl
^^ http://qrnik.knm.org.p...

Sebastian Bialy

3/1/2007 9:11:00 PM

0

Marcin 'Qrczak' Kowalczyk wrote:
> JeÅ?li poszczególne kierunki sÄ? traktowane jednakowo, to może funkcja
> przesuwajÄ?ca z argumentem â??kierunekâ? (N, E, S, W), która zwraca
> wskazanie na kolejne pole bÄ?dź informacjÄ?, że tam byÅ?a Å?ciana.

Hmmm nie lubie takiego iteratora który dereferencjÄ? zwraca coÅ? poza
obiektem na którym stoi. To mi troche zaciemnia kod.

> WiÄ?cej trudno powiedzieÄ? bez zastosowania. Np. jeÅ?li to jest gra
> w dwuwymiarowym Å?wiecie, to zapewne nie po wszystkich polach można
> chodziÄ? i wystarczy obudowaÄ? każdÄ? mapÄ? murem â?? poprawny program nie
> wyjdzie poza mapÄ?.

Nie tu można chodziÄ? po wszystkich polach. Chodzi tylko o niemożnoÅ?Ä?
użycia [] na kontenerze. W zasadzie implementacja jest trywialna, chodzi
mi tylko o to czy sÄ? jakieÅ? wzorcowe pomysÅ?y jak to siÄ? robi. WymyÅ?lajÄ?c
to sam za pierwszym razem na pewno o czymÅ? zapomnÄ?.

Sebastian Kaliszewski

3/2/2007 12:06:00 PM

0

Sebastian Bialy wrote:
> Pytanie: Jak powinien wygl?daa koncepcyjnie iterator chodz?cy po takim
> kontenerze?
>
> Mam tutaj problem przede wszystkim problem z detekcj? konca. Proste
> porownanie it == kontener.end() nie ma sensu w 2 wytmiarach. Powinienem
> miea chyba w zasadzie dwa konce - prawy i dolny.

S? dwa podej?cia do iteratorów. Jedno to takie, ?e masz jaki? specjalny
iterator oznaczaj?cy wyj?cie poza (takie kontener.end()) i z nim porównujesz
(czyli podej?cie STL). Drugie za? to to, ?e sam iterator ma mo?liwo?c
sprawdzenia czy jest jeszcze "walid". To drugie lepiej sie skaluje na taki
iterator dwuwymiarowy. Zamiast powównywania robisz metode mówi?c? o wyj?ciu
w bok i osobn? o wyj?ciu w dó3/w góre.


> Podobie komplet dwóch par inkrementacji/dekrementacji, co? w gu?cie
> moveUp/Down, moveLeft/Right.

To mamiast ++ i -- zrób sobie n(), s(), w(), e() czy left(), right(), up(),
down()

pzdr
\SK

Sebastian Bialy

3/2/2007 5:22:00 PM

0

Sebastian Kaliszewski wrote:
> S? dwa podej?cia do iteratorów. Jedno to takie, ?e masz jaki? specjalny
> iterator oznaczaj?cy wyj?cie poza (takie kontener.end()) i z nim
> porównujesz (czyli podej?cie STL). Drugie za? to to, ?e sam iterator ma
> mo?liwo?c sprawdzenia czy jest jeszcze "walid". To drugie lepiej sie
> skaluje na taki iterator dwuwymiarowy. Zamiast powównywania robisz
> metode mówi?c? o wyj?ciu w bok i osobn? o wyj?ciu w dó3/w góre.

Wiem, stosuje powszechnie obydwie metody jednak coraz bardziej sk3aniam
sie w kierunku std:: czyli porównywaniu z end. Bardziej mi to pasuje do
ogólnej koncepcji std::. St?d pytanie jak to sensownie rozwi?zaa. Moge
miea zawsze dwa rodzaje konców endx, endy. Nie wiem tylko czy to jest
zgodne ze sztuk?.

> To mamiast ++ i -- zrób sobie n(), s(), w(), e() czy left(), right(),
> up(), down()

No dok3adnie tak zamierzam.

Tak naprawde chodzi mi o jakie? implementacje gotowe, chcia3bym zobaczya
jak to robi? inni, mo?e bed? jakie? ciekawe pomys3y.

pdemb

3/3/2007 3:08:00 PM

0

Sebastian Kaliszewski <sk@get.it.off.to.reply.z.pl> writes:

[...]

> To mamiast ++ i -- zrób sobie n(), s(), w(), e() czy left(),
> right(), up(), down()

i <
i >
i ^
i v

:^)

Sebastian Kaliszewski

3/5/2007 8:10:00 AM

0

Sebastian Bialy wrote:
> Wiem, stosuje powszechnie obydwie metody jednak coraz bardziej sk3aniam
> sie w kierunku std:: czyli porównywaniu z end. Bardziej mi to pasuje do
> ogólnej koncepcji std::. St?d pytanie jak to sensownie rozwi?zaa. Moge
> miea zawsze dwa rodzaje konców endx, endy. Nie wiem tylko czy to jest
> zgodne ze sztuk?.

A czy mo?e bya tak, ?e iterator dojdzie do konca wiersza i bedzie w nim
mo?na zmienia wiersz na inny (bez zmieny stanu, ?e jest na koncu wiersza)?

pzdr
\SK

Sebastian Bialy

3/6/2007 8:53:00 PM

0

Sebastian Kaliszewski wrote:
> A czy mo?e bya tak, ?e iterator dojdzie do konca wiersza i bedzie w nim
> mo?na zmienia wiersz na inny (bez zmieny stanu, ?e jest na koncu wiersza)?

Nie ma mowy :) To co? w rodzaju szachownicy i problemu poruszania sie po
niej figur.

Augustus O'Muircheartaigh

6/1/2010 10:36:00 PM

0

On Jun 1, 9:32 pm, An Mac Tíre Bán <rayh(removespamblocker>@iol.ie
wrote:
> On 01 Jun 2010 20:05:18 GMT, Battery Drill Lobotomy <dril...@terminus.net>
> wrote:
>
>
>
>
>
> >On Tue, 01 Jun 2010 12:08:18 -0400, An Mac Tíre Bán <rayh wrote:
>
> >> On Tue, 1 Jun 2010 22:13:27 +0800, "Paul Carr"
> >> <worldpaulc...@hotmail.com> wrote:
>
> >>>Kelpie wrote:
> >>>> On Jun 1, 1:24 pm, Féachadóir <Féach@d.óir> wrote:
> >>>>> On Tue, 1 Jun 2010 05:21:30 -0700 (PDT), Kelpie
>
> >>>>> <crispenrushfordl...@london.com> wrote:
>
> >>>>>> I do.
>
> >>>>> This thread will now be boarded. Please do not resist. --
> >>>>> 'Donegal: Up Here It's Different'
> >>>>> © Féachadóir
>
> >>>> Jaysus you're quick. You surprise me, I thought you might have been
> >>>> loaded with doubt and indecision. I don't know where to place you:
> >>>> Take cover and watch for me.
>
> >>>Westprog will be along soon to declare that Israel is a bulwark of
> >>>democracy and must be supported at all costs.  I read today that the USA
> >>>will support a UN motion calling for a nuclear-free zone for the Middle
> >>>East and specifically calling on Israel to join the Non-Proliferation
> >>>Treaty and thus open its nuke stockpile to inspections.  If this is the
> >>>case, then I welcome it.
>
> >> Do you really think Israel will give up the one weapon it has that kept
> >> the mongrel tribes from overrunning and destroying the country?  Expect
> >> an Israeli air strike on Iran's nuke sites long before they will ever
> >> even consider giving up their one weapon that ensures it's future
> >> existence...
>
> >> Ray
>
> >In Nevada and Tennessee, it's legal for private citizens to keep nuclear
> >weapons.  Virginia's legislature is considering legalizing "concealed
> >carry nukes".  Where is is written that only the US or superpowers are
> >entitled to nuclear weapons?  They're the great equalizer.
> >If everyone has nuclear weapons, then we had all better treat each other
> >well, don'cha think?  
>
> This is like saying we must arm all criminals because all police are armed! It's
> a nonsense argument!

No; It is like saying: "if guns are outlawed, only outlaws will carry
guns"


>
> Ray
> --
> Open Letter to Democrat Politicians:http://www.youtube.com/watch?v=T...
>
> Here's to you Mr. Jefferson! - Mike Church:http://www.youtube.com/watch?v=C...
>
> "Official Terrorist Hunting License"http://eirefirst.com/...
>
> The Struggle against Militant Islamic Radicalism is the
> great ideological conflict of the early years of the
> 21st centuary - The National Security Strategy Mar 2006- Hide quoted text -
>
> - Show quoted text -

Kelpie

6/2/2010 8:39:00 AM

0

On Jun 1, 10:36 pm, "Paul Carr" <worldpaulc...@hotmail.com> wrote:

>
> The ships of the flotilla were all thoroughly checked and certified as
> having no weapons when they left the port at Cyprus. Otherwise, the Cypriot
> authorities wouldn't have allowed an offending ship to leave port.
>

Now, THAT is the essential of the matter.

Kelpie

6/2/2010 8:47:00 AM

0

On Jun 1, 10:55 pm, (max.it) wrote:
> On Tue, 1 Jun 2010 22:21:52 +0100, "Westprog" <westp...@hottmail.com>
> wrote:
>
> >Paul Carr wrote:
>
> >> Westprog will be along soon to
>
> >because I'm Jewish? Explain please.
>
> >On second thoughts, why bother?
>
> The Knesset talk with their guns and the Vatican talk with their
> penis, both talk a heap of old shit. It's the little particles of high
> level politicoreligious shit that drop off onto the poor beneathlings
> that cause the problems.
> All of a sudden a political opinion or religious view makes you a
> spokesperson for millions.
>
> max.it (the orange cage)

Now, that's deep thinking, almost revoutionary. Do you have a hidden
talent for mathematics?

Maybe Paul can add:

" All of a sudden a political opinion or religious view makes you a
spokesperson for millions."

to his dictionary of quotations