Tantangan
Diberikan string (mungkin memiliki baris baru), atau array dua dimensi, dan bilangan bulat positif n
, menampilkan posisi platform n
setelah posisi awal.
U, D, R, L
adalah platform.
^, v, >, <
adalah panah yang mengubah arah platform.
U, D, R, L
masing-masing bergerak ke atas, bawah, kanan dan kiri. Ketika panah di depan platform, itu mengubah arah.
Mempengaruhi platform:
R<
D
^
v
U
>L
>L
<
(panah atas akan mempengaruhi atas L
, tetapi panah bawah tidak akan mempengaruhi atas L
)
Tidak akan mempengaruhi:
<
R
>
L
v
U
D
^
<R
( R
berjalan dengan benar, jadi <
tidak akan memengaruhi R
)
Misalnya, jika ini adalah string:
>R <
Platform R
akan bergerak ke kanan sampai hampir menyentuh panah:
> R<
Setelah itu, itu akan mengubah arah dan mulai belok kiri:
> R <
(Meskipun sekarang akan tersisa, surat itu tidak akan berubah.)
Ada beberapa kasus ketika platform tidak mau bergerak, seperti
>R<
atau
v
U
^
Contoh terakhir:
v >
D Rv
^U
^ <
Setelah satu putaran,
v >
U v
D ^ R
^ <
Setelah satu putaran,
v >
D Uv
^R
^ <
Dan satu putaran lagi:
v >
R v
D ^ U
^ <
Anda dapat mengasumsikan bahwa platform, setelah n
bergantian, tidak akan tumpang tindih, bahwa platform tidak akan keluar batas, dan bahwa platform tidak akan menyentuh panah yang menunjuk ke arah yang sama dengan platform.
Uji Kasus
Input:
">R <", 4
Output:
"> R <"
Input:
">R <", 6
Output:
">R <"
Input:
">R<", 29
Output:
">R<"
Input:
"v
U
^", 5
Output:
"v
U
^"
Input:
"v
D
^", 1
Output:
"v
D
^"
Input:
"v
D
^", 4
Output:
"v
D
^"
Input:
"v >
D Rv
^U
^ < ", 2
Output:
"v >
D Uv
^R
^ <
Input:
">RL<", 3
Output:
">LR<"
Input:
">L R<", 4
Output:
"> RL <"
Input:
"> RR<
>L R <", 6
Ouput:
">RR <
> RL <"
Input:
"R <", 4
Output:
" R <"
Input:
"R <", 6
Ouput:
"R <"
Aturan
- Ini kode-golf , jadi jawaban tersingkat dalam byte menang!
- Celah standar tidak diijinkan.
n
belokan.Jawaban:
C #, 1245 byte
Awalnya terasa lebih sederhana, tetapi kemudian saya terus menulis lebih banyak kode. : D
LINQ untuk menghitung dan memperbarui papan, mengubah karakter untuk menunjukkan arah gerakannya. Karakter dikembalikan kembali sebelum kembali. Juga mengasumsikan bahwa papan adalah persegi (jadi harus memodifikasi beberapa kasus uji multi-line agar sesuai dengan batasan ini).
Diperluas:
sumber