Introduction:
Dans l' hémisphère nord (Europe, Amérique du Nord, etc.), les saisons sont réparties comme suit:
- printemps: mars, avril, mai
- été: juin, juillet, août
- automne: septembre, octobre, novembre
- hiver: décembre , Janvier février
Dans l' hémisphère sud , cependant ( à savoir l' Australie, Amérique du Sud, etc.), les saisons sont réparties comme suit:
- Printemps: Septembre, Octobre, Novembre
- Été: Décembre, Janvier, Février
- Automne: Mars, Avril, Mai
- Hiver: Juin Juillet aout
Cette différence est due à la position du soleil par rapport à l'équateur, où les hémisphères nord et sud ont des saisons opposées.
Contribution:
Dans ce défi, nous prendrons deux entrées:
- Un pour le mois (
1 <= m <= 12
ou0 <= m <= 11
) (les exemples et les cas de test sont tous indexés 1). - Et un pour les cinq `` groupes de position '' aux latitudes de la Terre (
-2 <= p <= 2
), où se-2
trouve l'Antarctique,-1
est l'hémisphère sud à l'exclusion de l'Antarctique,0
les Tropiques à proximité de l'équateur,1
l'hémisphère nord à l'exclusion de l'Arctique, et2
est L'arctic.
Bien que l'Arctique, l'Antarctique et les Tropiques aient bien sûr des saisons, pour ce défi, nous dirons que l'Arctique et l'Antarctique sont dans un état constantWinter
et les Tropiques dans un état constantSummer
.
Voici une représentation visuelle de ces cinq groupes, où se -2
trouve le cercle Antarctique; -1
entre le tropique du Capricorne et le cercle Antarctique; 0
entre le tropique du Capricorne et le tropique du Cancer; 1
entre le cercle polaire arctique et le tropique du cancer; et -2
le cercle polaire arctique.
Source: COSMOS - L'Encyclopédie SAO d'astronomie
Production:
L' un des Spring
, Summer
, Autumn
ou Winter
, suivant ces règles:
- Est la position entrée
2
ou-2
(Arctique ou Antarctique), toujours sortieWinter
. - Est l'entrée de position
0
(Tropics), toujours sortieSummer
. - Est la position entrée
1
(hémisphère nord), sortie l'une des quatre saisons en fonction de l'entrée du mois:Spring
(m = [3,5]
);Summer
(m = [6,8]
);Autumn
(m = [9,11]
);Winter
(m = 12 or m = [1,2]
). - Est la position entrée
-1
(hémisphère sud), sortie l'une des quatre saisons en fonction de l'entrée mois:Spring
(m = [9,11]
);Summer
(m = 12 or m = [1,2]
);Autumn
(m = [3,5]
);Winter
(m = [6,8]
).
Règles du défi:
- Sortie des quatre valeurs distinctes de votre choix indiquant
Spring
,Summer
,Autumn
ouWinter
(s'il vous plaît DEFINISSEZ vous avez utilisé dans votre réponse).
-15 octets de bonus si vous sortieSpring
,Summer
,Autumn
ouWinter
sous forme de texte (insensible à la casse, peut donc être entièrement en minuscules ou en majuscules et entièrement, au lieu du titre cas utilisé). - La saisie du mois peut être dans n'importe quel format raisonnable. Peut être un entier indexé 0 ou indexé 1, un objet Date, une chaîne Mois, etc.
- Entrée de position sera toujours l' un de ces cinq possibles entrées
-2
,-1
,0
,1
,2
.
Règles générales:
- C'est le code-golf , donc la réponse la plus courte en octets l'emporte.
Ne laissez pas les langues de golf de code vous décourager de publier des réponses avec des langues non-golfeur de code. Essayez de trouver une réponse aussi courte que possible pour «n'importe quel» langage de programmation. - Des règles standard s'appliquent à votre réponse, vous êtes donc autorisé à utiliser STDIN / STDOUT, des fonctions / méthodes avec les paramètres appropriés et des programmes complets de type retour. Ton appel.
- Les failles par défaut sont interdites.
- Si possible, veuillez ajouter un lien avec un test pour votre code.
- Veuillez également ajouter une explication si nécessaire.
Cas de test:
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
Réponses:
Rubis ,
33 2725 octetsEssayez-le en ligne!
Les valeurs de retour sont:
0 -> hiver
1 -> ressort
2 -> été
3 -> automne
la source
Python 2 , 29 octets
Essayez-le en ligne!
Un port de l'approche Ruby de GB , qui s'est avéré être quelques octets plus court que le mien:
32 octets
Essayez-le en ligne!
Une fonction anonyme qui renvoie les saisons sous forme de chiffres de 0 à 3, où elles représentent l'été, l'automne, l'hiver et le printemps dans cet ordre.
Quant à l'impression des noms de saison réels:
63 - 15 = 48 octets
Essayez-le en ligne!
Il y a la chaîne combinée si quelqu'un le veut.
la source
C (gcc) ,
7875 (-15 bonus) = 60 octetsUtilisation de 1 mois.
Edit: Réorganisé les opérateurs mathématiques et réduit.
Essayez-le en ligne!
la source
(++a+m/3)%4
→++a+m/3&3
. En outre,a*a
est-il étrange précisément quanda
, donc la vérificationa&1
devrait être bonne, non?05AB1E , 26 - 15 = 11 octets
Utilise l'approche trouvée par GB
Essayez-le en ligne! ou comme suite de tests
la source