Ini adalah pertanyaan pertama saya di sini, jadi saran apa pun di komentar akan dihargai! Terima kasih;)
pengantar
Salah satu strategi yang sangat umum untuk game 2048 adalah tidak pernah menggesek . Ini menempatkan semua angka besar di atas, dan yang lebih rendah di bawah. Jadi, jika Anda menerapkan strategi ini dengan benar, papan Anda akan selalu cocok dengan pola berikut:
Pola untuk memeriksa / Tugas Anda
Kiriman Anda harus berupa program penuh atau fungsi yang mengembalikan nilai kebenaran jika papan dapat digambarkan seperti ini: Turun setiap kolom papan, angka pertama harus yang tertinggi dari kolom, angka kedua harus kurang dari atau sama dengan angka pertama, dll. Papan 2048 yang baik didefinisikan sebagai papan di mana angka tertinggi semuanya ada di atas. Ini adalah kode-golf , sehingga Kode terpendek per bahasa (dalam byte) menang.
I / O
Input dapat diambil dengan cara apa pun yang sesuai, misalnya array 4 array, masing-masing berisi 4 angka, atau array 16 angka. Secara total, itu akan selalu 16 angka, mewakili papan 4x4 Output harus nilai kebenaran input adalah "papan 2048 baik", dan nilai palsu sebaliknya.
Contohnya
Benar:
|-------------------|
| 16 | | 64 | 8 |
|-------------------|
| 8 | | 32 | 8 |
|-------------------|
| 4 | | 32 | 2 |
|-------------------|
| 2 | | | |
|-------------------|
|-------------------|
| 16 | 128| 64 | 32 |
|-------------------|
| 8 | 128| 32 | 8 |
|-------------------|
| 4 | 16 | 8 | 2 |
|-------------------|
| 4 | | | |
|-------------------|
Falsy:
|-------------------|
| 16 | | 64 | 8 |
|-------------------|
| 8 | | 32 | 16 |
|-------------------|
| 32 | | 128| 2 |
|-------------------|
| 2 | | | |
|-------------------|
|-------------------|
| 16 | 128| 64 | 32 |
|-------------------|
| 8 | 32| | 8 |
|-------------------|
| 4 | 16 | 8 | 2 |
|-------------------|
| 4 | | | |
|-------------------|
Catatan
Lihatlah kasus uji falsy ke-2: Ketika ada nilai kosong (atau 0) di suatu tempat dan bahkan ketika itu diikuti oleh nilai yang lebih tinggi dari angka bukan nol terakhir, ini harus palsu, karena nilai berikutnya setelah nol akan lebih tinggi dari 0 itu sendiri, yang membuatnya tidak valid.
Semoga berhasil!