streszczenie
Celem tego wyzwania jest stworzenie nieopracowanej wersji graficznej 15-łamigłówki / przesuwanej układanki, zwanej także francuskim taquin .
Detale:
Biorąc pod uwagę wkład złożony z:
- obraz,
- liczba całkowita
n
, - inna liczba całkowita
r
,
Twój program, funkcja lub cokolwiek innego, co pasuje, musi wyświetlać ten sam obraz ( tj. ten sam rozmiar i format) co dane wejściowe, ale który przeszedł następujący proces:
- podziel obraz na
n²
prostokąty, - losowo usuń jeden z tych prostokątów,
- przesuń losową liczbę sąsiadujących prostokątów z linii / kolumny, na którą wpływa punkt (2), aby utworzony otwór został wypełniony i w tej linii / kolumnie zostanie wygenerowany kolejny. Ten numer może być,
0
jeśli puste miejsce znajduje się w rogu lub na krawędzi.
Powtórz (3.) r
razy.
Wyjaśnienia:
- Jeśli przeniosłeś prostokąty z linii w kroku (3), musisz przenieść prostokąty z kolumny w następnym powtórzeniu,
- jeśli przesunąłeś prostokąty od lewej do prawej w kroku linii, musisz je przesunąć od prawej do lewej w następnym kroku linii, tak samo w przypadku kolumn od góry do dołu i od dołu do góry,
- możesz założyć, że
n
zostanie wybrany, aby dzielił długości boków obrazu.
Ostatni punkt:
Animacja .gif
pokazująca cały proces jest bardzo mile widziana.
Proponuję użyć następującego obrazu (który jest 1024x768
), z modelem n=16
i, r=100
jako model, możesz użyć dowolnego innego obrazu (o ile jest on odpowiedni i zgodny z zasadami SE), oczywiście.
Pamiętaj, że obowiązują zasady dotyczące luk w standardach .
To jest golf golfowy , więc wygrywa krótsze zgłoszenie!
Ponieważ zażądano przykładu, oto jeden, wykonany „ręcznie” za pomocą n=4
ir=1
Kroki 1 i 2
Krok 3 : liniowo, 2 prostokąty po lewej stronie
move a random number of contiguous rectangles
czy może to być 0 prostokątów? (utrudnieniem byłoby zachowanie zmiany programu, gdy puste miejsce jest na krawędzi / rogu)