Robot saya mengalami hubungan pendek entah bagaimana dan secara acak lari ke suatu tempat dari lab saya!
Untungnya, setiap kali dia melakukan ini, urutan pemadamannya dimulai, memberinya cukup waktu untuk secara acak berbalik dan berlari ke arah yang menghadapnya selama lima putaran sebelum dia mematikan. Fungsi gyro dan akselerometernya masih menyampaikan data kembali ke lab saat dia masih aktif.
Data akan selalu datang dalam bentuk lima set dua angka, misalnya.
12:234,-135:47,-68:230,140:324,127,87
Misi Anda, pegolf adalah untuk a) mensimulasikan gerakan panik dan memutar urutan robot dengan menampilkan lima set angka dalam bentuk di a1:d1,a2:d2,a3:d3,a4:d4,a5:d5
mana a
(n) adalah sudut searah jarum jam (dalam derajat) sedemikian rupa -179<=a<=+180
sehingga robot akan berubah dari pos saat ini ( pada awalnya ia berada di nol arah sebelum berjalan mengamuk dan berbelok untuk pertama kalinya), dan d
(n) adalah jarak di kaki yang telah berjalan sebelum perubahan pos berikutnya yang sedemikian rupa sehingga 0<=d<=500
kaki; dan b) Pos yang dihitung dari lab (yang juga menghadap ke pos nol), jarak dalam kaki (akurasi hingga 3 tempat desimal sangat dianjurkan, -5 byte jika Anda melakukannya), dan pos orientasi (dalam derajat) dari tempat robot saya menghadap ketika telah dimatikan.
Contoh mudah:
Data: 0:1,45:1,90:1,90:1,90:1
Heading: 0
Distance: 1
Orientation: -45
Putaran dan jarak acak hanyalah itu, acak. Tidak ada nilai yang ditetapkan yang akan dikodekan secara keras, kita harus melihat keacakan dalam tindakan dalam kode.
Batasan ke keacakan: Tidak ada referensi berbasis jam atau tanggal, kita perlu melihat random
referensi asli dalam kode. Setiap kali Anda menjalankan kode ini, keacakan harus muncul dengan kemungkinan menunjukkan 1 dari 360 kemungkinan sudut berbelok dengan setiap putaran turn-run. Jadi robot dapat berputar -36 derajat pada satu belokan dan dapat berbalik +157 derajat di tikungan berikutnya, diikuti oleh putaran lain +2 derajat dengan putaran lain -116 derajat dan putaran terakhir +42 derajat pada belokan terakhir. Setidaknya 360 nilai yang berbeda harus dimungkinkan (antara -179 hingga +180 derajat inklusif) dengan setiap generasi sudut acak.
Batasan untuk lari jarak: Sama halnya, ada 501 jarak yang mungkin dijalankan robot, (antara 0 dan 500 kaki inklusif), jadi saya berharap keacakan juga tersedia saat menentukan jarak lari robot. Robot secara teoritis dapat menjalankan 45, 117, 364, 27 dan 6 kaki dengan masing-masing putaran masing-masing ...
Data yang diumpankan kepada Anda akan selalu dalam nilai integer ... robot akan berubah dalam rentang derajat integer, dan akan berjalan dalam rentang jarak integer. Nilai output bagaimanapun, akan mengapung ...
Ini adalah kode-golf. Kemenangan kode terpendek ... Sekarang cari robot saya!
PS: Mengacu pada "Akurasi hingga 3 tempat desimal" saya, jika Anda dapat memberikan tajuk (dalam derajat, ke MINIMUM 3 tempat desimal) dan jarak dalam kaki (juga akurat juga ke MINIMUM 3 tempat desimal) Anda akan mendapatkan bonus -5 byte).
-180 < a <= +180
sebagai<
tanda pada cara sendiri kurang dari tetapi tidak termasuk AFAIK ...