Flamboyan


Minesweeper di clojure

Karena keadaan papan dasar tidak berubah selama permainan, saya dapat menginisialisasi sel dengan semua informasi tentang sel tetangga sehingga saya dapat menghindari keharusan untuk mengulangi sel ketika saya perlu memeriksa lokasi bom dll. Meskipun saya dapat mengidentifikasi setiap sel dengan baris dan kolomnya, saya lebih suka memberikan indeks masing-masing sel dan seluruh papan saya direpresentasikan sebagai peta hash indeks ke sel. Sebelum saya mulai menulis kode apa pun, saya pertama-tama ingin berbicara tentang seperti apa data yang saya inginkan. Kami cukup menghitung jumlah sel, membuat daftar indeks dari 0 hingga ukuran-1 menggunakan rentang, memetakan di atas daftar ini dan membuat sel kosong untuk setiap indeks dan akhirnya, menggunakan juxt dan into, buat struktur peta-hash yang kita definisikan di atas. Makro threading - >> membantu kita menjaga kode tetap bagus dan mudah dibaca. (source)