pengantar
Baru-baru ini, saya dan beberapa teman saya memutuskan untuk memainkan beberapa kartu, dan salah satunya menyarankan permainan 'Irish Snap', yang merupakan inspirasi untuk tantangan ini. Namun, saya kemudian mengetahui bahwa gim ini memiliki banyak aturan berbeda yang dapat Anda mainkan, beberapa di antaranya tercantum di sini . Aturan yang ada dalam tantangan ini saat ini tidak tercantum di halaman itu, maka namanya, 'Aturan Varian'
Tantangan
Diberikan array 3 kartu, menghasilkan nilai kebenaran atau falsey tergantung pada apakah mereka membuat snap yang valid dalam permainan snap Irlandia.
Memasukkan
Input akan terdiri dari 3 angka, mulai dari 1-13 inklusif, dengan 1 mewakili ace, 11 mewakili jack, 12 mewakili seorang ratu dan 13 mewakili seorang raja. Input dapat dalam urutan atas, tengah, bawah.
Aturan
4 kriteria berbeda untuk jika kartu membuat jepret Irlandia adalah:
- Kartu atas dan tengah adalah sama
- Kartu atas dan tengah memiliki perbedaan satu
- Kartu atas dan bawah adalah sama
- Kartu atas dan bawah memiliki perbedaan satu
Jika salah satu dari kriteria ini dipenuhi, Anda harus menampilkan nilai yang benar. Selain itu, untuk dua kriteria yang mengharuskan kartu memiliki perbedaan satu, itu 'membungkus', yang berarti bahwa kartu as dan raja dianggap memiliki perbedaan satu, dan sebaliknya.
Uji Kasus
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
sumber
top, [middle, bottom]
?0
untukfalse
dan bilangan bulat lainnya untuktrue
atau, bahkan, bilangan bulat negatif untukfalse
atau bilangan bulat positif apa pun untuktrue
?Jawaban:
Python 3 , 38 byte
Cobalah online!
Mengembalikan set non-kosong (benar) jika valid, set kosong (falsey) jika tidak. Mengambil input dalam urutan teratas-menengah-bawah, tetapi dapat disusun ulang untuk ukuran kode yang sama.
sumber
Perl 6 , 16 byte
Cobalah online!
Anonim, lambda apa pun yang menerima input
top, middle, bottom
dan mengembalikan Junction yang mengevaluasi True atau Falsesumber
<
, ini adalah kesempatan yang sempurna untuk memiliki hati yang tersenyum.05AB1E ,
76 byteCobalah online!
Mengambil input sebagai
[middle, bottom], top
.Hanya 1 yang benar di 05AB1E. 0! dan 1! keduanya 1, sementara tidak ada nomor lain yang memiliki faktorial 1.
sumber
J , 12 byte
Cobalah online!
Mengambil bawah tengah sebagai arg kiri, atas sebagai arg kanan.
jawaban asli mengambil input sebagai satu daftar
J , 24 byte
Cobalah online!
#:@3 5
Angka 3 dan 5 dalam biner adalah0 1 1
dan1 0 1
yang merupakan topeng untuk kartu tengah / atas dan bawah / atas(12||@-/)@#
Kami menyaring input dengan topeng-topeng itu, mengambil nilai abs dari perbedaan yang dihasilkan, kemudian sisanya ketika dibagi dengan 12 (untuk kasus ace-king)1 e.2>
Apakah salah satu dari angka yang dihasilkan kurang dari 2, yaitu 0 atau 1?sumber
JavaScript (ES6), 29 byte
Mengambil input sebagai
([bottom, middle])(top)
.Outputnya terbalik.
Cobalah online!
JavaScript (ES6),
3730 byteDisimpan 1 byte berkat @Grimy
Mengambil input sebagai
([bottom, middle])(top)
.Cobalah online!
sumber
%144
bisa jadi%72
%13
juga akan berhasil.Arang , 12 byte
Cobalah online! Jawaban Port of @ Grimy. Mengambil input sebagai tiga nilai terpisah, bawah, tengah, atas, dan keluaran menggunakan format Boolean default
-
untuk true, tidak untuk false. Penjelasan:sumber
Perl 5
-ap
, 31 byteCobalah online!
Memasukkan:
Sebenarnya, urutan tengah dan bawah tidak masalah.
Keluaran:
0
untuk false;1
itu benarsumber
Pyth ,
1211 byteMengambil input sebagai
[bottom, top, middle]
atau[middle, top, bottom]
(keduanya berfungsi). Keluaran[]
(Falsy dalam Pyth) jika tidak ada snap yang valid, array non-kosong sebaliknya.Cobalah online!
Jika diperlukan nilai kebenaran / kesalahan yang konsisten, tambahkan
.A
di depan untuk +2 byte. Maka output akan menjadiTrue
atauFalse
.Penjelasan
Sunting: -1 dengan pendekatan yang berbeda
sumber
Jelly , 6 byte
Cobalah online!
sumber
C (gcc) ,
4743 byteCobalah online!
sumber
Japt , 7 byte
Cobalah
sumber
Jelly , 6 byte
Cobalah online!
Tautan monadik mengambil daftar
[middle, top, bottom]
sebagai argumennya dan kembali1
untuk snap dan0
tanpa snap.sumber
T-SQL 2008, 40 byte
Cobalah online
sumber
[R], 23 byte
mengambil input sebagai a = c (bawah, atas, tengah):
any(abs(diff(a))%%12<2)
sumber