Grid heksagonal telah menjadi twist yang cukup populer untuk tantangan tentang data 2 dimensi baru-baru ini. Namun, tampaknya kisi-kisi segitiga yang sama menariknya sebagian besar telah diabaikan sejauh ini. Saya ingin memperbaiki itu dengan tantangan yang agak sederhana.
Pertama, bagaimana kita mewakili kisi segitiga? Pertimbangkan contoh berikut (abaikan diagram kanan untuk saat ini):
Sel-sel dengan rapi jatuh ke grid biasa (perbedaan ke grid biasa hanya sel mana yang dianggap berdekatan):
1234567
89abcde
fghijkl
mnopqrs
Sekarang, seperti yang ditunjukkan diagram kanan, kisi segitiga memiliki tiga sumbu utama: horizontal dan dua diagonal.
Sorot ini di kisi ASCII:
AVAVAVA
VAabcAV
fVAiAVl
mnVAVrs
Tantangan
Anda diberi string persegi panjang yang mewakili kotak segitiga (di mana sudut kiri atas adalah segitiga yang mengarah ke atas). Sebagian besar sel dengan be .
, tetapi tepatnya dua sel akan menjadi #
, misalnya:
....#
.#...
.....
Tentukan apakah keduanya #
disejajarkan di sepanjang salah satu dari tiga sumbu kisi (yaitu apakah mereka terletak pada satu baris di salah satu dari tiga arah yang disorot di atas). Untuk contoh ini, jawabannya adalah "tidak".
Anda dapat menulis sebuah program atau fungsi, mengambil input melalui STDIN (atau alternatif terdekat), argumen baris perintah atau argumen fungsi dan mengeluarkan hasilnya melalui STDOUT (atau alternatif terdekat), nilai pengembalian fungsi atau parameter function (out).
Input dapat berupa string tunggal yang dibatasi oleh umpan garis atau karakter lain yang sesuai, atau daftar string. Anda dapat menggunakan dua karakter ASCII yang dapat dicetak untuk menggantikan .
dan #
.
Output harus berupa nilai kebenaran jika sel yang disorot sejajar dan nilai palsu sebaliknya.
Aturan standar kode-golf berlaku.
Uji Kasus
Kisi kebenaran:
.#..#.
#
#
...........
...#.......
...........
...........
...........
.......#...
...........
...........
.......#...
...........
...........
...........
...#.......
...........
.#.........
...........
...........
...........
...........
.......#...
...........
...........
...#.......
...........
...........
...........
...........
.......#...
.........#.
...........
...........
...........
...........
...#.......
...........
...........
.......#...
...........
...........
...........
...........
...#.......
...........
.#.....#...
...........
...........
...........
Kisi palsu:
#.....
.....#
.....#
#.....
...#.......
...........
...........
...........
...........
.......#...
...........
...........
...#.......
...........
...........
...........
...........
.........#.
.......#...
...........
...........
...........
...........
...#.......
...........
...........
.......#...
...........
...........
...........
...........
.#.........