Açıklama
Bu zorluğun görevi, belirli bir nesneyi boşluğunda izleyen bir program veya işlev tasarlamaktır .
I / O
Programınıza herhangi bir şekilde alınabilecek 3 giriş verilecektir :
n
uçağın tarafının büyüklüğü olacak. (yani, , uçağınız ). Her n
zaman tek bir tamsayı olacağını varsayabilirsiniz .
s
bir çift koordinatı olarak verilen nesnenin başlangıç konumu olacaktır .
D
sıralı çiftlerin bir vektörü olacaktır. D = [ ( d 0 , t 0 ) , ( d 1 , t 1 ) ,D
biçimini izleyecektir . . . , ( D , n , t , n ) ] , burada d k her zaman olacaktır bir bölgesinin kardinal ve primer intercardinal tarifini, ve t k 'keneler' sayısı için bir tamsayı olacaktır.'N', 'NE', 'E', 'SE', 'S', 'SW', 'W', 'NW'
Bu girdiler göz önüne alındığında, programınız düzlemdeki nesnenin bir izlemesinin çıktısını almalıdır.
kurallar
Çıktı gerekir uçağın sınırlarını içermektedir. Örneğin:
- 21012 + + ┌─────┐ 2│ │ 1│ │ 0│ │ 1│ │ 2│ │ -└─────┘
boş bir düzlemine örnek olacaktır . Yukarıdaki ve yan taraftaki sayılar yalnızca referans amaçlıdır ve yazdırılması gerekmez.
Boşluk olmadığı (veya boşluk olduğu sürece) sınırlar için hangi karakter (ler) i kullanabilirsiniz. Seçtiğiniz karakterler tam düzlemi tanımlamalıdır, yani aralarında boşluk olamaz.
Kabul edilebilir bazı uçaklar şunları içerir: ┌──┐ .... ---- + - + │ │. . | | | | │ │. . | | | | └──┘; ....; ----; + - + Kabul edilemez uçaklar şunları içerir: .... .... ++++. . . . + +. . . + +. . ; ....; ....; + +; . .
İzlenecek nesne, uçakta yalnızca 1 yer kapladığı ve sınır karakterlerinden farklı olduğu sürece seçtiğiniz karakter olabilir.
İzlenen nesnenin izlemesi, uçakta yalnızca 1 yer kapladığı ve nesneden farklı olduğu sürece, seçtiğiniz karakterler de olabilir.
D' deki her eleman için , nesne t boşluklarını d'ye doğru hareket ettirmeli ve arkasında bir iz bırakmalıdır.
Nesne bir sınıra ulaşırsa yansıtılır. Nesnede hala hareket varsa, yansıtıldığı yönde hareket etmeye devam eder.
Referans olarak, bu talimatlar birbirine yansır:
→ üst veya alt sınır karşılandığında;
→ bir yanal sınır karşılandığında;
Son çıktı mümkün olan en yeni izleri içerecektir, yani nesne zaten izin olduğu bir alanda iz bırakacaksa, daha yeni iz karakteri eskisinin üzerine yazacaktır.
Her zamanki gibi standart boşluklar varsayılan olarak yasaklanmıştır .
puanlama:
Bu bir kod-golf mücadelesi.
Örnekler:
Giriş: , ,
Çalışmak:
0 ┌─────┐ │ │ │ │ 0│ ○ │ │ │ │ │ └─────┘
0 ┌─────┐ │ ○ │ │ \ │ 0│ \ │ │ │ │ │ └─────┘
0 ┌─────┐ │∧ │ │ | \ │ 0│ ○ \ │ │ │ │ │ └─────┘
olacak.
0 ┌─────┐ │∧ │ │ | \ │ 0│└ ○ \ │ │ │ │ │ └─────┘
(0'lar sadece referans içindir ve nihai çıktıda olmaları gerekmez.)
Giriş: , ,
Dikkat edin, olduğunda :
0 ┌─────────┐ │ │ │ │ │ │ │ ∧ │ 0│ / | │ │ ○ / | │ │⟨ / │ │ \ / │ │ ∨ │ └─────────┘
Nesne yansıtılmıştır iki : bir kez ulaşıldığında alt doğru giderken düzleminin bu yansıtır, ; daha sonra bir kez daha ulaşan sol kanadın düzleminde ve yansıtmaktadır .
Son çıktı gelir :
0 ┌─────────┐ │ ○ │ │ \ │ │ \ │ │ \ │ 0│ / | ⟩│ │ ∧ / / │ │⟨ \ / / │ │ \ \ / │ │ ∨ ∨ │ └─────────┘
Test senaryoları:
Giriş: , ,
Çıktı:
0 ┌─────┐ │∧ │ │ | \ │ 0│└ ○ \ │ │ │ │ │ └─────┘
Giriş: , ,
Çıktı:
0 ┌─────────┐ │ ○ │ │ \ │ │ \ │ │ \ │ 0│ / | ⟩│ │ ∧ / / │ │⟨ \ / / │ │ \ \ / │ │ ∨ ∨ │ └─────────┘
Giriş: , ,
Çıktı:
0 ┌───┐ │ | │ 0│- ○ ┐│ │ | │ └───┘
Giriş: , ,
Çıktı:
0 ┌───────────┐ │ ∧ │ │ / \ │ │┌ - / - \ \ │ │ \ | / \ \ │ │ \ | \ \ │ 0│ | / ⟩│ │ | \ / / │ │ | / ○ │ │ | / \ │ │ ∨ \ │ │ \ │ └───────────┘
'N', 'NE', 'E', 'SE', 'S', 'SW', 'W', 'NW'
Bunun yerine 0 dizinli (veya 1 dizinli) bir tamsayı olarak alabilir miyiz ? Yani [('NW',2),('S',2),('E',1)]
olur [[7,2],[4,2],[2,1]]
örneğin.