Notwen, tekdüze bir çekim alanında büyük yüksekliklerden atılan cisimlerin kinematiğini incelemek istiyor ancak maalesef yeterince yüksek yerlere gitme ve düşerken nesneleri gözlemleme gibi teknik bir olasılığı yok. Ama kim bilimdeki ilerlemeleri görmek istemez ki ... Notwen'e bir yerçekimi simülatörü oluşturmada yardım edelim!
Fiziksel Arkaplan
Bir cisim yükseklikten düştü ( başlangıç hızı olmadan ) düzgün bir yerçekimi alanında, sürükleme veya rüzgar gibi atmosferik etkileri ihmal ederek hız kazanır ve zamanla yere doğru hızlanır. Bir birim zamandaki bu "değişim hızına" yerçekimi ivmesi denir . Dünya yüzeyinin yakınında, yaklaşık olarak eşittir, ancak bu zorluğun amaçları için değeri yani, bir saniye içinde bir cismin hızı yaklaşık . Yüksekliğe sahip olmayı düşünün, bunun katları ve bu yüksekliği her biri eşit aralıklara böldüğünüzü hayal edin metre uzunluğunda. Notwen, nesnenin bu aralıkların her birine düşmesinin ne kadar sürdüğünü ölçmek ister, bu yüzden de hesaplamayı hedefliyoruz. Modern kinematik - atlama teknikleri - bize şunu söyler:
Meydan okuma
Giriş: yükseklik nesnenin ya şu şekilde atıldığı: , veya aralık sayısı (bu yüzden ya veya bunun anlamı ) - hangisi size kalmış.
Çıktı: Düşen bir nesnenin ASCII sanat animasyonu, yükseklikten düştü (detaylar aşağıda).
Bir çıktı çerçevesinin yapısı aşağıdaki gibi olmalıdır:
- en az bir boşluk olmayan karakterle (örn.
@
) temsil edilen "yer" den önceki satırsonları . Yerin karakterlerinden en az biri, nesnenin düştüğü dikeyde olmalıdır. - Nesneyi (ör.
X
) Temsil eden , yer için seçtiğiniz karakterden başka bir boşluk olmayan karakter . - İsteğe bağlı olarak , her bir çizginin başlangıcında dikey ekseni veya yapılan duvarı temsil eden bir karakterçizgiler. Herhangi bir miktarda ön ve arka boşluk, çerçeveler ile duvar ve nesne arasındaki herhangi bir boşluk tutarı tutarlı olduğu sürece iyidir. Geçerli çerçeve örnekleri arasında 1 ( veya ):
| X > | @ > A | > | or or or > | O > | > | > @@@ ^ ----- &&&
Nesne ilk karenin ilk satırından başlamalı, sonra çıktı temizlenmeli ve programınız nesneyi aynı dikeyde ancak ikinci karedeki bir sonraki satırda göstermelidir; ondan sonraçıktı yeniden temizlenmeli ve programınız nesne aynı dikeyde, ancak üçüncü karedeki bir sonraki satırda vb. görüntülenmelidir, nesne zeminin hemen üzerindeki çizgiye ulaşıncaya kadar. Misal:
kurallar
- Çıktı, etkileşimli (yıkanabilir) bir konsola, bir GIF'e, her bir kare için ayrı bir dosyaya veya başka bir makul çıktı tekniğine yazılmış bir metin olmalıdır.
- Her kare son karenin tamamen üzerine yazılmalı ve aynı konumda olmalıdır.
- Derleyicinin / yorumlayıcının metni çıkarması için gereken sürenin önemsiz olduğunu ve kare kökleri hesaplamak için izin verilen minimum hassasiyetin 2 ondalık basamak olduğunu varsayabilirsiniz.
- Bu boşlukların not alınırken, herhangi bir standart yöntemle girdi alabilir ve çıktı sağlayabilirsiniz. varsayılan olarak yasak . Bukod golf, bu nedenle görevi kendi dilinizde yönetebileceğiniz en az bayt cinsinden tamamlamayı deneyin .
1: Geçerli bir çerçeveyi neyin oluşturduğuna inanmıyorum çünkü çözümünüze en uygun olana izin vermek istiyorum ve bu mücadeleye gereksiz şeyler eklemeye çalışmıyorum. Net olmayan bir şey varsa, yorumlarda sorun.
chr(27)
mı?