Dalam tantangan ini, Anda akan diberi blok teks, dan Anda perlu melakukan refleksi pada teks.
Memasukkan:
- String yang akan direfleksikan. Teks mungkin tidak disediakan sebagai array yang elemen-elemennya adalah garis-garis teks. Misalnya,
"ab\ncd"
dan['a','b','\n','c','d']
diperbolehkan, namun['ab','cd']
atau[['a','b'],['c','d']]
tidak. Anda dapat mengasumsikan bahwa semua garis memiliki jumlah karakter yang sama (diisi dengan spasi putih jika diperlukan). - Boolean di mana
True
menunjukkan refleksi Y danFalse
menunjukkan refleksi X
Dua input dapat dikirimkan dalam urutan apa pun.
Keluaran:
String yang dipantulkan. Karakter tidak berubah, hanya posisinya. Blok gambar yang dihasilkan harus disejajarkan ke kiri atas (baris dan kolom pertama masing-masing harus mengandung karakter non-spasi). Trailing whitespace (pada sembarang garis) diizinkan.
Kasus uji:
False
o /
--|/
|
/ \
/ o
/|--
|
\ /
True
o /
--|/
|
/ \
/ \
|
--|/
o /
True
text
text
False
text
txet
True
P
P
C
G
G
C
P
P
False
P
P
C
G
P
P
C
G
True
abcde
fghij
kl mn
opqrs
tuvwx
tuvwx
opqrs
kl mn
fghij
abcde
Ini adalah kode-golf , jadi jawablah dengan jawaban terpendek dalam bahasa favorit Anda!
1
Dan0
) atau kita harus menggunakanTrue
danFalse
?\n
saya akan mengatakan bahwa itu bukan representasi string.Jawaban:
C #,
168144141120 BytesVersi baru menggunakan string yang jelas. Bergabung berlebihan yang mengambil IEnumerable, solusi pertama adalah menggunakannya secara tidak sengaja saya hanya bisa menggunakannya untuk sisi lain dari ternary juga.
Memperbarui:
Versi baru adalah lambda anonim dan menggunakan currying untuk menyimpan total 21 byte. Ini mengubah penggunaan menjadi di
f("text")(false)
mana f adalah fungsi anonim.Tidak Disatukan:
sumber
Pyke, 7 byte
Coba di sini!
sumber
Brainfuck,
143140131 byteKocok
sC #.Tantangannya cukup mudah bagi Brainfuck, dan saya tampaknya cukup lelah untuk melakukannya.
Mengambil boolean sebagai
0x00
byte (falsy) atau byte (kebenaran) lainnya di awal input, kemudian string yang berlapis persegi panjang.Menghasilkan baris tambahan untuk Y flip, dan tidak ada untuk X flip.
Membutuhkan juru bahasa yang mendukung lokasi memori di sebelah kiri awal (tidak yakin jika masih diperlukan) dan memberikan EOF sebagai
0x00
. Salah satu penerjemah semacam itu ada di sini . Jelas tidak mendukung byte nol di input karena itu.Kode ini memiliki banyak blok dengan 10
+
's atau-
' s; itu mungkin bisa dikurangi.Versi yang dikomentari
sumber
Kode mesin x86 32-bit, 76 byte
Dalam hex:
Input::
EBX
bendera arah (0/1),:ESI
string input,:EDI
buffer output. Input harus berbentuk persegi panjang.sumber
Haskell,
514945 byteContoh penggunaan:
Membagi menjadi beberapa baris, baik membalikkan garis (Benar) atau membalikkan setiap baris (Salah) dan bergabung menjadi satu string lagi. Dalam hal
True
input,map r:[r|b]
adalah daftar dua fungsi[<reverse each line>, <reverse lines>]
dan untukFalse
input daftar dengan satu fungsi[<reverse each line>]
.last
pilih elemen terakhir dari daftar ini.sumber
Jelly , 8 byte
Coba di sini.
sumber
Python, 56 byte
Panggil dengan string
s
dan nilai truey / falseyr
.sumber
True
, yang juga bisa1
. Anda tidak dapat membatasi input hanya0
atau2
.Python 3.5, 61 byte:
Fungsi lambda anonim sederhana yang mengasumsikan input persegi panjang. Sebut dengan terlebih dahulu memberi nama fungsi, dan kemudian memanggilnya terbungkus di dalamnya
print()
. Dengan kata lain, jika fungsi bernamaH
, sebut saja sepertiprint(H(<Bool value>, <String>))
, di mana<Bool Value>
adalah setiap nilai benar atau salah (yaitu0/1
,true/false
, dll) dan<String>
merupakan input string.Lihat dalam Aksi! (repl.it)
Berikut adalah versi lain dengan panjang yang sama yang juga mengasumsikan input persegi panjang, tetapi kali ini sebuah fungsi bernama , yaitu Anda tidak harus menyebutkannya terlebih dahulu atau membungkusnya di dalam
print()
:Sebut saja seperti ini
J(<Bool Value>,<String>)
.Lihat ini dalam Aksi! (repl.it)
Namun, saya bukan orang yang berhenti di situ. Meskipun kami diizinkan untuk menerima input persegi panjang, saya juga membuat versi yang tidak berasumsi tipe input itu. Oleh karena itu, itu akan spasi-pad semua garis dengan panjang yang sama berdasarkan pada garis dengan panjang maksimum jika dan hanya jika
<Bool>
inputFalse
, karena hanya refleksi-X akan menghasilkan string yang "terbalik". Sekarang, tanpa basa-basi lagi, berikut adalah versi asumsi non-persegi panjang dengan panjang134129 byte dalam bentuk fungsi normal:Lihat Aksi Terakhir Ini! (repl.it)
sumber
MATL , 11 byte
Cobalah online!
The masukan pertama adalah string multiline. Karena MATL tidak dikenali
\n
sebagai linefeed, string multiline harus didefinisikan sebagai gabungan dari substring, atau karakter individu, dan10
(ASCII untuk umpan baris, yang ditafsirkan sebagai karakter). Penggabungan dalam MATL adalah[... ...]
atau[..., ...]
(koma opsional). Jadi misalnya, input dapat berupa sebagai berikut (rangkaian string, linefeed, dan string lain):atau setara (gabungan karakter individu)
atau (sama dengan koma)
The input kedua dapat dimasukkan sebagai
1
/0
atau ekuivalen sebagaiT
/F
untuktrue
/false
masing-masing.Penjelasan
sumber
Brachylog ,
262416 byteMengharapkan daftar yang berisi string dan boolean
1
atau0
, misalnyaPenjelasan
sumber
Pyth, 10 byte
Suite uji.
sumber
Bash + utilitas linux umum, 16
Nilai Boolean (nol atau non-nol) dilewatkan sebagai parameter baris perintah. I / O dari blok teks melalui STDIN / STDOUT. Asumsikan bahwa semua baris memiliki panjang yang sama, seperti yang ditunjukkan dalam komentar .
sumber
C (Ansi), 193 Bytes
Golf:
Tidak Disatukan:
Pemakaian:
Argumen Kompilasi:
Input Contoh:
Input adalah t atau tidak untuk true of false diikuti oleh lead koran dan string tertinggal.
Contoh Output:
sumber
JavaScript (ES 6) 83 byte
sumber
f(c,0)
ketika saya mencoba - mungkin Andac
tidak memiliki semua ruang di tempat yang tepat.Julia, 59 byte
Cobalah online!
sumber
J, 29 byte
Input LHS adalah boolean di mana 0 salah dan 1 benar. RHS adalah input string.
sumber
JavaScript (ES6), 76
sumber
Java 99 byte
Golf:
sumber
Perl, 35 byte
34 byte kode +1 untuk
-n
.Membutuhkan garis input diisi dengan spasi. 13 (!) Byte disimpan berkat @ Dada .
Pemakaian
sumber
perl -ne 'print/T/?reverse<>:map~~reverse,<>'
harus menghemat 13 byte :-)Mathematica, 70 byte
Fungsi anonim, mengambil nilai boolean sebagai argumen pertama (secara eksplisit
True
atauFalse
dalam Mathematica) dan string (multiline) sebagai argumen kedua. Mengimpor string sebagai daftar string yang sesuai dengan garis-garis string multiline (string TIDAK diteruskan ke fungsi sebagai array). JikaTrue
, balik daftar. JikaFalse
StringReverse
daftar, yang secara otomatis diterapkan ke setiap elemen secara bergantian. Kemudian ekspor daftar sebagai string, di mana setiap elemen adalah baris baru.sumber
05AB1E , 10 byte
Penjelasan
Cobalah online!
sumber
Vim, 33 byte
Mengubah jawaban V sebelumnya ke Vim. Setiap jawaban V akan sangat berbeda, jadi itu tidak terlalu adil.
Cobalah online!
Hexdump
sumber