[C++] Posortowanie, oraz ułożenie w tablicy liczb

Witam,

mam dosyć skomplikowany problem, aczkolwiek myślę że nie niewykonywalny:

Mam zapisane współrzędne obiektów, które chcę wyświetlić w grze. Niestety są one pomieszane, a ja chcę mieć je w kolejności. Oto o co mi chodzi:

przyklll.png

Prościej mówiąc chciałbym żeby mi posortowało wg. wierzy i kolumn.

Wiem, że to nieudolnie wytłumaczyłem, ale mam nadzieję, że mnie rozumiecie :slight_smile:

Pozdrawiam.

PS: Aj, obrazek jest źle zrobiony. Tu nie chodzi i współrzędne tylko ogólnie o liczby :confused:

EDIT:

Albo może inaczej to wytłumaczę na własnej sytuacji:

Chciałbym do gry dodać teren (pagórki, wzgórza), no i mam współrzędne wierzchołków X, Y oraz Z. Muszę w miarę szybko i prosto móc modyfikować wartość Y poszczególnych wierzchołków, dlatego na podstawie współrzędnych X i Z, chcę poukładać w tablicy współrzędne Y.

W tablicy mają być tylko współrzędne Y, natomiast ich miejsce w tej tablicy ma zależeć od pozycji tych współrzędnych w osi X i Z.

Nie lepiej zrobić dwuwymiarową tablice?

int tab[x][z];

Masz wtedy posortowane według [x][z] lol, a w wartości tablicy masz zmienną y.

Nie rozumiesz o co mi chodzi. Ja już mam dwuwymiarową tablicę. po prostu chcę teraz posortować wyniki z góry na dół i z lewej do prawej ^^

Chcesz z tego zrobić macierz posortowaną według wartości Y, która będzie przykładowo wyglądała tak:

1 1 2 1 1

1 2 3 2 1

2 3 4 3 2

1 2 3 2 1

1 1 2 1 1

Żeby po wyświetleniu przypominało górkę?

Nie. Chcę po prostu do tablicy “włożyć” współrzędne Y, lecz wg. kolejności, tzn. wierzchołki które wartość X mają najmniejsze są umieszczone (łopatologicznie określając) po lewej stronie tablicy (jakby ją graficznie przedstawić), natomiast te co mają wartość X największą są po prawej stronie.

No ale przecież tak właśnie jest w tablicy dwuwymiarowej ;>

Może inaczej napisz najpierw w jakim układzie współrzędnych Ty pracujesz, Y czy Z odpowiada za wysokość twojej mapy?

Patrz:

mamy mapę

mapaag.png

Są na niej zaznaczone punkty. One mają współrzędne X i Z i według nich są porozrzucane po mapie. Ja chcę te punkty umieścić w tablicy dwuwymiarowej i je posortować według ich współrzędnych X i Z. Tzn. im większą ma współrzędną punkt 1 tym dalej jest w tablicy (jak to wcześniej określiłem jest bardziej na prawo xD)

Natomiast w tablicy mają się znaleźć tylko współrzędne Y tych punktów.

Te punkty umyślnie i docelowo mają być w różnych odstępach? Jeśli tak to ciężko Ci będzie zrobić to na 2 wymiarowej tablicy. Chcesz je później jakoś łączyć czy coś? Jest ich ustalona ilość? Czy będziesz dynamicznie dodawać nowe punkty? Muszą one mieć jakieś określone współrzędne jak np. 1,23243 czy wystarczą liczby całkowite od 0 do n. Napisałeś że to ma być teren mapy do gry, a tłumaczysz jakby o zupełnie co innego Ci chodziło. Jeśli potrzebujesz teren do mapy to robisz punkty w równych odstępach, przykładowo chcesz mieć wymiary mapy 300 x 300, alokujesz tablice intów:

int tab[300][300], teraz zakładasz według tego co tam tłumaczyłeś, że lewy górny róg masz w tab[0][0], a prawy dolny w tab[299][299]. Wartość tablicy jest współrzędną Y, a Ty tłumaczysz punkty jakbyś potrzebował strukturę danych do trzymania modeli 3d.