Tantangan
Dengan ukuran kisi, posisi rintangan, posisi pemain, dan posisi target, tugas Anda adalah menemukan jalur bagi pemain untuk mencapai target dan menghindari rintangan pada saat yang bersamaan (jika perlu).
Memasukkan
- N : Ukuran kisi
N x N
- P : Posisi pemain
[playerposx, playerposy]
- T : Posisi target
[targetposx, targetposy]
- O : Posisi penghalang
[[x1, y1], [x2, y2],...,[xn, yn]]
Keluaran
Jalur : Pemain jalur dapat digunakan untuk mencapai target[[x1, y1], [x2, y2],...,[xn, yn]]
Aturan
- Intinya
[0,0]
adalah di sudut kiri atas grid. - Posisi pemain akan selalu berada di sisi kiri kotak.
- Posisi target akan selalu berada di sisi kanan grid.
- Grid akan selalu memiliki setidaknya satu kendala.
- Anda dapat mengasumsikan bahwa tidak ada halangan yang menimpa pemain atau posisi target.
- Anda tidak perlu menemukan jalur min.
- Pemain hanya bisa bergerak ke kiri, kanan, atas dan bawah tidak secara diagonal.
- Anda dapat mengambil input dengan cara apa pun yang nyaman.
- Anda dapat mengasumsikan bahwa jalur untuk mencapai target selalu ada.
- Jelas, untuk setiap input beberapa jalur yang valid ada, pilih satu.
- Anggap
N > 2
saja kisi itu setidaknya3 x 3
.
Contohnya
Input: 9
, [6, 0]
, [3, 8]
, [[0, 5], [2, 2], [6, 4], [8, 2], [8, 7]]
Kemungkinan Output:[[6, 0], [6, 1], [6, 2], [6, 3], [5, 3], [5, 4], [5, 5], [5, 6], [5, 7], [5, 8], [4, 8], [3, 8]]
Input: 6
, [1, 0]
, [3, 5]
, [[1, 2], [2, 5], [5, 1]]
Kemungkinan Output:[[1, 0], [1, 1], [2, 1], [2, 2], [2, 3], [2, 4], [3, 4], [3, 5]]
Catatan
Perhatikan itu X
untuk baris dan Y
untuk cols. Jangan membingungkan mereka dengan koordinat dalam gambar.
Edit
Seperti @digEmAll tunjukkan, karena aturan #2
dan #3
, playerY = 0
dan targetY = N-1
. Jadi, jika mau, Anda dapat mengambil sebagai input saja playerX
dan dan targetX
(jika itu membuat kode Anda lebih pendek).