Robotum bir şekilde kısa devre yaptı ve laboratuvarımdan bir yere rastgele çıktı!
Neyse ki, ne zaman bunu yaparsa, kapanma sırası başlar ve ona kapanmadan önce beş tur boyunca rastgele yönde dönmesi ve koşması için yeterli zaman verir. Cayro ve ivmeölçer fonksiyonları hala açıkken verileri laboratuvara geri aktarıyor.
Veriler her zaman iki sayıdan oluşan beş set şeklinde gelir.
12:234,-135:47,-68:230,140:324,127,87
Görevin, golfçüler robotun çılgınca koşmak taklit ve şeklinde sayıları beş set göstererek diziyi çevirmek) bir etmektir a1:d1,a2:d2,a3:d3,a4:d4,a5:d5nerede a) saat yönünde açısı derece olarak (is) (n böyle -179<=a<=+180(robot bugünkü başlığı dan dönecek başlangıçta, amok koşmadan ve ilk kez dönmeden önce sıfır istikametindedir) ve d(n) bir sonraki istikamet değişikliğinden önce koştuğu ayak cinsinden mesafedir 0<=d<=500; ve b) Laboratuardan hesaplanan bir başlık (sıfır başlığına da bakmaktadır), ayak cinsinden uzaklık (3 ondalık basamağa kadar doğruluk kuvvetle teşvik edilir, eğer yaparsanız -5 bayt) ve yönlendirme başlığı (derece olarak) kapandığında robotumun nereye baktığı.
Kolay örnek:
Data: 0:1,45:1,90:1,90:1,90:1
Heading: 0
Distance: 1
Orientation: -45
Rastgele dönüşler ve mesafeler sadece budur. Hiçbir sabit değer sabit olarak kodlanmayacaktır, kod içindeki rasgele davranışı görmeliyiz.
Rastgele kısıtlamalar: Saat veya tarihe dayalı referans yok random, kod içinde yerel bir referans görmemiz gerekiyor . Bu kodu her çalıştırdığınızda, rastgelelik her dönüş turunda 360 olası dönme açısının 1'ini gösterme olasılığı sunmalıdır. Böylece robot bir turda -36 derece dönebilir ve bir sonraki aşamada +157 derece dönebilir, ardından -116 derecelik bir başka dönüş ile +2 derecelik bir dönüş ve son dönüşte +42 derecelik bir son dönüş yapabilir. Her rastgele açı oluşturmada en az 360 farklı değer (-179 ila +180 derece dahil) mümkün olmalıdır.
Mesafe çalışmasına ilişkin kısıtlamalar: Benzer şekilde, robotun çalışabileceği 501 olası mesafe vardır (0 ila 500 fit dahil), bu yüzden robotun çalışma mesafesini belirlerken rasgele olmanın da mevcut olmasını bekliyorum. Robot teorik olarak 45, 117, 364, 27 ve 6 feet koşabiliyordu.
Size beslenen veriler her zaman tamsayı değerlerinde olacaktır ... robot tamsayı derece aralıklarında dönecek ve tamsayı mesafe aralıklarında çalışacaktır. Ancak çıktı değerleri değişken olacaktır ...
Bu kod golfü. En kısa kod kazanıyor ... Şimdi git robotumu bul!
Not: "3 ondalık basamağa kadar doğruluk" a referansla, eğer başlığı (derece olarak, 3 ondalık basamağın minimum bir derecesine kadar) ve ayak cinsinden bir mesafeyi (ayrıca MINIMUM 3 ondalık basamağa kadar da doğru) sağlayabiliyorsanız -5 bayt bonus kazanacaksınız).
-180 < a <= +180olarak kullanamazdınız<...