Google doodle hari ini adalah tentang Merayakan 50 tahun Kids Coding : Tujuannya adalah memprogram jalur kelinci kecil sehingga dapat memakan semua wortel. Ada 4 jenis blok (lihat gambar di bawah):
Dari kiri ke kanan:
O("...", k)
= bagian oranye: ini adalahfor
loop yang mengeksekusi k kali program"..."
.G
= potongan hijau: maju selangkah jika Anda bisa, jika tidak lakukan apa-apaBl
= potongan biru: belok kanan dan tetap di blok yang samaBr
= potongan biru: belok kiri dan tetap di blok yang sama
Kode di atas dapat ditulis sebagai
O(O(G G Br, 4) Bl Bl, 23)
Setiap blok ( G, Bl, Br, O(...,k)
) dihitung sebagai 1 unit, sehingga program ini panjangnya 7. Catatan dari nilai k
dimasukkan dalam 1 unit O
.
Ada 6 level. Untuk menyelesaikan level Anda perlu makan semua wortel. Tidak masalah jika program Anda tidak sepenuhnya dieksekusi, level selesai langsung ketika Anda makan wortel terakhir.
Kami berasumsi bahwa semua 4 jenis blok tersedia di setiap level.
Tugas Anda adalah menemukan satu program yang memecahkan setiap level permainan.
Program terpendek dalam blok menang.
Tangkapan layar dari setiap level:
Level 1:
Level 2:
Level 3:
Level 4:
Level 5:
Level 6:
sumber
Sebenarnya, saya menemukan solusi dengan 8 blok
sumber
Ditemukan secara manual, 9 blok
O(O(GRGLGR,4)L,4)
Saya mulai dengan yang jelas
O(O(GGR,4)L,4)
yang memecahkan level 1-5 kemudian mencoba beberapa variasi menambahkan secara efektif-nol gerakan pada level tersebut untuk menemukan yang akan menyelesaikan level 6. Yang terpendek adalah kanan-maju-kiri sederhana di tengah setiap "jembatan" "jadi langkah maju tidak berpengaruh.sumber
O(O(GGR,4)L,4)
" membuktikan bahwa solusi terpendek untuk level 4 adalah 7, seperti yang ditunjukkan dalam permainan.