Saya menerapkan keterampilan dasar dan sistem atribut, meskipun saya memiliki pemikiran kedua tentang bagaimana saya harus melakukannya.
Sebagai contoh, saya bisa menggunakan Kamus / HashMap yang menggunakan enk SkillType untuk mewakili kunci, dan nilai integer yang mewakili nilai. Tetapi haruskah saya melakukan ini?
public class Skills
{
public IDictionary<StatType, Int> skills; //StatType is enum, being the key; the int //is the value.
}
vs.
public class Skills
{
public int LongBlade, Armor, Marksman; //...etc
}
Saya ingin tahu manfaat dari keamanan tipe di sini, bukan hanya menggunakan bilangan bulat dasar. Ada rekomendasi?
interface Skill { /* ... */ int toInt(); }; public class Skills : IList { private ArrayList<Skill> skills; /* ... */ };
Sebenarnya saya lebih suka ...Jawaban:
Jika ada akhirnya akan menjadi:
kemudian saya mulai lebih suka fleksibilitas string atau kunci integer dalam kamus daripada bidang contoh individu atau bahkan kamus dengan kunci enum.
Alasan saya - Karena Anda mungkin segera menyadari ...
... pada titik mana kamus dengan kunci string atau integer menjadi lebih cocok daripada harus mempertahankan nilai enum atau daftar panjang bidang contoh sendiri. Namun, alat tersebut dapat selalu ditulis untuk menghasilkan kode C # juga, sehingga Anda mungkin dapat menemukan hibrida yang bahagia.
Jika kompleksitas permainan Anda akan menjadi cukup sederhana dan beragam keterampilan Anda kecil, maka mengelola bidang contoh dengan tangan (alih-alih kamus & enum) tampaknya lebih nyaman dan menghindari tingkat tipuan, baik pada saat run-time dan "keystroke" - waktu.
sumber