Wkład:
1
X
X
X
X XX XXXXXX X X X
X XX XXXXXX X X X
XXX X XX XXXXXX X X X
XXX X XX XXXXXX X X X
Wydajność:
X.
X..
X...
X.... XX. XXXXXX. X.X.X.
X..... XX.. XXXXXX.. X.X.X..
XXX. X......XX... XXXXXX... X.X.X...
XXX.. X......XX....XXXXXX.... X.X.X....
Wkład:
2
XX
XX
XX
XX
XX
XX XX
XX XX
XX XX
XX XX
Wydajność:
.XX
..XX
...XX
....XX
.....XX
..XX..XX
...XX..XX
....XX..XX
.....XX..XX
Specyfikacja:
- Musisz wziąć jako dane wejściowe
- Flaga wskazująca, czy światło pochodzi z lewego górnego rogu, czy z prawego górnego rogu. Może to być
1
lub2
,-1
lub1
,0
lub65536
cokolwiek dogodnego dla ciebie, o ile obie flagi są liczbami całkowitymi. - Wiersze złożone z jednego
X
lubwszystkich znaków o tej samej długości (tj. Wypełnione
)
- Wszystkie
X
s będą albo w ostatnim rzędzie, albo będąX
pod nimi (co oznacza brak pływających budynków)
- Wszystkie
- Flaga wskazująca, czy światło pochodzi z lewego górnego rogu, czy z prawego górnego rogu. Może to być
- Musisz wyprowadzić rzędy (budynki) z dodanymi cieniami. Odbywa się to za pomocą następującej procedury:
- Jeśli światło pochodzi z lewego górnego rogu, narysuj prawy trójkąt o
.
tej samej wysokości i szerokości co wysokość budynku, zaczynając od jednego miejsca za jego prawą krawędzią i idąc w prawo. - W przeciwnym razie, jeśli jest od prawego górnego rogu, zrób to samo, ale zacznij od jednego miejsca za lewą krawędzią i skierowane w lewo.
- Pamiętaj, nie zmieniaj
X
s, zmieniając je na.
s; zostaw je takimi, jakie są. - Zawsze będzie „miejsce” na twoje cienie, tj. Jeśli na końcu jest wysoki budynek o 3 przestrzeniach, będą za nim co najmniej 3 pola wypełnienia.
- Jeśli światło pochodzi z lewego górnego rogu, narysuj prawy trójkąt o
- To jest code-golf , więc wygra najkrótszy kod w bajtach!
{}
i{-1*}
jako wartości flag?potato
iwhile(1){}
. Jak wspomniano w pytaniu: „cokolwiek jest wygodne”.Regex.Replace
których nie mogę obejść ... mam dwa problemy teraz?Odpowiedzi:
GolfScript, 67 znaków
1 / -1 dla cieni idących w prawo / w lewo. Uruchom przykład online :
źródło
Perl - 85
EDYCJA: Zupełnie zapomniałem o
-p
fladze, którą trzeba uruchomić. Dodano 2 do liczby znaków.Flaga określona w pierwszym wierszu dotyczy
0
cieni w lewo i2
cieni w prawo.źródło
Python 3 - 233
Cóż, okazało się to dłużej niż oczekiwano ...
1 dla cieni w prawo, -1 dla cieni w lewo.
EDYCJA: Nie widziałem dopełnienia po obu stronach w regułach. Ehehe. ^^ ”
źródło
JavaScript - 14
Flaga w pierwszym wierszu dotyczy
for(p='';l=prompt();)console.log(p=l.replace(/ /g,function(a,b){return p[b+1]=='.'||p[b]=='.'||l[b+1]=='X'?'.':a}));
cieni skierowanych w lewo lubfor(p='';l=prompt();)console.log(p=l.replace(/ /g,function(a,b){return p[b-1]=='.'||p[b]=='.'||l[b-1]=='X'?'.':a}));
cieni w prawo.Może to naruszać zasadę „wszystko, co jest dla ciebie wygodne” dla flagi: P
Edycja: bez nadużyć (127):
Flagą tego jest
1
lub-1
źródło
potato
...”, chyba żepotato
jest liczbą całkowitą. :-Pc=+prompt()
w przeciwnym razieb+c
połączy się jako ciąg.for(c=p=+(P=prompt)(d='.');l=P();)console.log(p=l.replace(/ /g,function(a,b){return p[b]==d|p[b+=c]==d|l[b]=='X'?d:a}))
(demo)c
na liczbę, odejmując zamiast tego.b-c
lubb-=c
w moim kodzie powyżej. (demo)Python 2.7 - 229
Wersja bez golfa
źródło