Prakiraan cuaca: Salah terlalu sering diandalkan, terlalu sering diabaikan.
Mengingat suhu tinggi dan rendah dan satu dari empat kondisi cuaca per hari, menghasilkan ramalan cuaca lima hari grafis ASCII-art. Struktur keempat indikator grafis ditunjukkan di bawah ini.
\ /
-O- Sunny
/ \
\ /
-O(==) Partly Cloudy
(====)
(==) Cloudy
(====)
(==)
(====) Rainy
/////
Bagan peramalan adalah sebagai berikut: setiap indikator grafis dipusatkan di kotak 9x5 sendiri, dengan 5 kotak di bagan. Setiap kotak dipisahkan oleh |
karakter. Di bawah indikator grafis adalah singkatan tiga huruf untuk hari dalam seminggu ( MON, TUE, WED, THU, FRI, SAT, SUN
) dipusatkan di kotak 9x1 sendiri. Suhu di bawah hari dalam seminggu berpusat di kotak 9x2 mereka sendiri. Contohnya ditunjukkan di bawah ini.
---------------------------------------------------
| | | | | |
| (==) | (==) | \ / | \ / | \ / |
| (====) | (====) | -O(==) | -O- | -O- |
| | ///// | (====) | / \ | / \ |
| | | | | |
---------------------------------------------------
| MON | TUE | WED | THU | FRI |
---------------------------------------------------
| H 75 | H 69 | H 77 | H 80 | H 85 |
| L 57 | L 53 | L 61 | L 63 | L 66 |
---------------------------------------------------
Perhatikan bahwa "terpusat" dapat diambil secara longgar - lihat dalam contoh bagaimana penyelarasan grafis dan penyelarasan horizontal suhu agak fleksibel.
Selain itu, karena saya dari AS dan karena itu menggunakan Fahrenheit, Anda dapat dengan aman mengasumsikan bahwa suhu semua dua digit, jadi 9 < t < 100
.
I / O dan Aturan
Contoh I / O di sini menunjukkan contoh diagram di atas.
Input dapat diambil dalam format apa pun yang masuk akal dan dengan metode apa pun yang praktis . Misalnya,
1) Anda bisa menggunakan angka untuk hari-hari dalam seminggu, suhu tinggi dan rendah, dan empat kondisi, dan mengambil input sebagai lima tupel, seperti[0, 75, 57, 2], [1, 69, 53, 3], ...
2) Anda bisa mengambil input sebagai lima tupel menggunakan kata-kata, seperti['MON', 75, 57, 'CLOUDY'], ['TUE', 69, 53, 'RAINY'] ...
3) Anda dapat mengambil input hanya pada hari pertama, dan daftar suhu tinggi, daftar suhu rendah, dan daftar kondisi, seperti1, [75, 69, ...], [57, 53, ...], [2, 3, ...]
4) dll.Leading / trailing newlines atau spasi putih lainnya adalah opsional, asalkan karakternya berbaris dengan tepat.
- Program lengkap atau fungsi dapat diterima. Jika suatu fungsi, Anda dapat mengembalikan output daripada mencetaknya.
- Output bisa ke konsol, dikembalikan sebagai daftar string, dikembalikan sebagai string tunggal, dll.
- Celah standar dilarang.
- Ini adalah kode-golf sehingga semua aturan golf biasa berlaku, dan kode terpendek (dalam byte) menang.
Jawaban:
Emojicode ,
1202974 bytesMengambil input sebagai daftar daftar bilangan bulat dalam format di
condition day high low
mana kondisi adalah bilangan bulat antara 0 dan 4. Coba online!sumber
JavaScript (ES8),
304263222 byteMengambil input sebagai array dari 5
[w,d,h,l]
entri, di mana d adalah hari sebagai string dan w , h , l adalah bilangan bulat yang mewakili cuaca (0-diindeks, dengan 0 = cerah), masing-masing suhu tinggi dan suhu rendah. Mengembalikan array string.Demo
Tampilkan cuplikan kode
Bagaimana?
Kami mendefinisikan:
L = ',0,04,05,06,0,,01,,0H 2,0L 3,'.split(',')
Array string yang menggambarkan setiap baris papan, di mana:
"| "
W = ' (==),(====),/////,\\ /,-O(==), \\ /, -O-, / \\,'.split(',')
Array string yang menggambarkan pola indikator grafis.
P = '765143810210'
String yang menggambarkan indeks pola dalam W untuk setiap indikator grafis, dikelompokkan berdasarkan 3 dan disimpan dalam urutan terbalik.
Fungsi utama sekarang dibaca sebagai:
sumber
Arang ,
11094 byteCobalah online! Tautan adalah untuk mengucapkan versi kode. Sunting: Disimpan 16 byte dengan menghindari pengulangan cloud. Penjelasan:
Cetak kolom sebelah kiri
|
s.Ulangi selama 5 hari.
Masukkan kondisi cuaca, beri nomor 0 hingga 3 menggunakan urutan yang sama dengan pertanyaan.
Jika kondisi cuaca tidak cerah:
Jika kondisi cuaca mendung sebagian maka cetak sebagian matahari.
Cetak awan.
Jika cuaca hujan maka cetaklah.
Kalau tidak cetak matahari.
Baca dan cetak hari itu.
Loop dan masukan dan cetak suhu.
Cetak kolom
|
s.Loop atas karakter
6
,2
,3
dan1
.Cetak satu baris
-
s.Keluarkan karakter ke integer dan siap untuk mencetak baris berikutnya.
sumber
Python 3,
636610534464379 byteInput Format: - Daftar pertama mengambil kondisi cuaca hari -
0 - Cerah
1 - Berawan sebagian
2 - Berawan
3 - Hujan.
Daftar kedua dan ketiga masing-masing mengambil suhu tertinggi dan terendah (sebagai string). Jangan melakukan apa pun dengan daftar keempat - terutama untuk menyimpan hari dalam seminggu.
Cobalah secara Online
Catatan: - Terima kasih sangat khusus kepada Mr.XCoder, ovs dan pizzapants184 untuk membantu mengurangi banyak byte.
sumber
Bersih , 328 byte
Cobalah online!
Sebagai fungsi parsial literal, mengambil
[[Int]]
dan kembaliString
.sumber