Trik sulap kartu sulap pertama yang saya pelajari sejak kecil adalah sebagai berikut:
- Memiliki 1 deck kartu di mana pola di bagian belakang tidak simetris secara vertikal.
- Atur semua kartu agar menghadap satu arah.
- Minta seseorang untuk, "mengambil kartu, kartu apa saja, menghafalkannya dan mengembalikannya kepada Anda".
- Lanjutkan untuk memasukkannya ke dalam dek (ke arah yang salah).
- Kocoklah dengan kuat, berikan ilusi bahwa Anda tidak akan tahu di mana kartu mereka.
- Hasilkan kartu mereka dengan takjub.
Trik ini jelas sedikit kurang berkilau di alam sekarang-a-hari, namun itu membuat tantangan yang baik. Tulis sebuah program, yang ketika tidak diberi input, mengeluarkan setumpuk kartu yang dikocok secara acak dengan salah satu kartu, dipilih secara acak, terbalik. Namun, ketika input adalah setumpuk kartu dengan satu kartu terbalik, Anda harus mengeluarkan kartu yang terbalik (dalam urutan yang benar).
Dek Kartu
Setumpuk kartu didefinisikan sebagai:
[2S,3S,4S,5S,6S,7S,8S,9S,TS,JS,QS,KS,AS,
2D,3D,4D,5D,6D,7D,8D,9D,TD,JD,QD,KD,AD,
2H,3H,4H,5H,6H,7H,8H,9H,TH,JH,QH,KH,AH,
2C,3C,4C,5C,6C,7C,8C,9C,TC,JC,QC,KC,AC]
Kartu didefinisikan sebagai nomornya, lalu huruf pertama dari kartu itu. Kebalikan dari kartu adalah kebalikannya, huruf pertama dari suitnya diikuti oleh angka.
Kartu yang Diambil
Contoh, jika kartu yang kami pilih secara terbalik adalah 4 of Clubs (4C)
, kami akan berakhir dengan (tanpa mengocok, jelas):
[2S,3S,4S,5S,6S,7S,8S,9S,TS,JS,QS,KS,AS,
2D,3D,4D,5D,6D,7D,8D,9D,TD,JD,QD,KD,AD,
2H,3H,4H,5H,6H,7H,8H,9H,TH,JH,QH,KH,AH,
2C,3C,C4,5C,6C,7C,8C,9C,TC,JC,QC,KC,AC]
The Shuffling
Lalu, setelah mengocok:
[2H,2C,6S,4D,QH,6C,TD,8C,7H,5H,C4,3D,7S,7C,KC,QD,QC,JS,7D,6D,2S,5C,KD,3C,3S,2D,8H,KH,6H,AH,8S,JH,TS,AD,5D,9H,4H,JD,QS,4S,JC,3H,8D,TC,AS,TH,KS,AC,9C,9S,5S,9D]
Ini adalah output yang valid diberikan input kosong.
Input Dek
Namun, sebaliknya, ketika program kami menerima output di atas sebagai input, seharusnya output 4C
. Artinya, untuk masukan dari:
[2H,2C,6S,4D,QH,6C,TD,8C,7H,5H,C4,3D,7S,7C,KC,QD,QC,JS,7D,6D,2S,5C,KD,3C,3S,2D,8H,KH,6H,AH,8S,JH,TS,AD,5D,9H,4H,JD,QS,4S,JC,3H,8D,TC,AS,TH,KS,AC,9C,9S,5S,9D]
Anda mengulangi sampai Anda menemukan kartu yang terbalik, dan mengembalikannya, kembali ke keadaan normal. Jadi di sini kita akan menemukan C4
, tahu bahwa C bukan angka, dan kembalikan sebagai 4C
, yang benar.
Aturan
- Anda tidak boleh memuat deck dari sumber eksternal apa pun.
- Input kosong harus menghasilkan dek acak acak dengan 1 kartu acak terbalik.
- Setumpuk kartu dengan 1 kartu terbalik sebagai input akan menghasilkan kartu terbalik.
- Input lain apa pun dapat menghasilkan ledakan llama yang mengendarai segway melalui pipa futuristik.
- Atau yang lainnya, dalam hal ini.
- Baik kartu yang dipilih dan urutan pengocokan harus acak secara acak.
- IE semua kartu memiliki peluang yang sama untuk dipilih untuk dibalik.
- Semua kombinasi kartu memiliki peluang yang sama untuk muncul.
- Anda dapat menggunakan
SHCD
ataushcd
untuk jas, tetapi konsisten:- Jika Anda memilih huruf besar (
SHCD
) Anda juga harus menggunakanTJQKA
. - Jika Anda memilih huruf kecil (
shcd
) Anda juga harus menggunakantjqka
.
- Jika Anda memilih huruf besar (
- Ini adalah kode-golf , pemenangnya adalah byte terendah.