İki vektörün ASCII sanatı göz önüne alındığında, elde edilen vektörün büyüklüğünü ve derecesini bulun.
Giriş
Bu, STDIN yoluyla alınabilir, yerel bir dosyadan okunabilir veya bir işlev çağrısı yoluyla sağlanabilir. İki vektör girişine bir örnek:
^------>
|
|
|
x
Bu, kuzeyde 4 birim ve doğuda 7 birim değişikliği temsil eder. Her girişin başlangıç noktası x
(ondalık 120
) ile gösterilir.
Tüm vektörler yatay veya dikey çizgilerdir.
Her vektör şu dört uç noktadan birine sahiptir:
^v<>
ve bir tire (-
, ondalık 45) veya dikey bir çubuktan (|
, ondalık 124) oluşur.Uçaktaki boş noktalar boşluklarla (
, ondalık 32) doldurulur .
Giriş tek olabilir
x
.Bitişik vektörler her zaman birbirine diktir.
Tüm vektörler uçtan uca kuyruktur.
Çıktı
Bu, ortaya çıkan noktanın (başlangıç noktasından uzaklığı) ve başlangıç noktasına göre hareket etme derecesi olacaktır.
Yukarıdaki giriş için, çıktı 8.06
birimler ve 60.3
dereceler olmalıdır . Her biri tam olarak 3 önemli rakama sahip olmalıdır. 3 önemli basamaklı sayılara birkaç örnek:
- 1.00
- 60.1
- 453
- 7.08
- 4.50
- 349
Tüm birim ölçümleri olacaktır <= 999
.
Bu sayılar aşağıdaki biçimde verilmelidir. Bu, yukarıdaki sayıları kullanıyor.
8.06 units @ 60.3 degrees
Bunu tek bir boşluk veya yeni satır takip edebilir.
Giriş tek bir ise x
, yer değiştirme ve dolayısıyla yer değiştirme açısı yoksa, çıktı boş bir satır (tek bir yeni satır karakteri) veya aşağıdaki biçimde olmalıdır:
0 units @ - degrees
Bonus için hak kazanmaya çalışıyorsanız, yön de olmalıdır -
.
İkramiye 2, 3 veya her ikisinin tamamlanması durumunda, çıktı aşağıdaki modeli izlemeli ve yukarıdaki ile aynı kısıtlamalara uymalıdır.
8.06 units @ 60.3 degrees NE
Dereceler standart düzleme göre ölçülmelidir.
90
135 | 45
\|/
180 ---x---- 0
/|\
225 | 315
270
0
derece doğu, 1 - 89
derece kuzeydoğu, 90
kuzey vb.
Bonuslar
Aşağıdaki toplam -50% değerinde.
Ele alınabilecek her ilave vektör için% -10 bonus kazanın. Bu bonus 3 defaya kadar uygulanabilir. Vektörler asla örtüşmez veya kesilmez.
Çıktınız açının ana yönünü içeriyorsa% -10 bonus kazanın (kuzey, güney, doğu, batı).
Çıktınız açının ara yönlerini (kuzeydoğu, kuzeybatı, güneydoğu, güneybatı) içeriyorsa% -10 bonus kazanın.
Örnekler
İçinde:
x---->
|
v
Dışarı:
5.39 units @ 338 degrees
İsteğe bağlı olarak SE
İçinde:
<--------------^
|
|
x
Dışarı:
15.3 units @ 169 degrees
İsteğe bağlı olarak NW
İçinde:
x
|
|<-----^
| |
v------>
Dışarı:
2.24 units @ 297 degrees
İsteğe bağlı olarak SE
Örnekler (çoklu vektörler)
İçinde:
x--->
|
|
v----------->
Dışarı:
16.3 units @ 349 degrees
İsteğe bağlı olarak SE
İçinde:
<-------^
| |
| |
v |
|
|
x
Dışarı:
8.54 units @ 159 degrees
İsteğe bağlı olarak NW
İçinde:
^-->
| |
| v
|
<--------x
Dışarı:
6.32 units @ 162 degrees
İsteğe bağlı olarak NW
x-->
. Vektörler kesişebilir mi?
x
. İkiden fazla olabilir (bonusu tamamlamaya çalışırsanız), ancak daha az olamaz. Birden fazla vektör girişi için örnekler üzerinde çalışıyorum. Hiçbir girişte vektörler çapraz olmaz. ThomasKwa
x
? Kuzey ve Kuzeybatı arasındaki sınır nedir?