Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem programistyczny. Wypełnianie podłogi płytkami
marcinpruciak
post
Post #1





Grupa: Zarejestrowani
Postów: 161
Pomógł: 9
Dołączył: 14.07.2008

Ostrzeżenie: (0%)
-----


Mam zadanie wypełnić przestrzeń takimi 3 rodzajami rombów:
(IMG:http://img602.imageshack.us/img602/3610/25861196.png)

Mają być ułożone losowo, z warunkiem że nie mogą się nakładać.
Z rombem 1 i 2 nie mam problemu. Losuję sobie normalnie to w tablicy dwuwymiarowej i wklejam obrazek:
demo

Z rombem nr 3 mam spory problem, ponieważ zajmuje dwa miejsca poziomo i pionowo (chyba). W normalnej tablicy nie da się go chyba zapisać? Jakiś pomysł?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Potraktuj owe romby jako złożone z 4 trójkątów. W 1 i 2 są one obok siebie. Różnica to fakt, który może być początkowy. W 3 dwa są obok siebie, a następne 2 poniżej tych dwóch. Kwestia najważniejsza to jak zapisać "podłogę" w takim układzie (IMG:style_emoticons/default/winksmiley.jpg) Najprościej... Górne trójkąty to indeksy 0, 2, 4,...(parzyste). 1,3,.. (nieparzyste) to dolne. Tak tworzysz wiersz. Kolejny ma indeksy przesunięte o 1, czyli górne stają się nieparzystymi a dolne parzystymi. Trudność sprawia wyłapanie, który jest którym w jakim wierszu i tyle (IMG:style_emoticons/default/winksmiley.jpg) Przyjmując że wiersz zerowy ma najpierw górny trójkąt, wiersz pierwszy będzie miał pierwszy trójkąt dolny ()stworzy to ich lustrzane odbicie konieczne do rombu nr 3).
Przykład dla płytki 1, to zajęcie od nieparzystej 4 kolejnych czyli przykładowo 3,4,5,6
Przykład dla płytki 2, to zajęcie od parzystej 4 kolejnych, czyli przykładowo 4,5,6,7
Przykład dla płytki 3, to zajęcie sąsiednich nieparzystego i parzystego (5 i 6) w wierszu 0 oraz 5 i 5 w wierszu 1

To cały trick (IMG:style_emoticons/default/winksmiley.jpg) Później tylko musisz sprawdzać, czy da się wklejając romby zajmować określone elementy podłogi (wykraczanie poza "podłogę" lub zachodzenie na inne płytki).
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.10.2025 - 02:22