Objectif
Étant donné que les World Series sont à nos portes, j'ai besoin d'un programme capable de lire les scores de la boîte et de me dire de quoi il s'agit. C'est un peu compliqué car le baseball utilise une méthode étrange pour enregistrer le score. Ils n'écrivent pas le score de l'équipe au bâton pour la manche jusqu'à ce qu'ils aient marqué un point (et continuent) ou qu'ils aient terminé leur batte. Ainsi, un 0 sur le tableau de bord signifie toujours une batte terminée. Par exemple:
Example A:
Inning| 1| 2| 3| 4| 5| 6| 7| 8| 9|
Them| 0| 0| 0| 0| 0| 2| | | |
Us| 0| 0| 2| 0| 0| 0| | | |
Example B:
Inning| 1| 2| 3| 4| 5| 6| 7| 8| 9|
Them| 0| 0| 0| 0| 0| 2| | | |
Us| 0| 0| 2| 0| 0| 1| | | |
Example C:
Inning| 1| 2| 3| 4| 5| 6| 7| 8| 9|
Them| 0| 0| 0| 0| 0| 2| | | |
Us| 0| 0| 2| 0| 0| | | | |
#Them is the Away Team, Us is the Home Team (who are the guys you root for)
- Exemple A: Nous savons que nous sommes en haut du 7e parce que Us a un 0 enregistré en bas du 6e et le haut du 7e est vide.
- Exemple B: Il peut s'agir du bas du 6e ou du haut du 7e.
- Exemple C: Il peut s'agir du haut ou du bas du 6e.
Votre tâche consiste à retourner quelle (s) manche (s) il pourrait s'agir.
Contribution
Deux listes d'entiers non négatifs. Les listes seront supposées irrégulières, la liste de l'équipe extérieure étant de la même taille ou d'un élément plus grand par rapport à celle de l'équipe locale. Vous pouvez prendre les scores dans l'un ou l'autre ordre mais indiquer dans votre réponse si vous n'utilisez pas la valeur par défaut. C'est-à-dire, Équipe à l'extérieur puis Équipe à domicile (par défaut) ou Équipe à domicile puis Équipe à l'extérieur (inversé). Ils peuvent également être complétés avec des données fictives si vous le souhaitez, indiquez dans votre réponse si vous le faites.
Production
Une chaîne ou quelque chose d'équivalent qui identifie le numéro de manche et s'il s'agit du haut ou du bas. Par exemple 7B 8T
, B7 T8
, ['7B','8T']
sont tous très bien. S'il y a deux réponses, vous devez sortir les deux. Le format est cependant assez flexible.
Règles
- L'entrée sera toujours valide
- Les matchs peuvent prendre des manches supplémentaires indéfinies. Votre programme devrait pouvoir prendre en charge jusqu'à 255 manches.
- Les échappatoires standard sont interdites
- C'est le code-golf donc le code le plus court gagne
Cas de test
#Input:
[[],
[]]
#Output: 1T
#Input:
[[0],
[]]
#Output: 1B
#Input:
[[0,0,0,1],
[0,0,0,0]]
#Output: 5T
#Input:
[[0,0,0,1],
[0,0,0,1]]
#Output: 4B, 5T
#Input:
[[0,0,0,1,0,0,1,0,0,1],
[0,0,0,0,1,0,0,1,0,1]]
#Output: 10B, 11T
#Input:
[[0,0,0,1],
[0,0,0]]
#Output: 4T, 4B
#Input:
[[0,0,0,0],
[0,0,0]]
#Output: 4B
Réponses:
C (gcc) , 50 octets
Prend l'entrée comme pointeur vers une liste entrelacée (c.
{them#1, us#1, them#2,...}
-à-d.).Renvoie une option via une modification et l'autre via une valeur de retour.
Les valeurs négatives indiquent le bas de la manche, les valeurs positives indiquent le haut de la manche. Les zéros sont "vides". La valeur absolue de la sortie est le numéro de la manche. Ainsi,
-4,5
indique les possibilités étant en haut du cinquième et en bas du quatrième, et1,0
indique la seule possibilité étant le haut du premier.La valeur de retour de la macro peut être utilisée pour déterminer s'il y a une ou deux manches possibles; la valeur de retour est
0
s'il n'y a pas d'autre manche. Sinon, c'est le numéro de la manche.Zéro octet de code source. Utilisez ce qui suit comme indicateur de préprocesseur:
Essayez-le en ligne!
Degolf
la source
Perl 6 ,
52 4845 octets-3 octets grâce à une restructuration de nwellnhof!
Essayez-le en ligne!
Bloc de code anonyme qui prend l'entrée en deux listes, en haut puis en bas. La sortie est une liste de tuples, où le premier élément est le numéro d'entrée et le deuxième élément est True ou False, correspondant à Bottom ou Top.
Explication:
la source
R ,
10396 octetsEssayez-le en ligne!
@digEmAll a enregistré 7 octets!
Prend deux
listes devecteurs en entrée et génère un ou deux entiers représentant les manches possibles. Les entiers positifs sont le haut de la manche et les entiers négatifs sont le bas de la manche.Dans R, les entiers positifs sont vrais, donc je peux utiliser la différence de longueur comme premier argument
if()
.la source
[[
leif
remplacer car vous l'utilisez[
dans votre code.<
et^
. Je pense que[
c'était celui utilisé dans l'exemple dont je me souviens.'if'
(et supprimer{}
et déplacer à l'f=
extérieur): 96 octetsJavaScript (Node.js) , 75 octets
Essayez-le en ligne!
la source
Gelée , 11 octets
Essayez-le en ligne!
Premier élément: index de colonne basé sur 0.
Deuxième élément:
0
pour le haut,1
pour le bas.La sortie est une liste d'une ou deux paires comme spécifié ci-dessus (optimisé pour mieux le montrer). Les manches de sortie sont dans l'ordre inverse.
la source
Python 2 ,
135129126125123119 octetsEssayez-le en ligne!
-1 avec merci à @ovs
-4 merci encore à @ovs
la source
if d else"11BT"[c<1::2]
pour -3if d
Je peux voir (ne devrait pas avoir manqué ça!) Maiselse"11BT"[c<1::2]
ne sort pas plus court pour moi à moins que je manque quelque chose.if d
façon.if d
vous pouvez le faireif b
, alors vous n'avez pas besoin de stockerlen(b)
dans une variable.d
pour[d<c]
. Je ne vois pas de solution. Des idées?Python 2 , 65 octets
Essayez-le en ligne!
Imprime deux lignes, d'abord la possibilité de manche inférieure puis la première, sous forme de liste singleton. Si l'un ou l'autre n'est pas possible, cette liste est vide.
la source
Nettoyer ,
8475 octetsEssayez-le en ligne!
Définit la fonction
@ :: [Int] [Int] -> (Int, Int)
et certains assistants.Donne la sortie sous la forme
(Top, Bottom)
où un zéro signifie une possibilité nulle.la source