Sementara kami menggunakan tendangan grid segitiga , saya ingin menunjukkan bahwa ada yang setara dengan polyomino pada grid segitiga. Mereka disebut poliamond , dan mereka adalah bentuk yang dibentuk dengan menempelkan segitiga sama sisi di sepanjang tepinya. Dalam tantangan ini, Anda akan menentukan himpunan bagian dari kisi segitiga yang merupakan poliamond, dan apakah ada lubang di dalamnya. Karena hanya membutuhkan 9 segitiga untuk membuat polyiamond dengan lubang di dalamnya, kode Anda harus sesingkat mungkin.
Grid
Kami akan menggunakan tata letak kotak segitiga Martin untuk input:
Perhatikan fakta bahwa pusat-pusat segitiga membentuk kotak persegi panjang kasar dan bahwa segitiga kiri atas "menunjuk" ke atas. Kita dapat menggambarkan subset dari kisi ini, kemudian, dengan memberikan "peta bintang" persegi panjang yang mengindikasikan segitiga mana yang dimasukkan dan mana yang tidak termasuk. Misalnya, peta ini:
** **
*****
sesuai dengan poliamond terkecil yang mengandung lubang:
Lubang
Sebuah polyiamond yang berisi sebuah lubang seperti contoh di atas (daerah bukan bagian dari polyiamond, yang dikelilingi oleh daerah yang berada ) tidak, topologi berbicara, hanya terhubung .
Tantangan
Tulis fungsi atau program yang mengambil input "peta bintang" seperti yang dijelaskan di atas dan menampilkan kebenaran jika dan hanya jika subset yang ditunjukkan dari grid segitiga adalah poliamond yang terhubung sederhana .
Lebih banyak contoh
*** ***
*******
sesuai dengan polyiamond
yang hanya terhubung.
* *
** **
***
sesuai dengan polyiamond
yang hanya terhubung.
** **
*** **
****
sesuai dengan non- polyiamond
yang tidak akan hanya terhubung bahkan jika itu adalah polyiamond.
Input Spec
- Input hanya akan terdiri dari tanda bintang, spasi, dan umpan baris.
- Karakter input pertama akan selalu berupa spasi atau tanda bintang (sesuai dengan segitiga pengarah ke atas di sudut kiri atas kisi).
- Akan selalu ada setidaknya satu tanda bintang di baris pertama dan terakhir.
- Tidak ada jaminan bahwa baris setelah baris pertama tidak akan kosong. Dua umpan baris dalam satu baris dapat muncul di input yang sah.
- Panjang garis tidak harus sama.
Kondisi Menang
Ini adalah kode-golf , jadi jawaban tersingkat dalam byte menang.
Uji Kasus
Peta Truthy:
1) *
2) *
*
3) **
4) *** ***
*******
5) * *
** **
***
6) *
**
*
7) **
***
****
8) ****
** *
*****
9) ***********
** ** **
**** ** **
**
************
Peta Falsy:
1) *
*
*
2) * *
3) *
*
4) **
**
5) ***
***
6) ** **
*****
7) ** **
*** **
****
8) *
*
9) *****
** *
*****
AV VA\nVAVAV
alih-alih** **\n*****
karena memudahkan manusia untuk memvisualisasikan. Saya sudah melakukan edit ke salah satu diagram ASCII Martin.