Вступление
Брискола - одна из самых популярных карточных игр Италии. Это увлекательная карточная игра, похожая на Бридж. Брискола хорошо известна своей причудливой системой очков. В этом задании с двумя картами вы получите, наберет ли первая больше, меньше или столько же очков, сколько у второй в системе очков Брисколы.
Вызов
Брискола играется с колодой итальянских игральных карт. В колоде сорок карт, по 1-10 в каждой из четырех мастей: кубки, мечи, дубинки и монеты. Мы будем игнорировать костюмы для этого испытания. Карты 2-7 - это цифровые карты, а карты 8, 9 и 10 - это лицевые карты. Рейтинг карт, от наивысшего к низшему, таков:
+------------------------+-------------+
| 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 |
+------------------------+-------------+
Спасибо Orphevs за хороший стол! :)
Ваша задача - создать полную программу или функцию, которая принимает два числа 1-10, представляющих ранги карт, и выводит (или возвращает), больше или меньше значение точки первой карты, меньше или равно значению точки вторая карта Дополнительные замечания:
- Ваша программа может выводить любые три значения, чтобы указать меньше, больше и равно, однако она должна выводить одно и то же значение для каждого условия каждый раз.
- Ваша программа может использовать любые значения по умолчанию для ввода-вывода .
- Стандартные лазейки запрещены.
- Допускается либо полная функция, либо программа.
Этот вопрос относится к коду-гольфу , поэтому побеждает меньшее количество байт.
Вот несколько примеров входов и выходов:
1, 4 => больше чем (туз набирает 11 очков, 4 балла 0 очков, первое больше второго. 8, 3 => меньше (8 баллов 2, 3 балла 10, первый меньше второго. 5, 2 => равно (5 и 2 оба балла 0)
Если у вас есть какие-либо вопросы, не стесняйтесь спрашивать. Удачи!
источник
Ответы:
Желе ,
1211 байтПопробуйте онлайн!
Выходы
0
для равных,-1
для более чем и1
для менее чем. Использует индекс кодовой страницы,“®µ½¤¢‘
который оценивается как[8, 9, 10, 3, 1]
.Вводит в виде пары карт. Используйте
1,2
в качестве примера.источник
MATL , 12 байт
Ввод представляет собой массив из двух чисел. Выход
-1
,0
и ,1
соответственно , для более , равняться или меньше .Попробуйте онлайн!
объяснение
Рассмотрим ввод
[1 4]
в качестве примера.источник
JavaScript (ES6), 42 байта
Принимает два ранга в карри синтаксиса
(a)(b)
. Возвращает 1 для более чем , -1 для менее или 0 для равных .Попробуйте онлайн!
Используя формулу, 48 байтов
Это определенно дольше, чем использование справочной таблицы, но также немного интереснее.
Тот же формат ввода / вывода.
Попробуйте онлайн!
Как?
Теперь мы хотим преобразовать оставшиеся ненулевые значения таким образом, чтобы они могли быть отсортированы в правильном порядке. Мы используем:
источник
Japt ,
252116 байтПопробуйте онлайн!
источник
-g
флаг, чтобы сохранить 2 байта.-g
флаг, если вы хотите попробовать его).[8,9,10,3,1]
преобразование массива и базы)Japt
-g
, 13 байтВыходы
-1
для>
,1
для<
и0
для===
.Попробуйте или выполните несколько тестов (вторая строка дублирует функциональность
-g
флага, чтобы позволить использовать флаги для обработки нескольких входов)объяснение
источник
R 35 байт
Попробуйте онлайн!
Программа возвращается
2
для'greater than'
,1
для'less than'
,1.5
для'equal'
Пояснение:
источник
rank(c(6,0,5,1:4*0,1:3)[scan()])[1]
(полная программа) сэкономит вам 6 байтовJava 8,
6966 байтЛямбда, принимающая параметры в синтаксисе карри, порт JavaScript- ответа Арно .
Возвращает
0.0
равно ,1.0
для больше чем и-1.0
для меньше чем . Попробуйте это онлайн здесь .Спасибо Кевину Круйссену за игру в гольф 3 байта.
источник
"05040000123".charAt(...)
вместо целочисленного массива:a->b->Math.signum("05040000123".charAt(a)-"05040000123".charAt(b))
MarioLANG ,
578 548530 байтПопробуйте онлайн!
Объяснение:
0
(без ввода). Это предполагает, что в качестве входных данных будет только два строго положительных значения.[1-5]
чтобы помочь вычислить, какая карта имеет наибольшее количество баллов.1
если первое значение точки больше второго,-1
если второе значение точки больше первого и0
если значения точек совпадают.источник
Python 2 , 41 байт
Выходы 1 для более чем, -1 для менее чем, 0 для равных.
Попробуйте онлайн!
источник
C (gcc) , 57 байтов
Возвращает обычное значение [-1..1] для <, = и> соответственно.
Попробуйте онлайн!
источник
*s=L"...
вместоchar*s="...
иa=(s[a]>s[b])-(s[a]<s[b])
вместоa=s[a];b=s[b];b=(a>b)-(a<b)
05AB1E , 14 байтов
Возвращает
1
,-1
или0
для более чем; меньше, чем; или равны соответственно.Попробуйте онлайн или проверьте все контрольные примеры .
Объяснение:
источник
PHP ,
5145 байтПопробуйте онлайн!
Чтобы запустить это:
Пример:
Примечание. В этом коде используется оператор космического корабля PHP 7 . Так что он не будет работать на любой версии PHP до 7.
Выход:
card1 > card2
)card1 == card2
)card1 < card2
)Как?
То же, что и во многих других ответах, но в PHP. Создает карту значений для карт и сравнивает значения карт из нее. Положение значения на карте совпадает с номером карты.
источник
Javascript ES2016 +, 73 символа
Не самое короткое, но надеюсь интересное из-за математики и переполнения :)
И другая версия с 74 символами, к сожалению:
Тест
Откройте консоль браузера перед запуском
источник