Tugas Pertemuan 8 - World of Zuul
Nama : Triana Velia Hutabalian
NRP : 5025231190
Kelas : PBO G
Tugas ini tentang pembuatan dan proses menjalankan kode game world of zuul pada aplikasi BlueJ.
Kode : Github
Penjelasan :
Class Room
Atribut:
description: String yang digunakan untuk menyimpan informasi mengenai ruangan, memberikan gambaran kepada pemain tentang tempat mereka berada.northExit,southExit,eastExit,westExit: Objek Room yang menunjukkan pintu keluar di setiap arah. Jika ada ruangan di arah tersebut, atribut ini akan menunjuk ke ruangan itu; jika tidak ada, nilainya akannull.
Konstruktor:
- Membuat objek Room baru dan mengatur deskripsinya dengan teks yang diberikan sebagai parameter.
Metode setExits:
- Digunakan untuk mengatur pintu keluar ruangan. Metode ini menerima parameter arah dan, jika parameter tidak
null, akan mengatur atribut yang sesuai untuk menunjuk ke ruangan yang ditentukan.
Metode getDescription:
- Mengembalikan deskripsi ruangan saat ini, yang digunakan untuk memberi informasi kepada pemain tentang ruangan yang sedang mereka tempati.
Class Parser
Atribut:
commands: Objek dari kelas CommandWords yang memuat semua kata perintah valid. Berfungsi untuk menentukan apakah suatu perintah dikenali atau tidak oleh permainan.
Konstruktor:
- Menginisialisasi objek CommandWords sehingga Parser dapat menggunakan daftar kata perintah yang valid ketika memproses input pemain.
Metode getCommand:
- Menampilkan prompt untuk input pemain dan membaca input dari konsol.
- Menggunakan StringTokenizer untuk memecah input menjadi kata-kata.
- Kata pertama disimpan sebagai
word1dan kata kedua sebagaiword2jika ada. - Memeriksa apakah
word1adalah perintah valid menggunakancommands.isCommand(). - Mengembalikan objek Command yang berisi kata perintah yang valid dan, jika ada, kata kedua; jika
word1tidak valid, objek Command dengancommandWordnullakan dikembalikan.
Class Game
Konstruktor:
- Menginisialisasi permainan dengan membuat objek ruangan dan parser untuk menangani perintah pemain.
Metode createRooms:
- Menciptakan objek Room dan menentukan relasi antar ruangan, serta mengatur ruangan awal tempat pemain memulai permainan.
Metode play:
- Menjalankan alur permainan dengan menampilkan pesan sambutan, meminta perintah dari pemain, dan memprosesnya sampai pemain memutuskan untuk keluar.
Metode printWelcome:
- Mencetak pesan sambutan dan memberikan informasi mengenai ruangan saat ini, termasuk pintu keluar yang tersedia.
Metode processCommand:
- Mengelola perintah yang dimasukkan oleh pemain. Memanggil metode yang sesuai untuk perintah seperti "help", "go", atau "quit", serta menangani perintah yang tidak dikenal.
Metode printHelp:
- Memberikan panduan kepada pemain tentang perintah-perintah yang bisa digunakan.
Metode goRoom:
- Mengatur perpindahan pemain dari satu ruangan ke ruangan lain berdasarkan perintah yang diberikan. Mengecek apakah ada pintu keluar di arah yang diminta.
Metode quit:
- Memproses perintah untuk keluar dari permainan.
Class CommandWords
Atribut:
validCommands: Array statis yang memuat semua kata perintah yang valid dalam permainan, seperti "go", "quit", dan "help".
Konstruktor:
- Inisialisasi jika diperlukan di masa mendatang.
Metode isCommand:
- Memeriksa apakah string yang diberikan termasuk salah satu perintah yang valid. Metode ini melakukan iterasi melalui
validCommandsdan mengembalikantruejika ditemukan kecocokan, ataufalsejika tidak ada yang cocok.
Class Command
Atribut:
commandWord: Menyimpan kata perintah utama yang diberikan pemain, seperti "go" atau "quit".secondWord: Menyimpan kata kedua (jika ada) setelah perintah utama, misalnya arah seperti "north" atau "south".
Konstruktor:
- Menginisialisasi objek Command dengan kata perintah pertama dan kedua. Menyimpan informasi perintah yang dimasukkan pemain.
Metode getCommandWord:
- Mengembalikan kata perintah utama (
commandWord) untuk dipakai oleh kelas lain guna memahami perintah pemain.
Metode getSecondWord:
- Mengembalikan kata kedua (
secondWord) untuk memproses informasi tambahan dari pemain.
Metode isUnknown:
- Memeriksa apakah kata perintah utama tidak valid atau
null. MengembalikantruejikacommandWordkosong, danfalsejika tidak.
Metode hasSecondWord:
- Memeriksa apakah ada kata kedua yang disertakan. Mengembalikan
truejikasecondWordtidaknull, danfalsejika tidak ada kata kedua.
Diagram :
Hasil :
Have a nice day☻


Komentar
Posting Komentar