World of Zuul
Nama: Valensio Arvin Putra Setiawan
Kelas: PBO G
Nrp: 5025231273
Nrp: 5025231273
Link Github: https://github.com/killervaps/pbo-worldofzuul
1. Room.java
Fungsi Utama:
- Mewakili ruangan dalam permainan.
- Menyimpan informasi seperti deskripsi ruangan, pintu keluar, dan item yang ada di dalamnya.
Penjelasan Kode
Atribut:
description: Deskripsi ruangan.northExit,southExit,eastExit,westExit: Menyimpan referensi ke ruangan lain di setiap arah.items: Daftar item yang ada di ruangan.
Metode Penting:
setExits(Room north, Room east, Room south, Room west):- Menentukan ruangan mana yang terhubung ke ruangan saat ini di setiap arah.
addItem(String item):- Menambahkan item ke ruangan.
takeItem(String item):- Menghapus item dari ruangan dan mengembalikannya ke pemain jika ada.
getItems():- Mengembalikan daftar item di ruangan.
getDescription():- Mengembalikan deskripsi ruangan beserta daftar item.
getExit(String direction):- Mengembalikan referensi ke ruangan yang ada di arah tertentu.
Cara Kerja:
- Ruangan saling terhubung melalui metode
setExits. - Pemain dapat berpindah antar ruangan melalui atribut pintu keluar.
- Pemain bisa mengambil item dari ruangan menggunakan
takeItem.
2. Command.java
Fungsi Utama:
- Mewakili perintah yang dimasukkan oleh pemain.
- Menyimpan kata kerja (misalnya,
go) dan objek (misalnya,north) perintah.
Penjelasan Kode
Atribut:
commandWord: Kata pertama dari perintah (misalnya,go).secondWord: Kata kedua dari perintah (misalnya,north).
Metode Penting:
getCommandWord(): Mengembalikan kata kerja dari perintah.getSecondWord(): Mengembalikan objek dari perintah.isUnknown(): Mengecek apakah perintah dikenali.hasSecondWord(): Mengecek apakah perintah memiliki kata kedua.
Cara Kerja:
- Perintah seperti
go northdiproses menjadi objekCommanddengancommandWord=godansecondWord=north. - Program menggunakan informasi ini untuk mengeksekusi aksi yang sesuai.
3. CommandWords.java
Fungsi Utama:
- Menyimpan daftar semua perintah yang valid.
- Memastikan hanya perintah yang valid diterima oleh sistem.
Penjelasan Kode
Atribut:
validCommands: Array string yang berisi semua perintah yang valid.
Metode Penting:
isCommand(String aString):- Memeriksa apakah sebuah string adalah perintah yang valid.
showAll():- Menampilkan semua perintah yang valid.
Cara Kerja:
- Ketika pemain mengetik perintah, program memeriksa apakah perintah tersebut termasuk dalam daftar
validCommands.
4. Parser.java
Fungsi Utama:
- Membaca input dari pemain.
- Memproses input menjadi objek
Command.
Penjelasan Kode
Atribut:
commands: ObjekCommandWordsuntuk memvalidasi perintah.reader: ObjekScanneruntuk membaca input dari pemain.
Metode Penting:
getCommand():- Membaca input pemain.
- Memisahkan input menjadi dua kata (jika ada).
- Memvalidasi kata pertama menggunakan
CommandWords.isCommand. - Mengembalikan objek
Command.
showCommands():- Menampilkan semua perintah yang valid.
Cara Kerja:
- Pemain mengetik perintah, misalnya
go north. - Parser memecah input menjadi
godannorth, memvalidasigo, lalu membuat objekCommand.
5. Game.java
Fungsi Utama:
- Mengontrol logika permainan.
- Memproses perintah dari pemain.
- Menyimpan keadaan permainan, seperti ruangan saat ini dan inventori pemain.
Penjelasan Kode
Atribut:
parser: ObjekParseruntuk membaca input pemain.currentRoom: Ruangan tempat pemain berada saat ini.inventory: Daftar item yang dimiliki pemain.
Metode Penting:
createRooms():- Membuat semua ruangan dan menghubungkannya dengan pintu keluar.
- Menambahkan item ke ruangan.
play():- Memulai permainan dan mengelola loop utama.
processCommand(Command command):- Memproses perintah dari pemain.
- Mengarahkan perintah ke metode terkait (
goRoom,look,takeItem, dll.).
goRoom(Command command):- Memindahkan pemain ke ruangan lain berdasarkan arah yang diberikan.
look():- Menampilkan deskripsi ruangan saat ini dan item yang tersedia.
takeItem(Command command):- Mengambil item dari ruangan dan menambahkannya ke inventori pemain.
showInventory():- Menampilkan daftar item yang dimiliki pemain.
Cara Kerja:
Inisialisasi:
- Semua ruangan dibuat, diberi deskripsi, dan dihubungkan.
- Item ditambahkan ke beberapa ruangan.
Loop Utama:
- Pemain mengetik perintah.
- Program membaca dan memproses perintah.
- Program memberikan respons sesuai aksi pemain.
Navigasi:
- Pemain mengetik
go [direction]untuk berpindah ruangan. - Program memeriksa apakah ada pintu di arah tersebut.
- Jika ada, pemain dipindahkan ke ruangan baru.
- Pemain mengetik
Interaksi dengan Item:
- Pemain mengetik
take [item]untuk mengambil item. - Item dihapus dari ruangan dan ditambahkan ke inventori pemain.
- Pemain dapat melihat inventori dengan
inventory.
- Pemain mengetik
Alur Kerja Program
- Pemain memulai permainan di ruangan awal.
- Pemain dapat mengetik:
go [direction]untuk berpindah ruangan.lookuntuk melihat deskripsi ruangan.take [item]untuk mengambil item.inventoryuntuk melihat item yang dimiliki.quituntuk keluar dari permainan.
- Program memproses perintah dan memberikan respons sesuai aksi pemain.
Comments
Post a Comment