Wpis z mikrobloga

Mam "ścianę" w której co drugi element może być wejściem. Muszę w niej utworzyć X wejść i chciałbym, żeby były jak najrówniej i najbardziej symetrycznie rozłożone. Ktoś pomoże jak to napisać?
Na razie mam, że dzieli długość przez X+1 i skacze o tyle od indeksu -1 (jeśli nie trafi na możliwe wejście to wstawia je 1 dalej, ale nie zmienia punktu skoku). Działa ładnie przy 1,2,3 wejściach ale powyżej daje nieładne wyniki. No i ma podstawowy problem, że dwie różne ilości wejść mogą mieć ten sam skok.

Zasadniczo jak jest ściana na 17 elementów to jest to 8 możliwych wejść.
dla 4 powinno to wyglądać:
XXXOXXXOXOXXXOXXX
lub
XOXXXOXXXXXOXXXOX (lepsza wersja 1)

dla 5:
XOXXXOXXXOXOXXXOX
lub
XOXXXOXOXXXOXXXOX

tyle, że 17/5 ~ 3 i tak samo 17/6~3;
#programowanie #dungeongenerator
  • 4
@Naxster: W czym to piszesz? Jeżeli potrzebujesz symetrii, to stosunkowo łatwo rozwiążesz ten problem za pomocą rekurencji. Kluczowe jest to czy liczba pożądanych wejść jest nieparzysta:
a) jeżeli tak, to na pewno będziesz musiał zająć środkowy element ściany, a następnie rekurencyjnie wywołać funkcję dla lewej i prawej strony ściany (oczywiście zmniejszając liczbę wejść wymaganych do zaalokowania - dla każdej ze stron będzie to w tym momencie (X - 1) / 2