Tantangan
Diberi bentuk seni ASCII, Anda harus mencari tahu apakah bentuknya segi enam biasa atau tidak.
Segi enam
Hexagon reguler didefinisikan menggunakan dua aturan:
- Ia memiliki enam sisi
- Setiap sisi memiliki jumlah karakter yang sama
Misalnya, bentuk berikut ini teratur tetapi tidak memiliki enam sisi sehingga bukan segi enam biasa :
B a a h
s a i d
y o u r
g a o t
Demikian pula, bentuk berikut memiliki enam sisi tetapi memiliki sisi dengan panjang yang berbeda dan karenanya bukan segi enam biasa :
* *
* * *
* * * *
* * *
* *
Namun, bentuk berikut memiliki enam sisi dan semua sisi memiliki jumlah karakter yang sama, jadi itu adalah segi enam biasa:
T h e
h e x a
g o n s a
r e c o
m i n
Aturan
Output harus berupa nilai true atau falsey (benar jika bentuknya segi enam biasa, falsey jika tidak).
Bentuk hanya akan berisi karakter ASCII yang dapat dicetak.
Batas bentuk tidak akan pernah mengandung spasi. Jika ya, Anda dapat mengembalikan falsey.
Mungkin ada jumlah spasi kosong sebelum dan / atau setelah bentuk.
Semua sudut dalam bentuk mungkin tidak sama misalnya, bentuk berikut adalah input yang valid:
. . .
. . .
. . . . .
. . . .
. . .
Ini akan mengembalikan nilai falsey.
Semua input bentuk akan berada di kisi yang dipisahkan ruang. Input heksagonal akan berada pada grid yang terhuyung-huyung (setiap baris diimbangi dari yang berikutnya).
Contohnya
Sejujurnya
Bentuk berikut harus mengembalikan nilai kebenaran:
# _
+ + +
9 :
5 6 7
8 9 0 1
2 3 4 5 6
7 8 9 0
1 2 3
t h i s
i s
a h
e x
a g
o n
! ! ! !
5 6 7
8 9 0 1
2 3 4 5 6
7 8 9 0
1 2 3
Falsey
Yang berikut harus mengembalikan nilai falsey
r e c t a
n g l e s
h e l l o
w o r l d s
t h i s i s b
e t a d e c
a y n o w
*
* *
* * *
.....
.......
.........
.......
.....
Bentuk ini bukan pada grid yang dipisahkan ruang dan tidak terhuyung.
* * * *
---------
* * * * * *
-------------
* * * * * *
---------
* * * *
5 6 7
8 9 0 1
2 3 4 5 6
7 8 9 0
1 2 3
Untuk input karakter tunggal, program Anda dapat menampilkan benar atau salah:
&
Kemenangan
Program terpendek dalam byte menang.
sumber
5 6 7\n8 9 0 1\n2 3 4 5 6\n7 8 9 0\n1 2 3
dan satu dengan spasi tambahan di salah satu baris:ss5 6 7\nss8 9 0 1\n2 3 4 5 6\ns7 8 9 0\nss1 2 3
(spasi terdepan diganti dengans
untuk membuatnya sedikit lebih jelas dalam bentuk yang tidak diformat ini) . Semua 10 kasus pengujian Anda divalidasi dengan benar dengan kode saya saat ini, tetapi dua kasus ini akan gagal dengan pendekatan yang saya gunakan.Jawaban:
R, 184 byte
Golf, mungkin bisa golf dengan beberapa byte
Tidak serigala, sangat berantakan, lebih seperti setengah jalan golf
Karena format input tidak ditentukan, Input harus ditentukan dalam format array R, terlihat seperti ini.
Berikut adalah fungsi generator yang menghasilkan input. Generator tidak menghasilkan objek yang dimasukkan ke dalam fungsi pemeriksaan segi enam, melainkan kode yang menentukan array (efektif hal yang sama). Jadi ini seharusnya tidak dihitung sebagai penguraian teks. Ingat bahwa saya tidak memasukkan teks, melainkan struktur array.
Misalnya, kode yang dihasilkan adalah:
structure(c(" ", " ", "2", " ", " ", " ", "8", " ", "7", " ", "5", " ", "3", " ", "1", " ", "9", " ", "8", " ", "6", " ", "4", " ", "2", " ", "0", " ", "9", " ", "7", " ", "5", " ", "3", " ", "1", " ", "0", " ", " ", " ", "6", " ", " "), .Dim = c(5L, 9L ))
yang identik denganarray(c(" ", " ", "2", " ", " ", " ", "8", " ", "7", " ", "5", " ", "3", " ", "1", " ", "9", " ", "8", " ", "6", " ", "4", " ", "2", " ", "0", " ", "9", " ", "7", " ", "5", " ", "3", " ", "1", " ", "0", " ", " ", " ", "6", " ", " "), dim = c(5, 9))
Semoga metode input ini sesuai dengan aturan.
Berikut ini adalah contoh-contoh tesnya
Hasilkan array input
Tes untuk segi enam
sumber
f(array(c(" ", " ", "2", " ", " ", " ", "8", " ", "7", " ", "5", " ", "3", " ", "1", " ", "9", " ", "8", " ", "6", " ", "4", " ", "2", " ", "0", " ", "9", " ", "7", " ", "5", " ", "3", " ", "1", " ", "0", " ", " ", " ", "6", " ", " "), dim = c(5, 9)))
JavaScript (ES6), 214 byte
Dimana
\n
mewakili karakter baris baru literal. Tidak Disatukan:sumber
" x\n g g\ng g g\n g g"
harus memberi false, tetapi memberi true.x
?SnakeEx , 200 byte
Bahasa yang tepat untuk pekerjaan itu ... semacam.
SnakeEx adalah bahasa dari tantangan Pencocokan Pola 2-D . Seharusnya sangat bagus dalam tugas ini, tapi sayangnya semua kasus sudut benar-benar membengkak kode. Saya juga menemukan beberapa bug juru bahasa. Namun, itu adalah tantangan yang menyenangkan.
m
adalah ular utama yang memanggil semua yang lain untuk melakukan pekerjaan yang sebenarnya. Ini cocok mulai di sudut kanan atas segi enam dan berjalan searah jarum jam. Kelompok bernomor digunakan untuk memverifikasi bahwa panjang sisi diagonal semuanya sama dan panjang sisi horizontal cocok dengan tinggi keseluruhan gambar. Saya bisa menulis penjelasan yang lebih rinci, tetapi saya telah menghabiskan dua hari terakhir berurusan dengan kasus sudut, jadi coba saja sendiri di sini . : ^)sumber
Perl,
127125124121 byteTermasuk +4 untuk
-0p
Berikan masukan pada STDIN
sumber