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 trueatau yesatau 1atau 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 -
22222222masih 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,
22048dapat 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!
22048output goodtetapi itu tidak benar. Anda tidak dapat menggabungkan 2dengan 2048dan kisi adalah 4x4jika 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