Introducción
Briscola es uno de los juegos de cartas más populares de Italia. Es un juego de cartas con trucos, como Bridge. Briscola es bien conocida por su extraño sistema de puntos. En este desafío, con dos cartas, obtendrá si la primera obtiene más, menos o el mismo número de puntos que la segunda en el sistema de puntos de Briscola.
Desafío
Briscola se juega con una baraja de naipes italianos. Hay cuarenta cartas en una baraja, 1-10 en cada uno de los cuatro palos: tazas, espadas, garrotes y monedas. Ignoraremos los trajes para este desafío. Las tarjetas 2 - 7 son las tarjetas numéricas, y las tarjetas 8, 9 y 10 son las tarjetas faciales. La clasificación de las tarjetas, de mayor a menor, son:
+------------------------+-------------+
| Cards, by Rank | Point Value |
+------------------------+-------------+
| Ace (1) | 11 |
| Three (3) | 10 |
| King (10) | 4 |
| Knight (9) | 3 |
| Jack (8) | 2 |
| Numeric Cards (2, 4-7) | 0 |
+------------------------+-------------+
Gracias a Orphevs por la buena mesa! :)
Su tarea es crear un programa o función completa que acepte dos números del 1 al 10 que representen los rangos de las tarjetas, y genere (o devuelva) si el valor en puntos de la primera tarjeta es mayor, menor o igual que el valor en puntos del segunda tarjeta Notas adicionales:
- Su programa puede generar cualquiera de los tres valores para indicar menor, mayor que e igual a, sin embargo, debe generar el mismo valor para cada condición cada vez.
- Su programa puede utilizar cualquier defecto IO .
- Las lagunas estándar no están permitidas.
- Se permite una función completa o un programa.
Esta pregunta es code-golf , por lo que gana el conteo de bytes más bajo.
Aquí hay algunas entradas y salidas de muestra:
1, 4 => más que (el as obtiene 11 puntos, 4 obtiene 0 puntos, el primero es más que el segundo. 8, 3 => menor que (8 puntajes 2, 3 puntajes 10, el primero es menor que el segundo. 5, 2 => igual (5 y 2 ambos puntúan 0)
Si tiene alguna pregunta, no dude en preguntar. ¡Buena suerte!
fuente
Respuestas:
Jalea ,
1211 bytesPruébalo en línea!
Salidas
0
para igual,-1
para mayor que y1
para menor que. Utiliza el índice de página de códigos“®µ½¤¢‘
que evalúa[8, 9, 10, 3, 1]
.Toma entrada como un par de cartas. Úselo
1,2
como ejemplo.fuente
MATL , 12 bytes
La entrada es una matriz de dos números. La salida es
-1
,0
y1
respectivamente para más de , igual o menor que .Pruébalo en línea!
Explicación
Considere la entrada
[1 4]
como un ejemplo.fuente
JavaScript (ES6), 42 bytes
Toma las dos filas en sintaxis curry
(a)(b)
. Devuelve 1 para más de , -1 para menos de o 0 para igual .Pruébalo en línea!
Usando una fórmula, 48 bytes
Esto es definitivamente más largo que usar una tabla de búsqueda, pero también un poco más interesante.
Mismo formato de E / S.
Pruébalo en línea!
¿Cómo?
Ahora queremos transformar los valores restantes distintos de cero de tal manera que se puedan ordenar en el orden correcto. Usamos:
fuente
Japt ,
252116 bytesPruébalo en línea!
fuente
-g
bandera para guardar 2 bytes.-g
bandera, si quieres probarla).[8,9,10,3,1]
conversión de matriz y base)Japt
-g
, 13 bytesSalidas
-1
para>
,1
para<
y0
para===
.Pruébelo o ejecute varias pruebas (la segunda línea replica la funcionalidad del
-g
indicador para permitir que los indicadores se utilicen para procesar múltiples entradas)Explicación
fuente
R , 35 bytes
Pruébalo en línea!
El programa devuelve
2
para'greater than'
,1
para'less than'
,1.5
para'equal'
Explicación
fuente
rank(c(6,0,5,1:4*0,1:3)[scan()])[1]
(programa completo) le ahorrará 6 bytesJava 8,
6966 bytesLambda toma parámetros en la sintaxis curry, puerto de la respuesta JavaScript de Arnauld .
Devuelve
0.0
igual ,1.0
para mayor que y-1.0
para menor que . Pruébelo en línea aquí .Gracias a Kevin Cruijssen por jugar al golf 3 bytes.
fuente
"05040000123".charAt(...)
lugar de la matriz de enteros:a->b->Math.signum("05040000123".charAt(a)-"05040000123".charAt(b))
MarioLANG ,
578 548530 bytesPruébalo en línea!
Explicación:
0
(sin entrada). Esto supone que solo habrá dos valores estrictamente positivos como entrada.[1-5]
para ayudar a calcular qué tarjeta tiene la mayor cantidad de puntos.1
si el primer valor de punto es mayor que el segundo,-1
si el segundo valor de punto es mayor que el primero y0
si los valores de punto son iguales.fuente
Python 2 , 41 bytes
Salidas 1 para más de, -1 para menos de, 0 para igual.
Pruébalo en línea!
fuente
C (gcc) , 57 bytes
Devuelve el [-1..1] habitual para <, = y>, respectivamente.
Pruébalo en línea!
fuente
*s=L"...
lugar dechar*s="...
y ena=(s[a]>s[b])-(s[a]<s[b])
lugar dea=s[a];b=s[b];b=(a>b)-(a<b)
05AB1E , 14 bytes
Devoluciones
1
,-1
o0
por más de; menos que; o igual respectivamente.Pruébelo en línea o verifique todos los casos de prueba .
Explicación:
fuente
PHP ,
5145 bytesPruébalo en línea!
Para ejecutarlo:
Ejemplo:
Nota: Este código usa el operador de nave espacial PHP 7 . Por lo tanto, no funcionará en ninguna versión de PHP anterior a la 7.
Salida:
card1 > card2
)card1 == card2
)card1 < card2
)¿Cómo?
Igual que el enfoque utilizado en muchas otras respuestas, pero en PHP. Crea un mapa de valores para tarjetas y compara los valores de las tarjetas a partir de ellas. La posición del valor en el mapa es la misma que el número de tarjeta.
fuente
Javascript ES2016 +, 73 caracteres
No es el más corto, pero espero que sea interesante debido a las matemáticas y el desbordamiento :)
Y la otra versión con 74 caracteres, desafortunadamente:
Prueba
Abra la consola del navegador antes de ejecutar
fuente