Berikut adalah lima gambar pir dan seluncuran baja :
Ini hanya thumbnail, klik untuk ukuran penuh!
(Saya membuat ini dengan Algodoo .)
Kelas gambar ini selalu memiliki properti berikut:
- Mereka selalu 400 × 400 piksel dengan latar belakang putih. (Ini mungkin tidak terlalu putih karena gambar SE dikompresi dengan mudah.)
- Mereka memiliki 1 hingga 4 pir identik, masing-masing diputar dan diposisikan dalam (hampir) dengan cara apa pun.
- Mereka memiliki satu saluran baja vertikal yang mencapai bagian bawah gambar.
- Selain bagian bawah parasut, parasut dan kotak pembatas pir ( contoh kotak pembatas ) tidak pernah menyentuh atau keluar dari batas gambar.
- Kotak pir yang saling mengikat tidak pernah saling tumpang tindih maupun tumpang tindih saluran.
- Pir mungkin berada di bawah bagian miring dari parasut, seperti dalam B , C , dan D . (Jadi kotak luncuran parasut bisa tumpang tindih dengan kotak lintasan pir.)
- Chute dapat memiliki posisi horizontal dan vertikal selama ada ruang yang cukup untuk semua kotak pembungkus pir agar pas secara bebas di atasnya (tidak ada case yang "hampir pas" akan diuji) dan sebagian bagian kolom terlihat.
Tantangan
Tulis sebuah program yang mengambil gambar seperti itu dan mengeluarkan gambar 400 × 400 lainnya dengan saluran di tempat yang sama, tetapi dengan pir diposisikan ulang sehingga mereka semua di atas saluran (sehingga mereka dapat jatuh ke dalamnya dan dijus dan lain-lain).
Persyaratan untuk gambar output adalah:
- Semua pir pada gambar input harus direposisi sedemikian rupa sehingga berada di atas saluran, di antara tepi kiri dan kanan corongnya. (Di atas tepi tidak ok.)
- Setiap pir harus mempertahankan sudut rotasi. (Jadi Anda harus memotong dan menempelkan pir, bukan menggambar ulang.)
- Pir tidak boleh tumpang tindih atau menyentuh satu sama lain atau saluran. (Kotak pear terikat mungkin tumpang tindih.)
- Pir tidak boleh menyentuh atau keluar dari batas gambar.
Berikut adalah contoh output yang valid untuk lima gambar sampel:
Ini hanya thumbnail, klik untuk ukuran penuh!
Perhatikan bahwa gambar input untuk E sudah merupakan output yang valid, tetapi mengatur ulang pir jika tidak diperlukan secara teknis baik-baik saja.
Detail
- Ambil nama file gambar atau data gambar mentah melalui stdin / command line / function call.
- Keluarkan gambar ke file dengan nama pilihan Anda atau output data file gambar mentah ke stdout atau hanya menampilkan gambar.
- Setiap format file gambar lossless umum dapat digunakan.
- Grafik dan pustaka gambar dapat digunakan.
- Beberapa piksel yang salah di sana-sini (karena kehilangan atau sesuatu) bukanlah masalah besar. Jika saya tidak dapat mengatakan bahwa ada sesuatu yang salah secara visual maka itu mungkin baik-baik saja.
Kode terpendek dalam byte menang. Tiebreaker adalah pos terpilih tertinggi.
sumber
Jawaban:
Python 2.7, 636 byte
EDIT : sekarang menghapus saluran alpha sebelum menangani gambar, dan luruskan pir pada beberapa baris jika perlu
Gambar yang dihasilkan:
dan dengan pir vertikal (membutuhkan sekitar 3 menit di komputer saya):
sumber