Tulis program atau fungsi yang mengambil dalam bilangan bulat positif N (melalui stdin / command line / function arg) dan mencetak atau mengembalikan representasi string dari jalan acak dua dimensi yang merupakan N langkah panjang, ditarik dari garis miring: /
\
(ditambah spasi dan baris baru untuk spasi).
Berjalan acak 2D dimulai pada asal kisi integer tak terbatas . Kemudian N kali berulang kali, arah mata angin (atas, bawah, kiri, kanan) dipilih secara seragam secara acak dan alat bantu jalan menggerakkan satu unit ke arah itu. Jalur yang dihasilkan adalah jalan acak.
Ini adalah jalan acak untuk N = 6. Perhatikan bahwa itu berjalan kembali dengan sendirinya ketika mencapai (-1, 3).
Untuk menggambar ini dengan garis miring, pada dasarnya kita perlu memutar seluruh benda 45 ° searah jarum jam. Sumbu dan titik awal dan akhir tidak digambar dalam versi garis miring.
/
\
\
/\
Jalan yang lebih kompleks seperti ini (N = 20, meskipun tidak ada cara untuk mengatakannya):
Akan menjadi ini:
/
/\/ /\
\/\/
/\/
\/
Program Anda perlu membuat versi slash dari jalan acak ini. Anda harus secara acak memilih setiap arah jalan yang baru ditempuh, sehingga setiap menjalankan program untuk N tertentu hampir pasti akan menghasilkan jalan yang berbeda. (Pseudorandomness baik-baik saja.)
Seharusnya tidak pernah ada garis kosong di atas atau di bawah garis miring terendah dan tertinggi (kecuali untuk satu baris tambahan opsional), dan seharusnya tidak pernah ada kolom ruang kosong sebelum atau setelah garis miring paling kiri dan paling kanan.
Jadi untuk N = 1, output selalu /
atau \
, tetapi tidak pernah seperti ini:
/
Ruang trailing dibolehkan selama tidak melewati kolom tebasan paling kanan.
Kiriman dengan byte paling sedikit menang. Inilah penghitung byte yang berguna.