Napisz program, który sam tworzy lustrzane odbicie. Przykładem może być fantastyczny kod wielbłąda, który odczytuje swój własny kod i tworzy dwie mniejsze wersje 2x2. Biorąc pod uwagę wkład:
$_='ev
al("seek\040D
ATA,0, 0;");foreach(1..3)
{<DATA>;}my @camel1hump;my$camel;
my$Camel ;while( <DATA>){$_=sprintf("%-6
9s",$_);my@dromedary 1=split(//);if(defined($
_=<DATA>)){@camel1hum p=split(//);}while(@dromeda
ry1){my$camel1hump=0 ;my$CAMEL=3;if(defined($_=shif
t(@dromedary1 ))&&/\S/){$camel1hump+=1<<$CAMEL;}
$CAMEL--;if(d efined($_=shift(@dromedary1))&&/\S/){
$camel1hump+=1 <<$CAMEL;}$CAMEL--;if(defined($_=shift(
@camel1hump))&&/\S/){$camel1hump+=1<<$CAMEL;}$CAMEL--;if(
defined($_=shift(@camel1hump))&&/\S/){$camel1hump+=1<<$CAME
L;;}$camel.=(split(//,"\040..m`{/J\047\134}L^7FX"))[$camel1h
ump];}$camel.="\n";}@camel1hump=split(/\n/,$camel);foreach(@
camel1hump){chomp;$Camel=$_;y/LJF7\173\175`\047/\061\062\063\
064\065\066\067\070/;y/12345678/JL7F\175\173\047`/;$_=reverse;
print"$_\040$Camel\n";}foreach(@camel1hump){chomp;$Camel=$_;y
/LJF7\173\175`\047/12345678/;y/12345678/JL7F\175\173\0 47`/;
$_=reverse;print"\040$_$Camel\n";}';;s/\s*//g;;eval; eval
("seek\040DATA,0,0;");undef$/;$_=<DATA>;s/\s*//g;( );;s
;^.*_;;;map{eval"print\"$_\"";}/.{4}/g; __DATA__ \124
\1 50\145\040\165\163\145\040\157\1 46\040\1 41\0
40\143\141 \155\145\1 54\040\1 51\155\ 141
\147\145\0 40\151\156 \040\141 \163\16 3\
157\143\ 151\141\16 4\151\1 57\156
\040\167 \151\164\1 50\040\ 120\1
45\162\ 154\040\15 1\163\ 040\14
1\040\1 64\162\1 41\144 \145\
155\14 1\162\ 153\04 0\157
\146\ 040\11 7\047\ 122\1
45\15 1\154\1 54\171 \040
\046\ 012\101\16 3\16
3\15 7\143\15 1\14
1\16 4\145\163 \054
\040 \111\156\14 3\056
\040\ 125\163\145\14 4\040\
167\1 51\164\1 50\0 40\160\
145\162 \155\151
\163\163 \151\1
57\156\056
produkuje:
JXXXXXXXXL. JXXLm. .mJXXL .JXXXXXXXXL
{XXXXXXXXXXX. JXXXmXXXXm mXXXXmXXXL .XXXXXXXXXXX}
.XXXXXXXXXXXXXL. {XXXXXXXXXF 7XXXXXXXXX} .JXXXXXXXXXXXXX.
JXXXXXXXXXXXXXXXXL.`XXXXXX. .XXXXXX'.JXXXXXXXXXXXXXXXXL
JXXXXXXXXXXXXXXXXXXXmXXXXXXX. .XXXXXXXmXXXXXXXXXXXXXXXXXXXL
.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX} {XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXF 7XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XX'7XXXXXXXXXXXXXXXXXXXXXXXXXF 7XXXXXXXXXXXXXXXXXXXXXXXXXF`XX
XX {XXXFXXXXXXXXXXXXXXXXXXXF' `7XXXXXXXXXXXXXXXXXXX7XXX} XX
`X}{XXX'7XXXFXXXXX^XXXXX `' `' XXXXX^XXXXX7XXXF`XXX}{X'
`'XXX' {XXX'XXXXX 7XXXF 7XXXF XXXXX`XXX} `XXX`'
.XX} {XXF {XXXX}`XXX} {XXX'{XXXX} 7XX} {XX.
{XX `XXL `7XX} 7XX} {XXF {XXF' JXX' XX}
`XX `XXL mXXF {XX XX} 7XXm JXX' XX'
XX 7XXXF `XX XX' 7XXXF XX
XX. JXXXX. 7X. .XF .XXXXL .XX
{XXL 7XF7XXX. {XX XX} .XXXF7XF JXX}
`XXX' `XXXm mXXX' `XXX'
^^^^^ ^^^^^
.mJXXL .JXXXXXXXXL JXXXXXXXXL. JXXLm.
mXXXXmXXXL .XXXXXXXXXXX} {XXXXXXXXXXX. JXXXmXXXXm
7XXXXXXXXX} .JXXXXXXXXXXXXX. .XXXXXXXXXXXXXL. {XXXXXXXXXF
.XXXXXX'.JXXXXXXXXXXXXXXXXL JXXXXXXXXXXXXXXXXL.`XXXXXX.
.XXXXXXXmXXXXXXXXXXXXXXXXXXXL JXXXXXXXXXXXXXXXXXXXmXXXXXXX.
{XXXXXXXXXXXXXXXXXXXXXXXXXXXXX. .XXXXXXXXXXXXXXXXXXXXXXXXXXXXX}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXF
7XXXXXXXXXXXXXXXXXXXXXXXXXF`XX XX'7XXXXXXXXXXXXXXXXXXXXXXXXXF
`7XXXXXXXXXXXXXXXXXXX7XXX} XX XX {XXXFXXXXXXXXXXXXXXXXXXXF'
`' XXXXX^XXXXX7XXXF`XXX}{X' `X}{XXX'7XXXFXXXXX^XXXXX `'
7XXXF XXXXX`XXX} `XXX`' `'XXX' {XXX'XXXXX 7XXXF
{XXX'{XXXX} 7XX} {XX. .XX} {XXF {XXXX}`XXX}
{XXF {XXF' JXX' XX} {XX `XXL `7XX} 7XX}
XX} 7XXm JXX' XX' `XX `XXL mXXF {XX
XX' 7XXXF XX XX 7XXXF `XX
.XF .XXXXL .XX XX. JXXXX. 7X.
XX} .XXXF7XF JXX} {XXL 7XF7XXX. {XX
mXXX' `XXX' `XXX' `XXXm
^^^^^ ^^^^^
The use of a camel image in association with Perl is a trademark of O'Reilly &
Associates, Inc. Used with permission.
(Tekst chroniony prawem autorskim jest opcjonalny).
Prostszy przykład przyjąłby dane wejściowe:
#######
#
#
######
#
# #
#####
i produkować:
##### #####
# # # #
# #
###### ######
# #
# #
####### #######
####### #######
# #
# #
###### ######
# #
# # # #
##### #####
Zgłoszenia powinny zawierać art.
To konkurs popularności, więc wygrywa zgłoszenie z maksymalną liczbą głosów (w górę)!
popularity-contest
diabelnie
źródło
źródło
Odpowiedzi:
Bash i wspólne narzędzia
Może być konieczne zainstalowanie
rev
Nie zadowalało mnie jedynie odzwierciedlanie pozycji postaci, to naprawdę popsuło ascii-art. Próbowałem więc również odzwierciedlić znaki, modulo zestaw znaków ascii.
Bez argumentów skrypt drukuje się w sposób odzwierciedlony 2x2, zgodnie z żądaniem:
W pliku wejściowym możesz także podać:
Jeśli wejściowa nazwa pliku to
-
, skrypt odczyta dane wejściowe ze standardowego wejścia:źródło
echo +1 | ./2x2.sh -
oom
do góry nogamiwoo
bash
trochę, aby tocat
ma złą nazwę IMO i bezwstydnie użyję go tam, gdzie uważam to za stosowne ;-)Rubin
Ten zdecydowanie zajął mi trochę czasu. Ale było naprawdę fajnie!
Wynik:
Opiera się na tym samym pomyśle, co moja poprzednia odpowiedź .
źródło
Rubin
AKTUALIZACJA : Sprawdź moją nową odpowiedź , opartą na tym samym pomyśle, co ten!
Wynik:
To jest „PPCG!” w sztuce ASCII! :RE
Oto szczegółowe wyjaśnienie. Najpierw dowiedziałem się, jak wykonać rzeczywiste tworzenie kopii lustrzanych. Oto kod dublowania:
Następnie musiałem usunąć białe znaki i podwójne cudzysłowy (ponieważ ucieczka jest po prostu bałagan), więc użyłem Ruby
Fixnum#chr
.Podstawowa struktura programu to teraz:
Teraz mogę przejść do sztuki ASCII! Tak właśnie zrobiłem. Następnie uzupełniałem grafikę ASCII spacjami i
|
s na końcu i dotarłem tutaj:Wyglądało to jednak trochę brzydko, ponieważ wokół sztuki ASCII nie było wystarczająco dużo wypełnienia. Dlatego dodałem trochę dodatkowej wyściółki i dotarłem tam, gdzie teraz jestem! (
$, | x
Odpowiadax
ponieważ$,
jestnil
domyślnie).źródło
eval
:)uderzenie (+
sed
+tee
+tac
) -> 102Próbka użytkowa
Próbka szczegółowa:
Może to spowodować:
lub sformatowany do stałej szerokości linii:
dać:
i używając
figlet
:I dla zabawy:
On, on ... To nie mogło działać, ponieważ pół-znaków nie można po prostu odwrócić.
W tym celu musimy uruchomić polecenie w odwrotnej kolejności:
źródło
C ++
wynik
To wyjście wygląda jak „Windows 4X4”.
źródło