Tantangannya adalah mengikuti (menggambar) jalan:
^n
- oleh n barisvn
- turun dengan n baris>n
- Tepat oleh posisi karakter<n
- Posisi n karakter ditinggalkan
n
adalah bilangan bulat, lebih besar dari nol (yaitu Anda tidak dapat menerima perintah seperti>-2
).- Tidak ada pemisah antara perintah, input yang terbentuk terlihat seperti ini:,
>5v8<10^3
tidak ada bentuk input lain yang dibolehkan. - Jumlah perintah tidak terbatas.
- Tidak ada lagi karakter yang seharusnya masuk ke input.
Contohnya.
Input adalah string kosong, keluaran:
*
Inputnya salah satu
>3
atau<3
: perhatikan bahwa ini tidak membuat perbedaan pada output:****
Serupa untuk
^3
danv3
:* * * *
Input:,
>1v2
output:** * *
Input:,
^4>3v2<1
output:**** * * * ** * *
Jika Anda kembali dan menggunakan jalur yang sama, jangan menggambar sesuatu yang baru. Misalnya
>5<5
******
... meskipun kamu tidak menggambar sesuatu yang baru, kamu jelas mengubah posisinya. Karenanya, jika input Anda terlihat seperti ini
>4<2v3
:, outputnya adalah:***** * * *
Ini adalah contoh yang lebih kompleks: 1) jalur dapat menyeberang sendiri 2) perhatikan bahwa tiga langkah terakhir dari perintah terakhir menggeser seluruh jalur ke kanan. Input:,
v6>4^3<7
output:* * * ******** * * * * *****
Masukan :
^2v2>3<3v3>4^5v5>3^5>4v2<4v3>4^3v3>3^5>4v2<4v3>7^5>4v2<4v3>9^3<2^2v2>4^2v2<2v3>8^5>2v4>2^4v5<3>6^5>5<5v2>5<5v2>5<4v1>8^3<1^2v2>1v2>2^3v3>2^2>1^2v2<1v3<3>11^3<2^2v2>4^2v2<2v3>5^5>5<5v2>5<5v2>5<4v1>7^5>4v2<4v3>4^3v3>3^5>4v2<3v1<1v2>3^1>1v1
Keluaran:
* * ***** ***** ***** * * *** * ****** * * * * ****** ***** ***** * * * * * * * * * * * * * * * * * * * * * * * * ***** ***** ***** ***** ***** * * * ****** ** * ** ***** ****** ***** ***** * * * * * * * * * * * * * * * * * * ** * * * * * * * * *** ****** ***** * ****** * * * ** *******************************************************************************************
^2v2>3<3v3>4^5v5>3^5>4v2<4v3>4^3v3>3^5>4v2<4v3>7^5>4v2<4v3>9^3<2^2v2>4^2v2<2v3>8^5>2v4>2^4v5<3>6^5>5<5v2>5<5v2>5<4v1>8^3<1^2v2>1v2>2^3v3>2^2>1^2v2<1v3<3>11^3<2^2v2>4^2v2<2v3>5^5>5<5v2>5<5v2>5<4v1>7^5>4v2<4v3>4^3v3>3^5>4v2<3v1<1v2>3^1>1v1
.Jawaban:
MATL , 71 byte
Menggunakan rilis saat ini (6.0.0) dari bahasa / kompiler. Bekerja di Matlab dan Octave.
EDIT (21 Juni 2016): karena perubahan bahasa, kode memerlukan beberapa modifikasi untuk berjalan dalam rilis saat ini (16.0.0). Anda dapat mencobanya secara online termasuk modifikasi yang diperlukan.
Contohnya
Penjelasan
Program ini memiliki empat langkah utama:
[0 -1]
menunjukkan satu langkah ke kiri. Baris pertama adalah asal jalan,[1 1]
*
. Normalisasikan ke nilai minumum1
1
pada koordinat yang ditunjukkan oleh matriks dari langkah 3, dan0
jika tidak. Ini kemudian diubah menjadi matriks char.Kode:
sumber
JavaScript (ES6), 204
211 210Edit 1 Bug fix - output '*' untuk input batal
Edit 2 Penguraian decoding yang lebih sederhana ke x dan y diff
Inilah jawaban saya untuk Peta harta karun , direvisi untuk memenuhi spesifikasi.
Kurang bermain golf dan menjelaskan lebih atau kurang
Uji
sumber
*
.Perl, 174 byte
Mengharapkan input sebagai argumen commandline. Pastikan untuk mengutip argumennya!
Contoh:
perl 177.pl "<1^2>3v4<5^6>7v8<9^10>11"
Dapat dibaca:
sumber
05AB1E , 27 byte
Cobalah online! (2020 cukup dekat jadi mengapa tidak)
sumber