Вступление
Недавно я и пара моих друзей решили сыграть в несколько карт, и одна из них предложила игру «Irish Snap», которая послужила вдохновением для этого испытания. Однако позже я узнал, что в игре есть множество различных правил, с которыми вы можете играть, некоторые из которых перечислены здесь . Правила этой задачи в настоящее время не перечислены на этой странице, отсюда и название «Правила варианта».
Соревнование
Учитывая массив из 3 карт, выведите истинное или ложное значение в зависимости от того, сделали ли они правильную комбинацию в игре с ирландской картой.
вход
Входными данными будет массив из 3 чисел в диапазоне от 1 до 13 включительно, где 1 обозначает туз, 11 обозначает домкрат, 12 обозначает ферзь и 13 обозначает король. Ввод может быть в любом порядке сверху, снизу и сверху.
правила
4 различных критерия для ирландской карты:
- Верхняя и средняя карты одинаковы
- Верхняя и средняя карты имеют разницу в один
- Верхняя и нижняя карты одинаковы
- Верхняя и нижняя карты имеют разницу в один
Если какой-либо из этих критериев удовлетворяется, вы должны вывести истинное значение. Кроме того, для двух критериев, которые требуют, чтобы карты имели разность в один, он «оборачивается», то есть считается, что туз и король имеют разницу в один, и наоборот.
Тестовые случаи
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
источник
top, [middle, bottom]
?0
дляfalse
и любое другое целое число дляtrue
или, даже, любое отрицательное целое число дляfalse
или любое положительное целое число дляtrue
?Ответы:
Python 3 , 38 байт
Попробуйте онлайн!
Возвращает непустое множество (truey), если оно допустимо, пустое множество (falsey), если нет. Вводит данные по порядку сверху-снизу-внизу, но может быть переставлен для того же размера кода.
источник
Perl 6 , 16 байт
Попробуйте онлайн!
Анонимный лямбда, который принимает входные данные как
top, middle, bottom
и возвращает Junction, который оценивается как True или Falseисточник
<
, это был идеальный шанс получить сердечный смайлик.05AB1E ,
76 байтовПопробуйте онлайн!
Принимает входные данные как
[middle, bottom], top
.Только 1 правдив в 05AB1E. 0! и 1! оба равны 1, в то время как никакое другое число не имеет факториал 1.
источник
J , 12 байт
Попробуйте онлайн!
Принимая нижнюю середину как левый арг, верх как правый арг.
исходный ответ с учетом одного списка
J , 24 байта
Попробуйте онлайн!
#:@3 5
Числа 3 и 5 в двоичном виде0 1 1
и1 0 1
являются масками для средней / верхней и нижней / верхней карт соответственно(12||@-/)@#
Мы отфильтровываем входные данные с помощью этих масок, принимаем значение abs получаемых разностей, а затем остаток при делении на 12 (для случая туза)1 e.2>
любое из полученных чисел меньше 2, т. е. 0 или 1?источник
JavaScript (ES6), 29 байт
Принимает вход как
([bottom, middle])(top)
.Выход инвертирован.
Попробуйте онлайн!
JavaScript (ES6),
3730 байтСохранено 1 байт благодаря @Grimy
Принимает вход как
([bottom, middle])(top)
.Попробуйте онлайн!
источник
%144
может быть%72
%13
также будет работать.Древесный уголь , 12 байт
Попробуйте онлайн! Порт ответа @ Grimy. Принимает входные данные как три отдельных значения: нижнее, среднее, верхнее и выходные, используя логический формат Charcoal по умолчанию
-
для true, ничего для false. Объяснение:источник
Perl 5
-ap
, 31 байтПопробуйте онлайн!
Входные данные:
На самом деле порядок середины и дна не имеет значения.
Выход:
0
за ложь;1
для истинногоисточник
Пиф ,
1211 байтовПринимает ввод как
[bottom, top, middle]
или[middle, top, bottom]
(оба работают). Выходы[]
(Falsy в Pyth) , если нет в силе оснастки, непустой массив иначе.Попробуйте онлайн!
Если требуется согласованное значение «истина / ложь», добавьте
.A
вперед +2 байта. Тогда вывод будетTrue
илиFalse
.объяснение
Изменить: -1 с другим подходом
источник
Желе , 6 байт
Попробуйте онлайн!
источник
C (gcc) ,
4743 байтаПопробуйте онлайн!
источник
Japt , 7 байт
Попытайся
источник
Желе , 6 байт
Попробуйте онлайн!
Монадическая ссылка, принимающая список в
[middle, top, bottom]
качестве аргумента и возвращающая1
для привязки и0
без привязки.источник
T-SQL 2008, 40 байт
Попробуйте онлайн
источник
[R], 23 байта
принимает входные данные как a = c (низ, верх, середина):
any(abs(diff(a))%%12<2)
источник