Untuk bersenang-senang, saya mencoba menulis salah satu permainan papan favorit anak saya sebagai perangkat lunak. Akhirnya saya berharap untuk membangun UI WPF di atasnya, tetapi saat ini saya sedang membangun mesin yang memodelkan game dan aturannya.
Saat saya melakukan ini, saya terus melihat masalah yang menurut saya umum terjadi pada banyak permainan papan, dan mungkin orang lain telah menyelesaikannya lebih baik daripada yang saya lakukan.
(Perhatikan bahwa AI untuk memainkan game, dan pola seputar kinerja tinggi tidak menarik bagi saya.)
Sejauh ini pola saya adalah:
Beberapa tipe tetap yang mewakili entitas dalam kotak permainan, misalnya dadu, catur, kartu, papan, spasi di papan, uang, dll.
Objek untuk setiap pemain, yang berisi sumber daya pemain (misalnya uang, skor), nama mereka, dll.
Objek yang mewakili keadaan permainan: para pemain, siapa yang memutarnya, tata letak bagian-bagian di papan, dll.
Mesin negara yang mengatur urutan belokan. Misalnya, banyak game memiliki pra-permainan kecil di mana setiap pemain berguling untuk melihat siapa yang lebih dulu; itulah kondisi awal. Saat giliran pemain dimulai, pertama mereka berguling, lalu bergerak, kemudian mereka harus menari di tempat, lalu pemain lain menebak jenis ayam apa mereka, lalu mereka menerima poin.
Apakah ada seni sebelumnya yang dapat saya manfaatkan?
EDIT: Satu hal yang saya sadari baru-baru ini adalah bahwa status game dapat dibagi menjadi dua kategori:
Keadaan artefak game . "Saya punya $ 10" atau "tangan kiri saya di atas biru".
Status urutan game . "Saya telah menggulung ganda dua kali; yang berikutnya menempatkan saya di penjara". Mesin negara mungkin masuk akal di sini.
EDIT: Apa yang sebenarnya saya cari di sini adalah cara terbaik untuk mengimplementasikan game multiplayer berbasis giliran seperti Catur atau Scrabble atau Monopoli. Saya yakin saya bisa membuat permainan seperti itu hanya dengan mengerjakannya dari awal sampai akhir, tetapi, seperti Pola Desain lainnya, mungkin ada beberapa cara untuk membuat segalanya berjalan lebih lancar yang tidak terlihat jelas tanpa studi yang cermat. Itulah yang saya harapkan.