Wkrótce są urodziny mojego przyjaciela, a ponieważ jest programistą i miłośnikiem sztuki ASCII, pomyślałem, że zrobię mu ciasto ASCII!
Niestety, ciągle zapominam o jego obecnym wieku, dlatego chciałbym mieć program dla mojego piekarnika ASCII, który piecze ciasto z określoną liczbą świec, więc nie muszę tego robić sam, jeśli się mylę wiek.
Piece ASCII mają tylko ograniczoną pamięć i pojemność, więc powinny wykorzystywać jak najmniej bajtów .
Twoje zadanie:
Napisz program, który wysyła na konsolę tort urodzinowy z tyloma świecami, ile określa wejście.
Wymagania dotyczące ciasta to:
- Musi mieć granicę zbudowaną z poziomych
-i pionowych|linii oraz wierzchołków+. - Co najmniej 5 znaków (w tym obramowanie ciasta
|) - Co najmniej 5 znaków (w tym obramowanie ciasta
-) - Po
każdej stronie musi znajdować się biała spacja między ramką ciasta a pierwszą podstawą świecy (nie płomieniem), chyba że w tej przestrzeni znajduje się płomień. Płomień lub podstawa świecy nie powinny nakładać się na brzegi ciasta. - Maksymalna szerokość ciasta wynosi 9 znaków, więc w rzędzie jest maksymalnie 5 świec.
- Ponieważ nie chcemy, aby nasze ciasto było dwuwymiarowe, musi mieć dodatkowe 2 rzędy wysokości, aby nadać mu trochę objętości. Dodaj kolejną ramkę na dole i połącz wierzchołki z tymi nad nimi, ponownie używając znaków ASCII z góry (
-,|i+).
Wymagania dotyczące świec:
- Składa się z podstawy
|i płomienia*, z płomieniem ułożonym na górze podstawy. - Świece nie mogą bezpośrednio przylegać do siebie, z wyjątkiem ukośnych.
- Świece umieszcza się od lewej do prawej, a następnie od góry do dołu, maksymalnie 5 w jednej linii.
(Uwaga: Gdyby w poprzednim rzędzie było 5 świec, następny rząd nie mógłby mieć również 5 świec, ponieważ odtąd byłyby przyległe).
Dodatkowe uwagi:
- Szerokość ciasta zależy od liczby świec w pierwszym rzędzie, ale musi mieć co najmniej 5 znaków i maksymalnie 9 znaków szerokości.
- Świece są napełniane, zaczynając od najwyższego rzędu, od lewej do prawej. Raz jeden wiersz, jeśli jest pełny, następny powinien zacząć się w rzędzie poniżej pierwszego.
Wejście:
Możesz zaakceptować dowolną liczbę w (rozsądnym) formacie.
W przypadku tego wyzwania możesz założyć, że liczba zawiera się w przedziale od 0 do 2 31 (bez 0), nawet jeśli nie potwierdzam, że ktoś jest tak stary.
Wynik:
Możesz albo zwrócić ciąg, albo bezpośrednio zapisać wynikowy tort w konsoli wyjściowej.
Zasady:
- Standardowe luki są zabronione.
- To jest golf golfowy , więc wygrywa najkrótszy kod w bajtach, w dowolnym języku.
Przykłady:
Wejście: 8
+-----------+
| * * * * * |
| |*|*|*| | |
| | | | |
| |
+-----------+
| |
+-----------+
Wejście: 2
+-----+
| * * |
| | | |
| |
+-----+
| |
+-----+
Wejście: 12
+-----------+
| * * * * * |
| |*|*|*|*| |
| *|*|*| | |
| | | | |
| |
+-----------+
| |
+-----------+
Powodzenia!