X menandai titiknya
Tujuan Anda adalah menambahkan tanda silang di sekitar ibukota X:
Contoh Input / Output
Memasukkan:
mdhyyyyyyyhhhddmmm
mdyyssoo oooosyyyhhhdmm
hsso oossoooooyyhhdhhdmmm
yoooooo oo ssysssyhhdyyyhmmmm
myso oso o oyo hhhdhhyhyhhm mm m
mhsyhhys oss yyyhhhsosyhhmmmmdmmm
mhyhhhy y ssyhoho o shhdmmmmdmmmm
hhyyyh s oo syysyyhhdysso oyhdhhhmmmmm
dhysyys sdysoXoyyyyhhso syshm mmm
hhyhyo o osss y shhyyhd mmmmmm
yyhyyyss o oyyyydmmdmmmmmmmmm mm
ysyhyhhho s osy sdm m mddmmddhydmmm
h oshhhyyyddhoo ooyysshdmdohdmmdmddsshmmm
y oyhhhdhhsyhsssshdddsss hdddyyyhddm
dyyshyyhssyyhyyyyddhhmmdmmmdy syssoosyhdm
hsyyhhhhsoo sooyyhhdoohdhhyhyysoo osdm
doyhhhyyyyhhhysyyy oossyyssso osydm
soyhyyhhhhhhyhyyyooos ohdddm
msoyyyyyyyhyyyyo ooo syyd
ho oyyysooo osso osyd
dhyyysssyyyyyysoosdm
mmdddddmmm
Keluaran:
mdhyyyyyyyhhhddmmm
mdyyssoo oooosyyyhhhdmm
hsso oossoooooyyhhdhhdmmm
yoooooo oo ssysssyhhdyyyhmmmm
myso oso o oyo hhhdhhyhyhhm mm m
mhsyhhys oss | yyyhhhsosyhhmmmmdmmm
mhyhhhy y |ssyhoho o shhdmmmmdmmmm
hhyyyh s oo s|ysyyhhdysso oyhdhhhmmmmm
dhysyys -----X-----hhso syshm mmm
hhyhyo o | osss y shhyyhd mmmmmm
yyhyyyss |o oyyyydmmdmmmmmmmmm mm
ysyhyhhho s |sy sdm m mddmmddhydmmm
h oshhhyyyddhoo ooyysshdmdohdmmdmddsshmmm
y oyhhhdhhsyhsssshdddsss hdddyyyhddm
dyyshyyhssyyhyyyyddhhmmdmmmdy syssoosyhdm
hsyyhhhhsoo sooyyhhdoohdhhyhyysoo osdm
doyhhhyyyyhhhysyyy oossyyssso osydm
soyhyyhhhhhhyhyyyooos ohdddm
msoyyyyyyyhyyyyo ooo syyd
ho oyyysooo osso osyd
dhyyysssyyyyyysoosdm
mmdddddmmm
Memasukkan:
000000000000
000000000000
0000X0000000
0000000X0000
000000000000
000000000000
000000000000
000000000000
000000000000
000000000000
000000000000
000000000000
Keluaran:
|
0000|00|0000
0000|00|0000
-----X--+--00
00--+--X-----
0000|00|0000
0000|00|0000
0000000|0000
000000000000
000000000000
000000000000
000000000000
000000000000
Memasukkan:
00000000000000000
00000000000000000
00000000000000000
00000X000X0000000
00000000000000000
00000000000000000
00000000000000000
00000000000000000
00000000000000000
00000000000000000
00000000000000000
00000000000000000
Keluaran:
00000|000|0000000
00000|000|0000000
00000|000|0000000
----+#+++#+----00
00000|000|0000000
00000|000|0000000
00000|000|0000000
00000000000000000
00000000000000000
00000000000000000
00000000000000000
00000000000000000
Crosshair
Rambut lintas Anda harus 3-tinggi dan 5-lebar:
|
|
|
-----X-----
|
|
|
Memasukkan
Input berukuran paling tidak 12x12 karakter dan hanya terdiri dari karakter ASCII. Ini dapat diambil melalui argumen fungsi atau STDIN. Input tidak akan selalu berisi X. Input akan dalam bentuk apa pun dan memiliki jumlah spasi kosong yang sewenang-wenang. Input tidak akan mengandung dari: +
, -
, #
, dan|
Keluaran
Output dapat melalui STDOUT atau nilai pengembalian fungsi. Output harus berupa gambar input dengan garis rambut ditarik. Jika tidak ada cukup ruang untuk menggambar crosshair, Anda harus menambahkan garis / spasi untuk menggambarnya. Tempat yang tumpang tindih harus diganti dengan a +
. Jika garis bidik |
atau -
garis lintang tumpang tindih X
, bukannya a +
, #
harus muncul.
Trailing whitespace tidak diperbolehkan kecuali untuk satu baris baru di bagian paling akhir.
Ini adalah kode-golf sehingga kode terpendek dalam byte menang!
+
untuk tumpang tindih-
dan|
hanya berlaku ketika karakter tersebut merupakan bagian dari bidik silang, atau apakah itu mempengaruhi literal-
dan|
ditemukan dalam input juga?#
dalam input ditemui oleh crosshair? Apakah akan ditimpa?Jawaban:
CoffeeScript,
345336327 byteX
adalah fungsi untuk memanggil.Dijelaskan:
Dapat dieksekusi:
Tampilkan cuplikan kode
sumber
Python 3,
577519515490475467454 byteSaya tidak yakin seberapa jauh saya bisa bermain golf ini.
Pemakaian:
Di mana
g
kisi masukan dand
karakter tanda-silang.sumber
Perl, 370 byte
Penggunaan, simpan di atas sebagai
xmarks.pl
:perl xmarks.pl <<< 'X'
Saya tidak yakin seberapa kecil saya bisa membuat ini, tapi saya yakin saya akan kembali lagi nanti! Saya mungkin memposting penjelasan jika ada yang tertarik juga.
Menangani input
X
dan input non-kuadrat juga sekarang.sumber
Python 2,
755 706 699 694 678626 BytesDiharapkan input pada stdin, dengan baris baru tambahan. Akhir input dipicu dengan
cmd+d
.Program lengkap:
Saya yakin bahwa lebih banyak bermain golf dapat dilakukan dalam hal ini (karena saya masih belajar python), jadi bantuan apa pun sangat dihargai.
Suntingan
findX
dengan menggunakan untuk pemahamanrange
alih-alih array literalfindX
ke lambdaxs
dengan 4 dan menghilangkantry-except
blokh=i=j=k=l=0
bukanh,j,k,l=0,0,0,0
chooseChar
sumber
R=range
untuk mempersingkat rentang. Kemudian Anda juga dapat mengubahfor i in[5,4,3,2,1,-1,-2,-3,-4,-5]:
kefor i in R(5,0,-1)+R(-1,-6,-1):
q
lambda Anda tampaknya sangat tidak efisien bagi saya. Bisakah itu dipersingkat sama sekali? Paling tidak, saya tidak berpikir tanda kurung diperlukan, tapi saya pikir logika boolean dan perbandingan string dapat dipersingkat juga.