Apakah ada cacat desain ketika keadaan entitas tidak sepenuhnya memanfaatkan enter (), execute () dan exit ()?

9

Saya mengikuti AI Pemrograman Game Mat Buckland dengan Contoh, dan saya menemukan bahwa saya tidak selalu harus menggunakan enter (), execute () dan exit () pada status entitas. Sebagai contoh, dalam RPG, senjata mungkin memiliki keadaan lengkap, dan saya dapat menggunakan enter () dan exit () untuk keadaan itu untuk menambah atau mengurangi pengubah kemampuan pemain, tetapi sebenarnya tidak ada kebutuhan untuk mengeksekusi ( ). Apakah ini cacat desain di mesin saya, atau kekurangan dari pendekatan ini?

Charanor
sumber

Jawaban:

8

Tidak membaca buku, panggilan-panggilan itu terdengar seperti titik masuk normal untuk mesin negara. Untuk memahami panggilan, mari kita lihat apa yang mereka lakukan.

enter () - dieksekusi ketika negara diaktifkan.

execute () - dieksekusi saat negara diaktifkan.

exit () - dieksekusi ketika negara dinonaktifkan.

Ini cocok dengan segala jenis mesin negara. Beberapa mesin hanya membutuhkan panggilan 'eksekusi', yang lain membutuhkan 'masuk' dan 'keluar', dan yang lain membutuhkan ketiganya.

Contoh 1 : Pemicu senapan mesin.

  • Execute: tembak peluru dengan kecepatan yang sudah ditentukan.

Contoh 2 : Jembatan kekuatan

  • Masukkan: buat jembatan muncul
  • Keluar: buat jembatan menghilang

Contoh 3 : Armor kekuatan pribadi.

  • Masukkan: beri pemain perlindungan ekstra
  • Jalankan: tiriskan baterai
  • Keluar: hapus perlindungan ekstra
Jari Komppa
sumber
8

Itu belum tentu merupakan pertanda adanya cacat. Tidak setiap entitas atau negara akan memiliki penggunaan untuk setiap metode yang tersedia. Membiarkan metode eksekusi () kosong akan baik-baik saja, IMO.

Nathan Reed
sumber