Terinspirasi oleh xkcd .
Tantangan Anda adalah menentukan apakah angka akan membuat kombinasi yang baik di game 2048 . Masukan Anda akan berupa angka, seperti:
8224
Dan hasilnya adalah apakah angka itu akan menjadi kombo 2048 yang baik, yang untuk input ini akan menjadi true
atau yes
atau 1
atau cara lain untuk menunjukkan hasil positif.
Bagi yang belum terbiasa dengan permainan, inilah penjelasan sederhana: kekuatan dari dua disusun pada grid, seperti ini: [2] [2]
. Ubin dapat dipindahkan ke segala arah, dan jika dua ubin identik bertemu, mereka menjadi kekuatan berikutnya dari dua (jadi [2] [2]
ketika dipindahkan ke kiri atau kanan menjadi [4]
). Atau, Anda bisa mencoba permainannya di sini .
Apa yang dimaksud dengan "kombinasi 2048 yang baik"? Itu berarti angka apa pun yang, jika ada dalam game "2048", itu bisa digabungkan menjadi satu nomor tunggal. (Nol berarti ruang kosong , dan dapat diabaikan jika diperlukan.) Perhatikan bahwa angka bisa jadi beberapa digit! Namun, angka-angka tidak boleh berubah di antara gerakan. Berikut adalah beberapa contoh / kasus uji (dengan "Baik" menunjukkan kombinasi yang baik, dan "Buruk" yang berarti tidak baik):
- Bagus: 8224 (8224 -> 844 -> 88 -> 16)
- Bagus: 2222 (2222 -> 44 -> 8)
- Bagus: 22048 (22048 -> 448 -> 88 -> 16)
- Buruk: 20482 (tidak dapat mengombinasikan 2 bagian luar, Anda juga tidak dapat menggabungkan 2048 dan 2)
- Bagus: 20482048 (20482048 -> 4096)
- Buruk: 210241024 (210241024 -> 22048, tapi ini sekarang [2] [2048] dan tidak dapat digabungkan karena angka tidak dapat berubah di antara gerakan)
- Bagus: 2048 (sudah satu nomor)
- Buruk: 2047 (ini bukan kekuatan 2)
- Buruk: 11 (tidak ada angka 1 di game)
- Bagus: 000040000000 (nol adalah ruang kosong)
Aturan lain-lain:
- Input dapat dari mana saja masuk akal, yaitu STDIN, argumen fungsi, file, dll.
- Output juga bisa masuk akal, yaitu STDOUT, nilai pengembalian fungsi, file, dll.
- Abaikan ukuran kisi -
22222222
masih harus menampilkan true. - Jumlahnya tidak maksimal untuk angka apa, asalkan kekuatan dua. Oleh karena itu angka yang mungkin adalah kekuatan dua lebih besar dari 0.
- Bagi mereka yang khawatir tentang nol yang menyebabkan ambiguitas, bukan itu masalahnya. Misalnya,
22048
dapat diuraikan sebagai salah satu[2] [2048]
atau[2] [2] [0] [4] [8]
. Yang pertama tidak berfungsi, tetapi yang kedua tidak, jadi seharusnya hasilnya benar. - Ini adalah kode-golf , jadi kode terpendek dalam byte akan menang!
22048
output good
tetapi itu tidak benar. Anda tidak dapat menggabungkan 2
dengan 2048
dan kisi adalah 4x4
jika semua angka harus terpisah Anda akan mendapatkan 5 sel. jadi mungkin Anda harus menghapus 0
? Juga contoh ke-5 Anda tampaknya tidak valid karena permainan berhenti pada 2048
:)
1