Pengantar:
Di belahan bumi utara (yaitu Eropa, Amerika Utara, dll.), Musim dibagi seperti ini:
- Musim semi: Maret, April, Mei
- Musim panas: Juni, Juli, Agustus
- Musim Gugur: September, Oktober, November
- Musim Dingin: Desember , Januari Februari
Di belahan bumi selatan namun (yaitu Australia, Amerika Selatan, dll), musim dibagi seperti ini:
- Spring: September, Oktober, November
- Musim Panas: Desember, Januari, Februari
- Autumn: Maret, April, Mei
- Musim Dingin: Juni Juli Agustus
Perbedaan ini disebabkan oleh posisi matahari mengenai ekuator, di mana belahan utara dan selatan memiliki musim yang berlawanan.
Memasukkan:
Dalam tantangan ini, kami akan mengambil dua input:
- Satu untuk bulan (
1 <= m <= 12atau0 <= m <= 11) (contoh dan kasus uji semuanya diindeks 1). - Dan satu untuk lima 'posisi-kelompok' di garis lintang Bumi (
-2 <= p <= 2), di mana-2Antartika,-1adalah belahan bumi selatan tidak termasuk Antartika,0adalah daerah tropis di dekat khatulistiwa,1adalah belahan bumi utara tidak termasuk Arktik, dan2merupakan kutub Utara.
Meskipun Arktik, Antartika dan Tropis tentu saja masih memiliki musim, untuk tantangan ini kita akan mengatakan Arktik dan Antartika dalam keadaan konstanWinter, dan Tropis dalam keadaan konstanSummer.
Di sini representasi visual dari lima kelompok ini, di mana -2Lingkaran Antartika; -1antara Tropic of Capricorn dan Lingkaran Antartika; 0antara Tropic of Capricorn dan Tropic of Cancer; 1antara Lingkaran Arktik dan Tropic of Cancer; dan -2Lingkaran Arktik.

Sumber: COSMOS - Ensiklopedia Astronomi SAO
Keluaran:
Salah satu Spring, Summer, Autumn, atau Winter, berikut aturan-aturan ini:
- Apakah posisi input
2atau-2(Arktik atau Antartika), selalu keluaranWinter. - Apakah posisi input
0(Tropics), selalu keluaranSummer. - Apakah input posisi
1(belahan bumi utara), output salah satu dari empat musim berdasarkan input bulan:Spring(m = [3,5]);Summer(m = [6,8]);Autumn(m = [9,11]);Winter(m = 12 or m = [1,2]). - Apakah input posisi
-1(belahan bumi selatan), output salah satu dari empat musim berdasarkan input bulan:Spring(m = [9,11]);Summer(m = 12 or m = [1,2]);Autumn(m = [3,5]);Winter(m = [6,8]).
Aturan tantangan:
- Output apapun empat nilai yang berbeda pilihan Anda menunjukkan
Spring,Summer,Autumn, atauWinter(sebutkan apa yang telah Anda digunakan dalam jawaban Anda).
-15 byte bonus jika Anda keluaranSpring,Summer,Autumn, atauWintersebagai teks (case-sensitive, sehingga dapat sepenuhnya huruf kecil atau sepenuhnya huruf besar juga, bukan judul-kasus digunakan). - Input bulan dapat dalam format apa pun yang masuk akal. Dapat berupa bilangan bulat 0-indexed atau 1-indexed, Date-object, Month-String, dll.
- Masukan posisi akan selalu menjadi salah satu dari ini mungkin lima input
-2,-1,0,1,2.
Aturan umum:
- Ini adalah kode-golf , jadi jawaban tersingkat dalam byte menang.
Jangan biarkan bahasa kode-golf mencegah Anda memposting jawaban dengan bahasa non-codegolf. Cobalah untuk memberikan jawaban sesingkat mungkin untuk bahasa pemrograman 'apa pun'. - Aturan standar berlaku untuk jawaban Anda, jadi Anda diperbolehkan menggunakan STDIN / STDOUT, fungsi / metode dengan parameter yang tepat dan tipe pengembalian, program penuh. Panggilanmu.
- Celah default tidak diperbolehkan.
- Jika memungkinkan, silakan tambahkan tautan dengan tes untuk kode Anda.
- Juga, silakan tambahkan penjelasan jika perlu.
Kasus uji:
Position 1-indexed Month Output
-2 8 (August) Winter
-2 12 (December) Winter
-1 3 (March) Autumn
-1 5 (May) Autumn
-1 8 (August) Winter
-1 12 (December) Summer
0 1 (January) Summer
0 7 (July) Summer
1 1 (January) Winter
1 4 (April) Spring
1 7 (July) Summer
1 12 (December) Winter
2 2 (February) Winter
2 9 (September) Winter