Berinteraksi dengan objek lain dalam game berbasis teks di Java

Saya akan mencoba menjelaskan hal ini sejelas mungkin sehingga tidak ada kebingungan. Selain itu, saya tidak mencari proses bagaimana caranya, hanya beberapa tip tentang cara memulai dan menuju ke arah yang benar.

Saya relatif baru dalam pemrograman secara umum (pemrograman di Java hampir 5 bulan) dan saya hampir tidak belajar banyak hal tentang pemrograman. Saya sudah memahami beberapa konsep, namun saya sudah mencoba memahami konsep MVC (model, view, controller). Saya telah melakukan penelitian dan ingin menerapkannya pada permainan berbasis teks visual.

Dalam permainan, pemain dapat menavigasi melalui serangkaian "ruangan", beberapa dimaksudkan untuk eksplorasi dan beberapa lainnya disebut "ruang kematian", di mana pemain akhirnya sekarat dan harus memulai kembali di ruang pertama. Inti dari permainan ini adalah untuk melarikan diri dan menemukan ruang keluar, dan navigasi dikontrol menggunakan empat tombol untuk masing-masing dari empat arah umum; tidak ada yang sulit untuk saat ini. Namun, saya kesulitan memahami cara membuat objek ruangan berinteraksi satu sama lain. Misalnya, jika pemain mengklik tombol untuk ke kiri, mereka seharusnya bisa masuk ke ruangan di sebelah kiri ruangan tempat mereka berada saat ini. Model akan bertugas memperbarui ruangan tempat pemain berada berdasarkan arah mana pemain ingin pergi.

Dengan kata lain, tip apa yang dimiliki seseorang untuk memodelkan rangkaian ruangan yang berinteraksi dengan ruangan lain di utara, selatan, timur, dan barat ruangan tempat pemain berada saat ini? (Semoga saya cukup jelas. Jika Anda memerlukan klarifikasi, saya akan menjawab pertanyaan apa pun.) Sekali lagi, saya mencari nasihat yang akan memfokuskan pemikiran saya, bukan petunjuk lengkap. Selain itu, saya sudah menyiapkan kelas dan antarmuka untuk ruangan.


person LMAR1093    schedule 27.02.2013    source sumber


Jawaban (1)


Ini adalah kasus penggunaan yang menarik. Model-View-Controller pattern paling sering terlihat di aplikasi web, namun Anda pasti bisa membuatnya berfungsi untuk game berbasis teks.

Model

Di lapisan model kita akan memiliki entitas -- User dan Room.

Pengontrol

Pengontrol mem-parsing masukan, memperbarui model, dan meneruskan data yang diperlukan untuk tampilan. Jadi setelah memasukkan 'timur', contoh kode pengontrolnya adalah:

User user = User.current();
Room east = user.getRoom().getEast();
user.move(east);
render(east);

Lihat

Metode render akan menggunakan ruangan baru sebagai argumen dan mungkin akan mengurai beberapa jenis templat yang menampilkan nama dan deskripsi ruangan baru.

Semoga ini membantu. Saya pribadi akan menggunakan pola perintah dalam kasus khusus ini.

person Mirko Adari    schedule 27.02.2013
comment
Saya rasa saya mengerti maksud Anda. Dari apa yang saya pahami, Pengendali akan menjadi Pendengar tombol-tombol dalam permainan. Tergantung pada tombol mana yang ditekan, Pengontrol akan menjalankannya dan kemudian ruangan baru akan ditampilkan di Tampilan, atau GUI. Saya akan memulai dengan menetapkan jalur ke pintu keluar, lalu menambahkan ruangan lain setelah jalur yang ditetapkan berfungsi. Saya rasa saya punya ide bagus harus mulai dari mana sekarang, terima kasih. - person LMAR1093; 28.02.2013
comment
Selain itu, pola perintahnya terlihat cukup menarik dan menurut saya lebih mudah dipahami. Saya akan memeriksanya lebih dalam dan melihat apakah itu pendekatan terbaik untuk ini. - person LMAR1093; 28.02.2013