Introducción
Recientemente, un par de mis amigos y yo decidimos jugar algunas cartas, y uno de ellos sugirió el juego 'Irish Snap', que fue la inspiración para este desafío. Sin embargo, más tarde aprendí que el juego tiene muchas reglas diferentes con las que puedes jugar, algunas de las cuales se enumeran aquí . Las reglas que están en este desafío no están listadas actualmente en esa página, de ahí el nombre, 'Reglas variantes'
El reto
Dada una serie de 3 cartas, genera un valor verdadero o falso dependiendo de si hacen un complemento válido en un juego de complemento irlandés.
Entrada
La entrada será una matriz de 3 números, que van del 1 al 13 inclusive, 1 representando un as, 11 representando un gato, 12 representando una reina y 13 representando un rey. La entrada puede ser en cualquier orden de arriba, medio, abajo.
Reglas
Los 4 criterios diferentes para si las cartas hacen un snap irlandés son:
- Las cartas superiores y medias son iguales
- Las cartas superiores y medias tienen una diferencia de uno
- Las cartas superior e inferior son iguales
- Las cartas superior e inferior tienen una diferencia de uno
Si se cumple alguno de estos criterios, debe generar un valor verdadero. Además de esto, para los dos criterios que requieren que las cartas tengan una diferencia de uno, se "ajusta", lo que significa que se considera que un as y un rey tienen una diferencia de uno, y viceversa.
Casos de prueba
Input (Bottom, Middle, Top) -> Output
1 13 7 -> False
1 4 13 -> True
9 3 6 -> False
8 9 7 -> True
2 6 5 -> True
12 5 11 -> True
10 4 8 -> False
12 13 7 -> False
9 7 10 -> True
7 3 1 -> False
4 2 3 -> True
fuente
top, [middle, bottom]
?0
parafalse
y cualquier otro entero paratrue
o, incluso, un entero negativo parafalse
o cualquier entero positivo paratrue
?Respuestas:
Python 3 , 38 bytes
Pruébalo en línea!
Devuelve un conjunto no vacío (verdadero) si es válido, conjunto vacío (falsey) si no. Toma la entrada en orden superior-medio-inferior, pero se puede reorganizar para el mismo tamaño de código.
fuente
Perl 6 , 16 bytes
Pruébalo en línea!
Anónimo, cualquier lambda que tome datos como
top, middle, bottom
y devuelva un cruce que se evalúe como verdadero o falsofuente
<
, esta era la oportunidad perfecta para tener un corazón sonriente.05AB1E ,
76 bytesPruébalo en línea!
Toma entradas como
[middle, bottom], top
.Solo 1 es veraz en 05AB1E. 0! ¡y 1! son ambos 1, mientras que ningún otro número tiene un factorial de 1.
fuente
J , 12 bytes
Pruébalo en línea!
Tomando el centro inferior como el argumento izquierdo, el superior como el argumento derecho.
respuesta original tomando entrada como una lista
J , 24 bytes
Pruébalo en línea!
#:@3 5
Los números 3 y 5 en binario son0 1 1
y1 0 1
cuáles son las máscaras para las tarjetas media / superior e inferior / superior respectivamente(12||@-/)@#
Filtramos la entrada con esas máscaras, tomamos el valor de abs de las diferencias resultantes, luego el resto cuando se divide por 12 (para el caso de as-rey)1 e.2>
son cualquiera de los números resultantes menores que 2, es decir, 0 o 1fuente
JavaScript (ES6), 29 bytes
Toma entrada como
([bottom, middle])(top)
.La salida está invertida.
Pruébalo en línea!
JavaScript (ES6),
3730 bytesGuardado 1 byte gracias a @Grimy
Toma entrada como
([bottom, middle])(top)
.Pruébalo en línea!
fuente
%144
podría ser%72
%13
también funcionaría.Carbón de leña , 12 bytes
Pruébalo en línea! Puerto de la respuesta de @ Grimy. Toma la entrada como tres valores separados inferior, medio, superior y salidas utilizando el formato booleano predeterminado de Charcoal
-
para verdadero, nada para falso. Explicación:fuente
Perl 5
-ap
, 31 bytesPruébalo en línea!
Entrada:
En realidad, el orden del medio y el fondo no importa.
Salida:
0
por falso1
de verdadfuente
Pyth ,
1211 bytesToma entrada como
[bottom, top, middle]
o[middle, top, bottom]
(ambos funcionan). Salidas[]
(Falsy in Pyth) si no hay un snap válido, de lo contrario, una matriz no vacía.Pruébalo en línea!
Si se requiere un valor de verdad / falsedad consistente, agregue
.A
al frente para +2 bytes. Entonces la salida seráTrue
oFalse
.Explicación
Editar: -1 con un enfoque diferente
fuente
Jalea , 6 bytes
Pruébalo en línea!
fuente
C (gcc) ,
4743 bytesPruébalo en línea!
fuente
Japt , 7 bytes
Intentalo
fuente
Jalea , 6 bytes
Pruébalo en línea!
Un enlace monádico que toma la lista
[middle, top, bottom]
como argumento y regresa1
para snap y0
para no snap.fuente
T-SQL 2008, 40 bytes
Pruébalo en línea
fuente
[R], 23 bytes
toma la entrada como a = c (abajo, arriba, en el medio):
any(abs(diff(a))%%12<2)
fuente