Notwen ingin mempelajari kinematika tubuh yang dilemparkan dari ketinggian besar di medan gravitasi seragam, tetapi sayangnya ia tidak memiliki kemungkinan teknis untuk pergi ke tempat yang cukup tinggi dan mengamati benda-benda saat jatuh. Tapi siapa yang tidak ingin melihat kemajuan dalam sains jadi ... Ayo bantu Notwen membangun simulator gravitasi!
Latar Belakang Fisik
Sebuah benda jatuh dari ketinggian ( tanpa kecepatan awal ) dalam medan gravitasi yang seragam, mengabaikan efek atmosfer seperti gaya hambat atau angin yang menambah kecepatan dan mempercepat menuju tanah seiring waktu. "Laju perubahan" kecepatan dalam satuan waktu ini disebut percepatan gravitasi . Di dekat permukaan Bumi, kira-kira sama dengan , tetapi untuk tujuan tantangan ini kita akan menggunakan nilai , yang berarti bahwa dalam satu detik, sebuah objek meningkatkan kecepatannya sekitar . Pertimbangkan memiliki ketinggian , yang merupakan kelipatandan bayangkan membagi tinggi itu menjadi interval yang sama, masing-masing panjangnya meter. Notwen ingin mengukur berapa lama waktu yang dibutuhkan objek untuk melewati masing-masing interval tersebut, jadi itulah yang ingin kami hitung juga. Kinematika modern - melewatkan teknis - memberi tahu kita bahwa:
mana untuk semua nilai dalam kasus kami, adalah inisial kecepatan di awal interval dan adalah durasi interval waktu (untuk referensi, pengindeksan dimulai pada dengan
Tantangan
Input: Tinggi dari mana objek dilemparkan sebagai: kelipatan bilangan bulat positif , atau jumlah interval (sehingga atau berarti ) - yang mana terserah kamu.
Output: Animasi seni ASCII dari objek yang jatuh, turun dari ketinggian (detail di bawah).
Struktur kerangka output harus sebagai berikut:
- baris baru sebelum "ground", diwakili oleh setidaknya satu karakter non-spasi putih (misalnya
@
). Setidaknya salah satu karakter dari tanah harus terletak pada garis vertikal tempat benda itu jatuh. - Karakter non-spasi putih lain yang mewakili objek (misalnya
X
), selain yang Anda pilih untuk ground. - Secara opsional , karakter di awal setiap garis mewakili sumbu vertikal atau dinding yang dibuat pada garisJumlah ruang depan dan belakang baik-baik saja selama konsisten di antara bingkai, serta jumlah ruang antara dinding dan objek. Contoh frame yang valid termasuk 1 (untuk atau ):
| X > | @ > A | > | or or or > | O > | > | > @@@ ^ ----- &&&
Objek harus dimulai pada baris pertama dari frame pertama, kemudian setelah output harus memerah dan program Anda harus menampilkan objek pada vertikal yang sama tetapi pada baris berikutnya di frame kedua; kemudian setelah , outputnya harus memerah lagi dan program Anda harus menampilkan objek pada vertikal yang sama tetapi pada baris berikutnya dalam bingkai ketiga dan seterusnya, hingga objek mencapai garis tepat di atas tanah. Contoh:
Aturan
- Outputnya harus berupa teks yang ditulis ke konsol interaktif (flushable), GIF, file terpisah untuk setiap frame atau beberapa teknik output wajar lainnya.
- Setiap frame harus sepenuhnya menimpa frame terakhir dan berada di lokasi yang sama.
- Anda dapat mengasumsikan bahwa waktu yang diperlukan untuk kompiler / juru bahasa untuk menampilkan teks dapat diabaikan dan presisi minimum yang diijinkan untuk menghitung akar kuadrat adalah ke 2 tempat desimal.
- Anda dapat mengambil input dan memberikan output melalui metode standar apa pun , sambil memperhatikan bahwa celah ini dilarang secara default. Ini adalah kode-golf , jadi cobalah untuk menyelesaikan tugas dalam byte paling sedikit yang dapat Anda kelola dalam bahasa pilihan Anda.
1: Saya ringan tentang apa yang merupakan kerangka yang valid karena saya ingin membiarkan apa pun yang paling sesuai dengan solusi Anda dan saya tidak mencoba untuk menambahkan hal-hal yang berlebihan untuk tantangan. Jika ada yang tidak jelas, tanyakan di komentar.
chr(27)
?