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 akan null.

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 word1 dan kata kedua sebagai word2 jika ada.
  • Memeriksa apakah word1 adalah perintah valid menggunakan commands.isCommand().
  • Mengembalikan objek Command yang berisi kata perintah yang valid dan, jika ada, kata kedua; jika word1 tidak valid, objek Command dengan commandWord null akan 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 validCommands dan mengembalikan true jika ditemukan kecocokan, atau false jika 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. Mengembalikan true jika commandWord kosong, dan false jika tidak.

Metode hasSecondWord:

  • Memeriksa apakah ada kata kedua yang disertakan. Mengembalikan true jika secondWord tidak null, dan false jika tidak ada kata kedua.

Diagram :

Hasil :























Have a nice day☻


Komentar

Postingan populer dari blog ini

Pertemuan 4&5 PPB (B) - 25/03/2026

Pertemuan 2 PPB (B) - 04/03/2026

Pertemuan 7 - 08/04/2026