Buat Puzzle itu Pusing



BAGI yang merasa gemes karena mengalami kesulitan ketika bermain games, bersyukurlah. Kenapa? Karena eh karena membuat game dipastikan bakal lebih sulit. Boro-boro buat game sekaliber Pro Evolution Soccer atau Mario Bros, buat game puzzle saja ternyata rumit. Beginilah nasib projremer abal-abal dan nekat.

Yup, mendesain sebuah game ternyata sulit juga ya. Selain harus bener-bener jago koding, algoritmanya juga musti bener. Belum lagi jika mau agar si game itu pintar, jadi harus ditambah kecerdasan buatan a.k.a AI.

Nah sebulan kemarin, tepatnya dari pertengahan Maret sampai sekarang, saya diharuskan buat program game. Karena merasa masih projremer pemula, maka diputuskanlah untuk membuat game puzzle 8. Apakah mudah? sebenarnya tidak juga. Apalagi kalau mau pakai GUI, lebih sulit lagi -_-.

karena harus ditambah kecerdasan agar si program nggak bodoh, maka saya putuskan pakai Algoritma A*. Menurut berbagai sumber yang harus dipercaya, algoritma itu akan mencari path terpendek sedemikian sehingga si puzzle dapat kembali ke posisi semula dengan lebih cepat. Katanya lagi, algoritma ini tidak terlalu sulit.

Apa itu berarti A* mudah? Bagi yangs udah pengalaman mungkin iya mudah, tapi bagi saya, susah banget. Perlu setidaknya 3 minggu hanya untuk memahami beberapa baris algoritma itu. Dari Wikipedia, ilustrasinya seperti ini:
A*

OK, ternyata program saya sudah bisa menemukan langkah ke posisi yang diinginkan. Masalahnya lagi adalah, ternyata si program belum tahu langkah ke mana saja sehingga bisa sampai ke tujuan. Halah.. Intinya, saya belum bisa implementasikan algoritma ini di dalam bahasa C++. 🙁

function reconstruct_path(came_from, current_node)
     if came_from[current_node] is set
         p = reconstruct_path(came_from, came_from[current_node])
         return (p + current_node)
     else
         return current_node

Sudah diposting di sini . Soalnya di sini suka eror 🙁


0 responses to “Buat Puzzle itu Pusing”

Ada komentar?

This site uses Akismet to reduce spam. Learn how your comment data is processed.